1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
/**
* Generation de la facture
*
* @param int $paiementId, ID du paiement
* @param array $data, Données de l'achat
* @return void
*/
private function _makeFacture($paiementId, $data)
{
require_once(ROOT_PATH . '/vendor/fpdi/fpdf.php');
require_once(ROOT_PATH . '/vendor/fpdi/fpdi.php');
// Instanciation de FPDI
$pdf = new \FPDI();
// Instanciation de la table Achats
$achatsTable = $this->getAchatsTable();
// Import du model de facture vide
$pagecount = $pdf->setSourceFile(ROOT_PATH . '/public/facture.pdf');
$tplidx = $pdf->importPage(1);
// Configuration du template
$pdf->addPage();
$pdf->useTemplate($tplidx);
// Positionnement et definition de la police
$x = 135;
$y = 73;
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',11);
// Nom du client
if (isset($data['address_name']) && !empty($data['address_name'])) {
$pdf->setXY($x, $y);
$pdf->Write(5, ucwords(iconv('UTF-8', 'ISO-8859-2', $data['address_name'])));
} else {
$y -= 6;
}
// Adresse
if (isset($data['address_street']) && !empty($data['address_street'])) {
$y += 6;
$pdf->setXY($x, $y);
$pdf->Write(5, ucwords(iconv('UTF-8', 'ISO-8859-2', $data['address_street'])));
}
// Code postal et ville
if ((isset($data['address_zip']) && !empty($data['address_zip'])) || (isset($data['address_city']) && !empty($data['address_city']))) {
$y += 6;
$pdf->setXY($x, $y);
$pdf->Write(5, $data['address_zip'] . ' ' . ucwords(iconv('UTF-8', 'ISO-8859-2', $data['address_city'])));
}
// Numero de facture
$numFacture = $paiementId;
while (strlen($numFacture) < 8) {
$numFacture = '0' . $numFacture;
}
$numFacture = 'AL' . $numFacture;
$x = 65;
$y = 114;
$pdf->setXY($x, $y);
$pdf->SetFont('Arial','B',18);
$pdf->Write(10, $numFacture);
// Date
$pdf->SetFont('Arial','B',11);
$x = 28;
$y = 124;
$pdf->setXY($x, $y);
$pdf->Write(5, date('d/m/Y'));
// Designation
$pdf->SetFont('Arial','',12);
$x = 25;
$y = 152;
$pdf->setXY($x, $y);
$pdf->Write(5, iconv('UTF-8', 'ISO-8859-2', "Annonces"));
// Periode
$x = 105;
$pdf->setXY($x, $y);
$pdf->Write(5, date('d/m/Y'));
// Recuperation du nombre d'annonce
$nbAnnonces = $achatsTable->getNbAnnonces($paiementId);
// Quantite
$x = 147;
if (strlen($nbAnnonces) == 1) {
$x += 1;
}
$pdf->setXY($x, $y);
$pdf->Write(5, $nbAnnonces);
// Montant
$x = 173;
$pdf->setXY($x, $y);
$pdf->Write(5, $this->_getAdPrice(date('Y-m-d')));
// Taux de TVA
$y = 165;
$pdf->setXY($x, $y);
$pdf->Write(5, $data['mc_gross']);
// Taux de TVA
$y = 176;
$tauxTva = '0.00';
$pdf->setXY($x, $y);
$pdf->Write(5, $tauxTva . ' %');
// Montant TVA
$y = 186;
$montantTva = '0.00';
$pdf->setXY($x, $y);
$pdf->Write(5, $montantTva);
// Montant net
$y = 196;
$pdf->setXY($x, $y);
$pdf->Write(5, $data['mc_gross']);
$pdf->Output(ROOT_PATH . '/public/factures/' . $numFacture . '.pdf', 'F');
} |
Partager