Example #1
0
 /**
  * Chargement de tous les séjours de la facture
  *
  * @return object
  **/
 function loadRefsSejour()
 {
     if (count($this->_ref_sejours)) {
         return $this->_ref_sejours;
     }
     if (CModule::getActive("dPfacturation")) {
         $ljoin = array();
         $ljoin["facture_liaison"] = "facture_liaison.object_id = sejour.sejour_id";
         $where = array();
         $where["facture_liaison.facture_id"] = " = '{$this->_id}'";
         $where["facture_liaison.facture_class"] = " = '{$this->_class}'";
         $where["facture_liaison.object_class"] = " = 'CSejour'";
         $sejour = new CSejour();
         $this->_ref_sejours = $sejour->loadList($where, "sejour_id", null, "sejour_id", $ljoin);
         // Chargement des actes de séjour
         foreach ($this->_ref_sejours as $sejour) {
             /** @var CSejour $sejour*/
             $sejour->loadRefsOperations();
             foreach ($sejour->_ref_operations as $op) {
                 $op->loadRefsActes($this->numero, 1);
                 $this->rangeActes($op);
             }
             $sejour->loadRefsActes($this->numero, 1);
             $this->rangeActes($sejour);
         }
     }
     if (count($this->_ref_sejours) > 0) {
         $this->_ref_last_sejour = end($this->_ref_sejours);
         $this->_ref_first_sejour = reset($this->_ref_sejours);
         $this->_ref_last_sejour->loadRefLastOperation();
         $this->_ref_last_sejour->_ref_last_operation->loadRefAnesth();
     } else {
         $this->_ref_last_sejour = new CSejour();
         $this->_ref_first_sejour = new CSejour();
     }
     return $this->_ref_sejours;
 }
 */
CCanDo::checkEdit();
$consult_id = CValue::get("consult_id", 0);
$sejour_id = CValue::get("sejour_id", 0);
$chir_id = CValue::get("chir_id", 0);
$sejour = new CSejour();
$sejour->load($sejour_id);
if ($sejour->_id) {
    $chir = new CMediusers();
    if ($chir_id) {
        $chir->load($chir_id);
    } else {
        $chir->load($sejour->praticien_id);
    }
    $sejour->loadRefPraticien();
    $sejour->loadRefsActes();
    $sejour->updateFormFields();
    $sejour->_datetime = CMbDT::dateTime();
    // Récupération des tarifs
    /** @var CTarif $tarif */
    $tarif = new CTarif();
    $tarifs = array();
    $order = "description";
    $where = array();
    $where["chir_id"] = "= '{$chir->_id}'";
    $tarifs["user"] = $tarif->loadList($where, $order);
    foreach ($tarifs["user"] as $_tarif) {
        /**@var CTarif $_tarif */
        $_tarif->getPrecodeReady();
    }
    $where = array();
    $ljoin["bloc_operatoire"] = "bloc_operatoire.bloc_operatoire_id = sallesbloc.bloc_id";
    $where2["operations.salle_id"] = " IS NOT NULL";
    $where2["bloc_operatoire.bloc_operatoire_id"] = " = '{$bloc_id}'";
}
$sejours_consult_ngap = $sejour->loadList($where2, null, null, "sejour_id", $ljoin);
foreach ($sejours_consult_ngap as $_sejour_consult_ngap) {
    if (!isset($sejours[$_sejour_consult_ngap->_id])) {
        $sejours[$_sejour_consult_ngap->_id] = $_sejour_consult_ngap;
    }
}
foreach ($sejours as $sejour) {
    /* @var CSejour $sejour*/
    $sejour->loadRefPatient();
    $sejour->loadRefsOperations();
    $sejour->loadRefsConsultations();
    $sejour->loadRefsActes(null, 1);
    $sejour->loadRefsFactureEtablissement();
    foreach ($sejour->_ref_operations as $op) {
        $op->loadRefsActes(null, 1);
        if (!count($op->_ref_actes)) {
            unset($sejour->_ref_operations[$op->_id]);
        }
    }
    foreach ($sejour->_ref_consultations as $consult) {
        $consult->loadRefsActes(null, 1);
        if (!count($consult->_ref_actes)) {
            unset($sejour->_ref_consultations[$consult->_id]);
        }
    }
    if (!count($sejour->_ref_actes) && !count($sejour->_ref_operations) && !count($sejour->_ref_consultations)) {
        unset($sejours[$sejour->_id]);