Пример #1
0
 /**
  * Redefinition du store
  * 
  * @return void|string
  **/
 function store()
 {
     if (!$this->_id && $this->object_class && $this->object_id) {
         $this->_ref_object = new $this->object_class();
         $this->_ref_object->load($this->object_id);
         $this->_ref_object->loadRefPatient();
         $this->_ref_object->loadRefPraticien();
         $this->_ref_object->loadRefsObjects();
         $this->_ref_object->loadRefsReglements();
         $this->_ref_object->loadRefsRelances();
         $this->date = CMbDT::date();
         $this->du_patient = $this->_ref_object->_du_restant_patient + $this->_ref_object->_reglements_total_patient;
         $this->du_tiers = $this->_ref_object->_du_restant_tiers + $this->_ref_object->_reglements_total_tiers;
         $der_relance = $this->_ref_object->_ref_last_relance;
         if ($der_relance->_id) {
             if ($der_relance->statut == "inactive") {
                 return "La derniere relance est inactive";
             }
             if ($der_relance->etat != "regle") {
                 $this->numero = $der_relance->numero + 1;
                 $der_relance->etat = "renouvelle";
                 $der_relance->store();
             } else {
                 return "La derniere relance est reglee";
             }
         }
         if (!$this->numero) {
             $this->numero = 1;
         }
         switch ($this->numero) {
             case "1":
                 $this->du_patient += CAppUI::conf("dPfacturation CRelance add_first_relance");
                 $this->statut = "first";
                 break;
             case "2":
                 $this->du_patient += CAppUI::conf("dPfacturation CRelance add_second_relance");
                 $this->statut = "second";
                 break;
             case "3":
                 $this->du_patient += CAppUI::conf("dPfacturation CRelance add_third_relance");
                 $this->statut = "third";
                 break;
         }
     }
     // Standard store
     if ($msg = parent::store()) {
         return $msg;
     }
 }
Пример #2
0
 /**
  * Edition de la facture
  *
  * @param bool $create création ou non du pdf
  *
  * @return void
  */
 function editFacture($create = true)
 {
     if ($create) {
         $this->createPdf();
     }
     foreach ($this->factures as $the_facture) {
         $this->facture = $the_facture;
         $this->facture->loadRefsItems();
         $this->_no_round = false;
         if ($this->facture->cloture && !count($this->facture->_ref_items)) {
             $this->facture->creationLignesFacture();
         }
         $this->patient = $this->facture->loadRefPatient();
         $this->facture->_ref_patient->loadRefsCorrespondantsPatient();
         $this->praticien = $this->facture->loadRefPraticien();
         $this->facture->loadRefAssurance();
         $this->facture->loadRefsObjects();
         $this->facture->loadRefsReglements();
         if ($this->type_pdf == "relance") {
             $this->facture->loadRefsRelances();
         }
         $this->function_prat = $this->praticien->loadRefFunction();
         $this->group = $this->function_prat->loadRefGroup();
         $adherent = $this->facture->loadNumAdherent($this->praticien->adherent);
         $this->adherent = $adherent["compte"];
         if ($this->type_pdf == "BVR") {
             $this->loadTotaux();
             $this->acompte = 0;
             $this->nb_factures = count($this->facture->_montant_factures_caisse);
             $this->num_fact = 0;
             foreach ($this->facture->_montant_factures_caisse as $cle_facture => $montant_facture) {
                 if ($this->acompte < $this->facture->_montant_avec_remise) {
                     $this->editHautFacture($cle_facture, $montant_facture);
                     $this->editBVR($montant_facture);
                 }
             }
         }
         if ($this->type_pdf == "BVR_TS") {
             $this->loadTotaux();
             $this->acompte = 0;
             $this->nb_factures = count($this->facture->_montant_factures_caisse);
             $this->num_fact = 0;
             $montant = 0;
             if ($this->acompte < $this->facture->_montant_avec_remise) {
                 $montant = $this->facture->_montant_avec_remise - $this->facture->_reglements_total_patient;
                 $montant = $montant - $this->facture->_reglements_total_tiers;
                 $this->editHautFacture(" ", $montant);
                 $this->editBVR($montant);
             }
             $this->type_pdf = "justif_TS";
             $this->function_prat->adresse = str_replace("\r\n", ' ', $this->function_prat->adresse);
             $this->patient->adresse = str_replace("\r\n", ' ', $this->patient->adresse);
             $this->editCenterJustificatif(0, $montant);
         } elseif ($this->type_pdf == "justif") {
             $this->function_prat->adresse = str_replace("\r\n", ' ', $this->function_prat->adresse);
             $this->patient->adresse = str_replace("\r\n", ' ', $this->patient->adresse);
             foreach ($this->facture->_montant_factures_caisse as $cle_facture => $montant_facture) {
                 $this->editCenterJustificatif($cle_facture, $montant_facture);
             }
         } elseif ($this->type_pdf == "relance") {
             $this->editRelanceEntete();
             //$this->editHautFacture(1, $this->relance->_montant, true);
             if (CAppUI::conf("ref_pays") == 2) {
                 $this->editBVR($this->relance->_montant);
             }
         }
     }
 }
Пример #3
0
    if (!count($_facture->_ref_sejours) && !count($_facture->_ref_consults)) {
        unset($factures[$key]);
    } elseif ($nb_tarmed == 0 && $nb_caisse == 0 && $nb_ngap == 0 && $nb_ccam == 0 && !$etat_cotation && $search_easy != 4 && $search_easy != 0) {
        unset($factures[$key]);
    } elseif (($nb_tarmed != 0 || $nb_caisse != 0 || $nb_ngap != 0 || $nb_ccam != 0) && $search_easy == 4) {
        unset($factures[$key]);
    }
}
if ($facture_id && isset($factures[$facture_id])) {
    $facture->load($facture_id);
    $facture->loadRefPatient();
    $facture->_ref_patient->loadRefsCorrespondantsPatient();
    $facture->loadRefPraticien();
    $facture->loadRefAssurance();
    $facture->loadRefsObjects();
    $facture->loadRefsReglements();
    $facture->loadRefsRelances();
    $facture->loadRefsItems();
    $facture->loadRefsNotes();
}
$reglement = new CReglement();
$banque = new CBanque();
$banques = $banque->loadList(null, "nom");
$filter = new CConsultation();
$filter->_date_min = $date_min;
$filter->_date_max = $date_max;
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("tab", "vw_factures_etab");
$smarty->assign("factures", $factures);
$smarty->assign("reglement", $reglement);
Пример #4
0
 /**
  *  Récupération des factures du séjour
  *
  * @return null|CFactureEtablissement[]
  */
 function loadRefsFactureEtablissement()
 {
     if (CModule::getActive("dPfacturation") && CAppUI::conf("dPplanningOp CFactureEtablissement use_facture_etab")) {
         $ljoin = array();
         $ljoin["facture_liaison"] = "facture_liaison.facture_id = facture_etablissement.facture_id";
         $where = array();
         $where["facture_liaison.facture_class"] = " = 'CFactureEtablissement'";
         $where["facture_liaison.object_class"] = " = 'CSejour'";
         $where["facture_liaison.object_id"] = " = '{$this->_id}'";
         $facture = new CFactureEtablissement();
         $this->_ref_factures = $facture->loadList($where, "ouverture ASC", null, "facture_id", $ljoin);
         if (count($this->_ref_factures) > 0) {
             $this->_ref_last_facture = end($this->_ref_factures);
             $this->_ref_last_facture->loadRefsReglements();
             foreach ($this->_ref_factures as $_facture) {
                 /* @var CFacture $_facture */
                 $_facture->loadRefAssurance();
             }
         } else {
             $this->_ref_last_facture = new CFactureEtablissement();
         }
         return $this->_ref_factures;
     }
     return null;
 }