Example #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;
     }
 }
Example #2
0
$list_taux = explode("|", CAppUI::conf("dPcabinet CConsultation default_taux_tva"));
foreach ($list_taux as $taux) {
    $where["taux_tva"] = " = '{$taux}'";
    $factures = $facture->loadGroupList($where, "ouverture, praticien_id");
    $taux_factures[$taux] = $factures;
}
$total_tva = 0;
$nb_factures = 0;
foreach ($taux_factures as $taux => $factures) {
    $nb_factures += count($factures);
    $total = $totalht = $totalttc = $totalst = 0;
    foreach ($factures as $facture) {
        $facture->loadRefPatient();
        $facture->loadRefPraticien();
        $facture->loadRefsObjects();
        $facture->loadRefsReglements();
        $total += $facture->du_tva;
        $totalht += $facture->_montant_avec_remise - $facture->du_tva;
        $totalttc += $facture->_montant_avec_remise;
        $totalst += $facture->_secteur3;
    }
    $taux_factures[$taux] = array();
    $taux_factures[$taux]["count"] = count($factures);
    $taux_factures[$taux]["total"] = $total;
    $taux_factures[$taux]["factures"] = $factures;
    $taux_factures[$taux]["totalst"] = $totalst;
    $taux_factures[$taux]["totalht"] = $totalht;
    $taux_factures[$taux]["totalttc"] = $totalttc;
    $total_tva += $total;
}
// Création du template
 /**
  * Charge l'ensemble des reglements sur la consultation, les classe par émetteur et calcul les dus résiduels
  *
  * @return CReglement[]
  */
 function loadRefsReglements()
 {
     // Classement reglements patient et tiers
     $this->_ref_reglements_patient = array();
     $this->_ref_reglements_tiers = array();
     $this->loadRefFacture();
     if ($this->_ref_facture) {
         $this->_ref_reglements = $this->_ref_facture->loadRefsReglements();
         foreach ($this->_ref_reglements as $_reglement) {
             $_reglement->loadRefBanque();
             if ($_reglement->emetteur == "patient") {
                 $this->_ref_reglements_patient[$_reglement->_id] = $_reglement;
             }
             if ($_reglement->emetteur == "tiers") {
                 $this->_ref_reglements_tiers[$_reglement->_id] = $_reglement;
             }
         }
     }
     // Calcul de la somme du restante du patient
     $this->_du_restant_patient = $this->du_patient;
     $this->_reglements_total_patient = 0;
     foreach ($this->_ref_reglements_patient as $_reglement) {
         $this->_du_restant_patient -= $_reglement->montant;
         $this->_reglements_total_patient += $_reglement->montant;
     }
     $this->_du_restant_patient = round($this->_du_restant_patient, 2);
     $this->_reglements_total_patient = round($this->_reglements_total_patient, 2);
     // Calcul de la somme du restante du tiers
     $this->_du_restant_tiers = $this->du_tiers;
     $this->_reglements_total_tiers = 0;
     foreach ($this->_ref_reglements_tiers as $_reglement) {
         $this->_du_restant_tiers -= $_reglement->montant;
         $this->_reglements_total_tiers += $_reglement->montant;
     }
     $this->_du_restant_tiers = round($this->_du_restant_tiers, 2);
     $this->_reglements_total_tiers = round($this->_reglements_total_tiers, 2);
     return $this->_ref_reglements;
 }