Пример #1
0
 /**
  * Edition du bas de la facture (partie BVR)
  *
  * @param int $montant_facture montant du BVR
  *
  * @return void
  */
 function editBVR($montant_facture)
 {
     $group = CGroups::loadCurrent();
     //le 01 sera fixe car il correspond à un "Codes des genres de justificatifs (BC)" ici :01 = BVR en CHF
     $genre = "01";
     $montant = sprintf("%010s", $montant_facture * 100);
     $cle = $this->facture->getNoControle($genre . $montant);
     $num_adherent = $this->facture->loadNumAdherent($this->praticien->adherent);
     $this->adherent2 = $num_adherent["bvr"];
     if (!$this->adherent) {
         $this->adherent = $num_adherent["compte"];
     }
     $_num_reference = str_replace(' ', '', $this->facture->num_reference);
     $bvr = $genre . $montant . $cle . ">" . $_num_reference . "+ " . $this->adherent2 . ">";
     // Dimensions du bvr
     $largeur_bvr = 210;
     $hauteur_bvr = 106;
     $haut_doc = 297 - $hauteur_bvr;
     // Une ligne = 1/6 pouce = 4.2333 mm
     $h_ligne = 4.2333;
     // $hauteur_bvr/25;
     // Une colonne = 1/10 pouce = 2.54 mm
     $l_colonne = 2.54;
     // $largeur_bvr/83;
     $left_offset = 84 * $l_colonne - $largeur_bvr;
     //Boucle utilisée pour dupliquer les Partie1 et 2 avec un décalage de colonnes
     for ($i = 0; $i <= 1; $i++) {
         $decalage = $i * 24 * $l_colonne + $left_offset;
         $h_add = !$this->fourn_presta["fct"] ? 3 : 4;
         //Adresse du patient
         $this->pdf->SetTextColor(0);
         $this->pdf->setFont($this->font, '', 8);
         $nom_auteur_conf = CAppUI::conf("dPfacturation CEditPdf home_nom", $group);
         $this->auteur["nom"] = $nom_auteur_conf ? $nom_auteur_conf : $this->auteur["nom"];
         $banque = $this->praticien->loadRefBanque();
         $etab_adresse1 = $banque->_id ? $banque->nom : CAppUI::conf("dPfacturation CEditPdf etab_adresse1", $group);
         $etab_adresse2 = $banque->_id ? $banque->cp . " " . $banque->ville : CAppUI::conf("dPfacturation CEditPdf etab_adresse2", $group);
         if ($etab_adresse1) {
             $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $etab_adresse1);
             $h_add++;
             if ($etab_adresse2) {
                 $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $etab_adresse2);
                 $h_add++;
             }
             $h_add++;
         }
         if (!$this->fourn_presta["fct"]) {
             $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $this->auteur["nom"]);
         } else {
             $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $this->auteur["nom"]);
             $h_add++;
             $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $this->fourn_presta["fct"]);
         }
         $h_add++;
         $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $this->auteur["adresse1"]);
         $h_add++;
         if ($this->auteur["adresse2"]) {
             $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $this->auteur["adresse2"]);
             $h_add++;
         }
         $this->pdf->Text($l_colonne + $decalage, $h_ligne * $h_add + $haut_doc, $this->auteur["cp"] . " " . $this->auteur["ville"]);
         //Numéro adhérent, CHF, Montant1 et Montant2
         $this->pdf->Text($l_colonne * 11 + $decalage, $h_ligne * 10.75 + $haut_doc, $this->adherent);
         $this->pdf->setFont($this->font, '', 10);
         $placement_colonne = $l_colonne * (17 - strlen($montant_facture * 100)) + $decalage;
         $this->pdf->Text($placement_colonne, $h_ligne * 13 + $haut_doc, sprintf("%d", $montant_facture));
         $cents = floor(sprintf("%.2f", $montant_facture - sprintf("%d", $montant_facture)) * 100);
         if ($cents < 10) {
             $cents = "0" . $cents;
         }
         $this->pdf->Text($l_colonne * 19 + $decalage, $h_ligne * 13 + $haut_doc, $cents);
     }
     $decalage = $left_offset;
     // 7.36 // 8;
     //Ecriture de la reference
     $num_reference = preg_replace('/(\\d{2})(\\d{5})(\\d{5})(\\d{5})(\\d{5})/', '\\1 \\2 \\3 \\4 \\5 \\6', $this->facture->num_reference);
     $this->pdf->setFont($this->font, '', 11);
     $this->pdf->Text(50 * $l_colonne, $h_ligne * 8.75 + $haut_doc, $num_reference);
     $this->pdf->setFont($this->font, '', 8);
     $this->pdf->Text($l_colonne + $decalage, $h_ligne * 15 + $haut_doc, $this->facture->num_reference);
     //Adresse du patient de la facture
     $this->pdf->Text($l_colonne + $decalage, $h_ligne * 16 + $haut_doc, $this->destinataire["nom"]);
     $this->pdf->Text(49 * $l_colonne + $decalage, $h_ligne * 12 + $haut_doc, $this->destinataire["nom"]);
     $this->pdf->Text($l_colonne + $decalage, $h_ligne * 17 + $haut_doc, $this->destinataire["adresse1"]);
     $this->pdf->Text(49 * $l_colonne + $decalage, $h_ligne * 13 + $haut_doc, $this->destinataire["adresse1"]);
     $j = 1;
     if ($this->destinataire["adresse2"]) {
         $this->pdf->Text($l_colonne + $decalage, $h_ligne * 18 + $haut_doc, $this->destinataire["adresse2"]);
         $this->pdf->Text(49 * $l_colonne + $decalage, $h_ligne * 14 + $haut_doc, $this->destinataire["adresse2"]);
         $j = 2;
     }
     $this->pdf->Text($l_colonne + $decalage, $h_ligne * (17 + $j) + $haut_doc, $this->destinataire["cp"]);
     $this->pdf->Text(49 * $l_colonne + $decalage, $h_ligne * (13 + $j) + $haut_doc, $this->destinataire["cp"]);
     //Ecriture du code bvr genere modulo10 recursif
     $this->pdf->setFont("ocrbb", '', 12);
     $w = (80 - strlen($bvr)) * $l_colonne - $decalage;
     $this->pdf->Text($w, $h_ligne * 21 + $haut_doc, $bvr);
 }