示例#1
0
 function genererFacture($reference, $chemin = null)
 {
     $requete = 'SELECT * FROM afup_compta_facture WHERE numero_facture=' . $this->_bdd->echapper($reference);
     $coordonnees = $this->_bdd->obtenirEnregistrement($requete);
     $requete = 'SELECT * FROM afup_compta_facture_details WHERE idafup_compta_facture=' . $this->_bdd->echapper($coordonnees['id']);
     $details = $this->_bdd->obtenirTous($requete);
     require_once 'Afup/AFUP_Configuration.php';
     $configuration = $GLOBALS['AFUP_CONF'];
     require_once 'Afup/AFUP_Pays.php';
     $pays = new AFUP_Pays($this->_bdd);
     // Construction du PDF
     require_once 'Afup/AFUP_PDF_Facture.php';
     $pdf = new AFUP_PDF_Facture($configuration);
     $pdf->AddPage();
     $pdf->Cell(130, 5);
     $pdf->Cell(60, 5, 'Le ' . date('d/m/Y', isset($coordonnees['date_facture']) && !empty($coordonnees['date_facture']) ? strtotime($coordonnees['date_facture']) : time()));
     $pdf->Ln();
     $pdf->Ln();
     $pdf->Ln();
     // A l'attention du client [adresse]
     $pdf->SetFont('Arial', '', 10);
     $pdf->Ln(10);
     $pdf->setx(120);
     $pdf->MultiCell(130, 5, utf8_decode($coordonnees['societe']) . "\n" . utf8_decode($coordonnees['service']) . "\n" . utf8_decode($coordonnees['adresse']) . "\n" . utf8_decode($coordonnees['code_postal']) . "\n" . utf8_decode($coordonnees['ville']) . "\n" . utf8_decode($pays->obtenirNom($coordonnees['id_pays'])));
     $pdf->Ln(10);
     $pdf->SetFont('Arial', 'BU', 10);
     $pdf->Cell(0, 5, utf8_decode('Facture n° ' . $reference), 0, 0, "C");
     $pdf->SetFont('Arial', '', 10);
     if ($coordonnees['ref_clt1'] || $coordonnees['ref_clt2'] || $coordonnees['ref_clt3']) {
         $pdf->Ln(15);
         $pdf->Cell(40, 5, utf8_decode('Repère(s) : '));
     }
     if ($coordonnees['ref_clt1']) {
         $pdf->setx(30);
         $pdf->Cell(100, 5, utf8_decode($coordonnees['ref_clt1']));
         $pdf->Ln(5);
     }
     if ($coordonnees['ref_clt2']) {
         $pdf->setx(30);
         $pdf->Cell(100, 5, utf8_decode($coordonnees['ref_clt2']));
         $pdf->Ln(5);
     }
     if ($coordonnees['ref_clt3']) {
         $pdf->setx(30);
         $pdf->Cell(100, 5, utf8_decode($coordonnees['ref_clt3']));
         $pdf->Ln(5);
     }
     $pdf->Ln(10);
     $pdf->MultiCell(180, 5, utf8_decode("Comme convenu, nous vous prions de trouver votre facture"));
     // Cadre
     $pdf->Ln(5);
     $pdf->SetFillColor(200, 200, 200);
     $pdf->Cell(30, 5, 'Type', 1, 0, 'L', 1);
     $pdf->Cell(80, 5, 'Description', 1, 0, 'L', 1);
     $pdf->Cell(20, 5, 'Quantite', 1, 0, 'L', 1);
     $pdf->Cell(30, 5, 'Prix', 1, 0, 'L', 1);
     $pdf->Cell(30, 5, 'Total', 1, 0, 'L', 1);
     $total = 0;
     switch ($coordonnees['devise_facture']) {
         case 'DOL':
             $devise = ' $';
             break;
         case 'EUR':
         default:
             $devise = utf8_decode(' €');
             break;
     }
     $yInitial = $pdf->getY();
     $columns = [0, 30, 110, 130, 160, 190];
     foreach ($details as $detail) {
         if ($detail['quantite'] != 0) {
             $montant = $detail['quantite'] * $detail['pu'];
             $pdf->Ln();
             $pdf->SetFillColor(255, 255, 255);
             $y = $pdf->GetY();
             $x = $pdf->GetX();
             $pdf->MultiCell(30, 5, $detail['ref'], 'T');
             $x += 30;
             $pdf->SetXY($x, $y);
             $pdf->MultiCell(80, 5, utf8_decode($detail['designation']), 'T');
             $x += 80;
             $pdf->SetXY($x, $y);
             $pdf->MultiCell(20, 5, utf8_decode($detail['quantite']), 'T', 0, "C");
             $x += 20;
             $pdf->SetXY($x, $y);
             $pdf->MultiCell(30, 5, utf8_decode($detail['pu']) . $devise, 'T', 0, "R");
             $x += 30;
             $pdf->SetXY($x, $y);
             $pdf->MultiCell(30, 5, utf8_decode($montant) . $devise, 'T', 0, "R");
             $total += $montant;
         }
     }
     $pdf->Ln();
     foreach ($columns as $column) {
         $pdf->Line($pdf->GetX() + $column, $yInitial, $pdf->GetX() + $column, $pdf->GetY());
     }
     $pdf->SetFillColor(225, 225, 225);
     $pdf->Cell(160, 5, 'TOTAL', 1, 0, 'L', 1);
     $pdf->Cell(30, 5, $total . $devise, 1, 0, 'R', 1);
     $pdf->Ln(15);
     $pdf->Cell(10, 5, 'TVA non applicable - art. 293B du CGI');
     $pdf->Ln(10);
     if ($coordonnees['observation']) {
         $pdf->Cell(10, 5, 'Observations : ');
         $pdf->Ln(5);
         $pdf->SetFont('Arial', '', 8);
         $pdf->MultiCell(130, 5, utf8_decode($coordonnees['observation']));
     }
     if (is_null($chemin)) {
         $pdf->Output('Facture - ' . $coordonnees['societe'] . ' - ' . $coordonnees['date_facture'] . '.pdf', 'D');
     } else {
         $pdf->Output($chemin, 'F');
     }
 }