fix change template pdf
This commit is contained in:
parent
37818547d2
commit
4a5fe4a394
@ -37,11 +37,12 @@ class DevisPdfTableRenderer
|
|||||||
$endY = ($numPage == $nbPage && !$sansMontant) ? 225 : 235;
|
$endY = ($numPage == $nbPage && !$sansMontant) ? 225 : 235;
|
||||||
|
|
||||||
if (!$sansMontant) {
|
if (!$sansMontant) {
|
||||||
// AVEC montants : toutes les colonnes
|
// Ajustement final des positions des lignes verticales
|
||||||
$verticalLines = [25, 45, 65, 80, 100, 125, 145, 165, 185];
|
// Article et Défunt de même taille, TTC réduit
|
||||||
|
$verticalLines = [22, 39, 56, 75, 105, 135, 155, 170, 185];
|
||||||
} else {
|
} else {
|
||||||
// SANS montants : SUPPRIMER la colonne vide à droite
|
// Pour sans montant: Article et Défunt de même taille
|
||||||
$verticalLines = [35, 70, 105, 120, 135, 160]; // Seulement 6 lignes au lieu de 7
|
$verticalLines = [27, 47, 67, 85, 115, 145];
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($verticalLines as $x) {
|
foreach ($verticalLines as $x) {
|
||||||
@ -55,27 +56,26 @@ class DevisPdfTableRenderer
|
|||||||
|
|
||||||
if (!$sansMontant) {
|
if (!$sansMontant) {
|
||||||
$headers = [
|
$headers = [
|
||||||
[5, 20, "N° Devis"],
|
[5, 17, "N° Devis"],
|
||||||
[25, 20, "N° Dossier"],
|
[22, 17, "N° Dossier"],
|
||||||
[45, 20, "N° Commande"],
|
[39, 17, "N° Commande"],
|
||||||
[65, 15, "Date"],
|
[56, 19, "Date"],
|
||||||
[80, 20, "Article"],
|
[75, 30, "Article"], // Taille augmentée
|
||||||
[100, 25, "Lieu du soin"],
|
[105, 30, "Lieu du soin"],
|
||||||
[125, 20, "Défunt"],
|
[135, 20, "Défunt"], // Taille réduite pour équilibrer
|
||||||
[145, 20, "H.T."],
|
[155, 15, "H.T."],
|
||||||
[165, 20, "TVA"],
|
[170, 15, "TVA"],
|
||||||
[185, 20, "T.T.C"]
|
[185, 15, "T.T.C"] // Taille réduite
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
// SANS montants : SUPPRIMER la colonne vide, agrandir la dernière colonne
|
|
||||||
$headers = [
|
$headers = [
|
||||||
[5, 30, "N° Devis"],
|
[5, 22, "N° Devis"],
|
||||||
[35, 35, "N° Dossier"],
|
[27, 20, "N° Dossier"],
|
||||||
[70, 35, "N° Commande"],
|
[47, 20, "N° Commande"],
|
||||||
[105, 15, "Date"],
|
[67, 18, "Date"],
|
||||||
[120, 15, "Article"],
|
[85, 30, "Article"], // Même taille que Défunt
|
||||||
[135, 25, "Lieu du soin"],
|
[115, 30, "Lieu du soin"],
|
||||||
[160, 45, "Défunt"] // Dernière colonne plus large
|
[145, 30, "Défunt"] // Même taille que Article
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,7 +113,6 @@ class DevisPdfTableRenderer
|
|||||||
{
|
{
|
||||||
$pdf->SetFont('Arial', '', 7);
|
$pdf->SetFont('Arial', '', 7);
|
||||||
|
|
||||||
// Fonction généraliste pour gérer automatiquement le débordement
|
|
||||||
$addSmartCell = function ($pdf, $x, $y, $width, $text, $align = 'L') use ($yDevis) {
|
$addSmartCell = function ($pdf, $x, $y, $width, $text, $align = 'L') use ($yDevis) {
|
||||||
$textWidth = $pdf->GetStringWidth($text);
|
$textWidth = $pdf->GetStringWidth($text);
|
||||||
$maxWidth = $width - 2;
|
$maxWidth = $width - 2;
|
||||||
@ -128,47 +127,41 @@ class DevisPdfTableRenderer
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (!$sansMontant) {
|
if (!$sansMontant) {
|
||||||
$addSmartCell($pdf, 6, $yDevis, 18, $devis['devis_full_number']);
|
// LARGEURS ÉQUILIBRÉES avec Article et Défunt de même taille
|
||||||
|
$addSmartCell($pdf, 6, $yDevis, 16, $devis['devis_full_number']);
|
||||||
|
$addSmartCell($pdf, 23, $yDevis, 16, $devis['case_number'] ?? '');
|
||||||
|
$addSmartCell($pdf, 40, $yDevis, 16, $devis['order_number'] ?? '');
|
||||||
|
|
||||||
// N° Dossier - UTILISER case_number
|
$addSmartCell($pdf, 57, $yDevis, 18, mb_convert_encoding($formatterDate->format($dateSoin), 'ISO-8859-1', 'UTF-8'));
|
||||||
$addSmartCell($pdf, 26, $yDevis, 18, $devis['case_number'] ?? '');
|
|
||||||
|
|
||||||
// N° Commande - UTILISER order_number
|
|
||||||
$addSmartCell($pdf, 46, $yDevis, 18, $devis['order_number'] ?? '');
|
|
||||||
|
|
||||||
$addSmartCell($pdf, 66, $yDevis, 13, mb_convert_encoding($formatterDate->format($dateSoin), 'ISO-8859-1', 'UTF-8'));
|
|
||||||
|
|
||||||
$articleText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['article'] ?? 'SOINS');
|
$articleText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['article'] ?? 'SOINS');
|
||||||
$addSmartCell($pdf, 81, $yDevis, 18, $articleText);
|
$addSmartCell($pdf, 76, $yDevis, 29, $articleText); // Article agrandi
|
||||||
|
|
||||||
$lieuText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['lieu_nom'] ?? '');
|
$lieuText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['lieu_nom'] ?? '');
|
||||||
$addSmartCell($pdf, 101, $yDevis, 23, $lieuText);
|
$addSmartCell($pdf, 106, $yDevis, 29, $lieuText);
|
||||||
|
|
||||||
$defuntText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['defunt_nom'] ?? '');
|
$defuntText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['defunt_nom'] ?? '');
|
||||||
$addSmartCell($pdf, 126, $yDevis, 18, $defuntText);
|
$addSmartCell($pdf, 136, $yDevis, 19, $defuntText); // Défunt réduit
|
||||||
|
|
||||||
$addSmartCell($pdf, 146, $yDevis, 18, number_format($devis['montant_htc'], 2, '.', '') . chr(128), 'C');
|
$addSmartCell($pdf, 156, $yDevis, 14, number_format($devis['montant_htc'], 2, '.', '') . chr(128), 'R');
|
||||||
$addSmartCell($pdf, 166, $yDevis, 18, number_format($devis['montant_tva'], 2, '.', '') . chr(128), 'C');
|
$addSmartCell($pdf, 171, $yDevis, 14, number_format($devis['montant_tva'], 2, '.', '') . chr(128), 'R');
|
||||||
$addSmartCell($pdf, 186, $yDevis, 18, number_format($devis['montant_ttc'], 2, '.', '') . chr(128), 'C');
|
$addSmartCell($pdf, 186, $yDevis, 14, number_format($devis['montant_ttc'], 2, '.', '') . chr(128), 'R'); // TTC réduit
|
||||||
} else {
|
} else {
|
||||||
$addSmartCell($pdf, 6, $yDevis, 28, $devis['devis_full_number']);
|
// Pour sans montant: Article et Défunt de même taille
|
||||||
|
$addSmartCell($pdf, 6, $yDevis, 21, $devis['devis_full_number']);
|
||||||
|
$addSmartCell($pdf, 28, $yDevis, 19, $devis['case_number'] ?? '');
|
||||||
|
$addSmartCell($pdf, 48, $yDevis, 19, $devis['order_number'] ?? '');
|
||||||
|
|
||||||
// N° Dossier - UTILISER case_number
|
$addSmartCell($pdf, 68, $yDevis, 17, mb_convert_encoding($formatterDate->format($dateSoin), 'ISO-8859-1', 'UTF-8'));
|
||||||
$addSmartCell($pdf, 36, $yDevis, 33, $devis['case_number'] ?? '');
|
|
||||||
|
|
||||||
// N° Commande - UTILISER order_number
|
|
||||||
$addSmartCell($pdf, 71, $yDevis, 33, $devis['order_number'] ?? '');
|
|
||||||
|
|
||||||
$addSmartCell($pdf, 106, $yDevis, 13, mb_convert_encoding($formatterDate->format($dateSoin), 'ISO-8859-1', 'UTF-8'));
|
|
||||||
|
|
||||||
$articleText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['article'] ?? 'SOINS');
|
$articleText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['article'] ?? 'SOINS');
|
||||||
$addSmartCell($pdf, 121, $yDevis, 13, $articleText);
|
$addSmartCell($pdf, 86, $yDevis, 29, $articleText); // Article agrandi
|
||||||
|
|
||||||
$lieuText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['lieu_nom'] ?? '');
|
$lieuText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['lieu_nom'] ?? '');
|
||||||
$addSmartCell($pdf, 136, $yDevis, 23, $lieuText);
|
$addSmartCell($pdf, 116, $yDevis, 29, $lieuText);
|
||||||
|
|
||||||
$defuntText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['defunt_nom'] ?? '');
|
$defuntText = \OCA\Gestion\Helpers\FileExportHelpers::FormatTextForExport($devis['defunt_nom'] ?? '');
|
||||||
$addSmartCell($pdf, 161, $yDevis, 44, $defuntText);
|
$addSmartCell($pdf, 146, $yDevis, 29, $defuntText); // Défunt réduit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,29 +170,33 @@ class DevisPdfTableRenderer
|
|||||||
$pdf->Line(5, 225, 205, 225);
|
$pdf->Line(5, 225, 205, 225);
|
||||||
$pdf->SetFont('Arial', 'B', 8);
|
$pdf->SetFont('Arial', 'B', 8);
|
||||||
|
|
||||||
|
// Alignement des totaux avec les colonnes HT, TVA, TTC
|
||||||
$pdf->SetXY(5, 225);
|
$pdf->SetXY(5, 225);
|
||||||
$pdf->Cell(130, 8, 'TOTAL', 0, 0, 'C');
|
$pdf->Cell(130, 8, 'TOTAL', 0, 0, 'C');
|
||||||
|
|
||||||
// POSITIONS CORRIGÉES
|
// POSITIONS alignées avec les colonnes du tableau
|
||||||
$pdf->SetXY(136, 225);
|
$pdf->SetXY(155, 225);
|
||||||
$pdf->Cell(18, 8, number_format($totals['ht'], 2, '.', '') . chr(128), 0, 0, 'C');
|
$pdf->Cell(15, 8, number_format($totals['ht'], 2, '.', '') . chr(128), 0, 0, 'R');
|
||||||
$pdf->SetXY(156, 225);
|
$pdf->SetXY(170, 225);
|
||||||
$pdf->Cell(18, 8, number_format($totals['tva'], 2, '.', '') . chr(128), 0, 0, 'C');
|
$pdf->Cell(15, 8, number_format($totals['tva'], 2, '.', '') . chr(128), 0, 0, 'R');
|
||||||
$pdf->SetXY(176, 225);
|
$pdf->SetXY(185, 225);
|
||||||
$pdf->Cell(14, 8, number_format($totals['ttc'], 2, '.', '') . chr(128), 0, 0, 'C');
|
$pdf->Cell(15, 8, number_format($totals['ttc'], 2, '.', '') . chr(128), 0, 0, 'R');
|
||||||
|
|
||||||
// TOTAL TTC
|
// CADRE TOTAL TTC - Texte à l'intérieur du cadre aligné à droite
|
||||||
$pdf->SetXY(155, 240);
|
$pdf->SetXY(155, 240);
|
||||||
$pdf->Cell(20, 8, 'TOTAL TTC', 0, 0, 'C');
|
$pdf->Cell(30, 8, 'TOTAL TTC', 0, 0, 'C');
|
||||||
$pdf->SetXY(176, 240);
|
|
||||||
$pdf->Cell(14, 8, number_format($totals['ttc'], 2, '.', '') . chr(128), 0, 0, 'C');
|
|
||||||
|
|
||||||
|
// Valeur alignée avec la fin du tableau tout à droite
|
||||||
|
$pdf->SetXY(185, 240);
|
||||||
|
$pdf->Cell(15, 8, number_format($totals['ttc'], 2, '.', '') . chr(128), 0, 0, 'R');
|
||||||
|
|
||||||
|
// Cadre TOTAL TTC aligné avec la fin du tableau (205)
|
||||||
$lines = [
|
$lines = [
|
||||||
[155, 240, 155, 248],
|
[155, 240, 155, 248], // Ligne verticale gauche
|
||||||
[176, 240, 176, 248],
|
[185, 240, 185, 248], // Ligne de séparation
|
||||||
[190, 240, 190, 248],
|
[205, 240, 205, 248], // Ligne verticale droite (alignée avec fin du tableau)
|
||||||
[155, 240, 190, 240],
|
[155, 240, 205, 240], // Ligne horizontale haute
|
||||||
[155, 248, 190, 248]
|
[155, 248, 205, 248] // Ligne horizontale basse
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($lines as $line) {
|
foreach ($lines as $line) {
|
||||||
|
|||||||
@ -315,15 +315,16 @@
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal" id="devisRecapMontant" tabindex="-1">
|
<div class="modal" id="devisRecapMontant" tabindex="-1">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" id="exampleModalLabel">Souhaitez-vous le récapitulatif avec ou sans montant ?</h5>
|
<h5 class="modal-title" id="exampleModalLabel">Récapitulatif des devis avec montant</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="form-check">
|
<div class="form-check d-flex align-items-center">
|
||||||
<input class="form-check-input" type="checkbox" id="sansMontant" value="">
|
<input class="form-check-input me-2" type="checkbox" id="sansMontant" value="">
|
||||||
<label class="form-check-label" for="sansMontant">
|
<label class="form-check-label" for="sansMontant">
|
||||||
Sans Montant
|
Sans Montant
|
||||||
</label>
|
</label>
|
||||||
@ -336,6 +337,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal" id="groupDevisFacturationModal" tabindex="-1">
|
<div class="modal" id="groupDevisFacturationModal" tabindex="-1">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user