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'); } }