finish multiline issue on pdf , wip date

This commit is contained in:
Tiavina 2025-03-04 10:49:56 +03:00
parent 31c4cdd0fb
commit 0f3f330f45
2 changed files with 33 additions and 15 deletions

View File

@ -69,15 +69,26 @@ class InvoiceFunecapPdfHandler extends InvoiceGroupPdfHandler {
$dateValue = $devisDate; $dateValue = $devisDate;
$productDescription .= " de " . $currentDevis["defunt_nom"] ?? ""; $productDescription .= " de " . $currentDevis["defunt_nom"] ?? "";
} }
$productDescriptionWidth = $this->GetStringWidth($productDescription);
$productDescriptionIsMultiline = $productDescriptionWidth > $maxDescriptionWidth;
$tvaAmount = $valueTtc - $valueHt; $tvaAmount = $valueTtc - $valueHt;
$this->SetXY( 8,$yValue ); $this->SetXY( 8,$yValue );
$this->Cell(20, 6, $dateValue, 0,0); $this->Cell(20, 6, $dateValue, 0,0);
$this->SetXY( 35,$yValue ); $this->SetXY( 35,$yValue );
$this->MultiAlignCell(100, 6, FileExportHelpers::FormatTextForExport($productDescription),0,'0',); $productDescription = FileExportHelpers::FormatTextForExport($productDescription);
$productDescriptionWidth = $this->GetStringWidth($productDescription);
$productDescriptionWidthIsGreaterThanMaxWidth = $productDescriptionWidth > $maxDescriptionWidth;
$productDescriptionIsMultiline = false;
if ($productDescriptionWidthIsGreaterThanMaxWidth) {
$yBefore = $this->GetY();
$this->MultiCell($maxDescriptionWidth, 6, $productDescription,0,'L');
$yAfter = $this->GetY();
$productDescriptionIsMultiline = ($yAfter - $yBefore) > 6;
if($productDescriptionIsMultiline){
$this->SetXY($this->GetX(),$yBefore);
}
} else {
$this->Cell($maxDescriptionWidth, 6, $productDescription);
}
$this->SetXY( 138,$yValue ); $this->SetXY( 138,$yValue );
$this->Cell(20, 6, number_format($valueHt,2,'.','').chr(128), 0, 0, 'C'); $this->Cell(20, 6, number_format($valueHt,2,'.','').chr(128), 0, 0, 'C');

View File

@ -219,7 +219,7 @@ class InvoiceGroupPdfHandler extends FPDF {
$totalTtc = 0; $totalTtc = 0;
$totalTva = 0; $totalTva = 0;
$yValue = $this->startingYOfArticlesTable + 11; $yValue = $this->startingYOfArticlesTable + 11;
$maxDescriptionWidth = 104; $maxDescriptionWidth = 98;
$currentIndexPosition = $this->currentIndexPosition; $currentIndexPosition = $this->currentIndexPosition;
for($currentIndexPosition;$currentIndexPosition<($this->initialIndexPosition + $this->devisCountToGet);$currentIndexPosition++){ for($currentIndexPosition;$currentIndexPosition<($this->initialIndexPosition + $this->devisCountToGet);$currentIndexPosition++){
$currentDevis = $devisData[$currentIndexPosition]; $currentDevis = $devisData[$currentIndexPosition];
@ -238,18 +238,25 @@ class InvoiceGroupPdfHandler extends FPDF {
$dateValue = $devisDate; $dateValue = $devisDate;
$productDescription .= " de " . $currentDevis["defunt_nom"] ?? ""; $productDescription .= " de " . $currentDevis["defunt_nom"] ?? "";
} }
$productDescriptionWidth = $this->GetStringWidth($productDescription);
$productDescriptionIsMultiline = $productDescriptionWidth > $maxDescriptionWidth;
$tvaAmount = $valueTtc - $valueHt; $tvaAmount = $valueTtc - $valueHt;
$this->SetXY( 8,$yValue ); $this->SetXY( 8,$yValue );
$this->Cell(20, 6, $dateValue, 0,0); $this->Cell(20, 6, $dateValue, 0,0);
$this->SetXY( 35,$yValue ); $this->SetXY( 35,$yValue );
if($productDescriptionIsMultiline){ $productDescription = FileExportHelpers::FormatTextForExport($productDescription);
$this->MultiAlignCell(100, 6, FileExportHelpers::FormatTextForExport($productDescription),0,'0',); $productDescriptionWidth = $this->GetStringWidth($productDescription);
} $productDescriptionWidthIsGreaterThanMaxWidth = $productDescriptionWidth > $maxDescriptionWidth;
else{ $productDescriptionIsMultiline = false;
$this->Cell(100,6,FileExportHelpers::FormatTextForExport($productDescription),0,0); if ($productDescriptionWidthIsGreaterThanMaxWidth) {
$yBefore = $this->GetY();
$this->MultiCell($maxDescriptionWidth, 6, $productDescription,0,'L');
$yAfter = $this->GetY();
$productDescriptionIsMultiline = ($yAfter - $yBefore) > 6;
if($productDescriptionIsMultiline){
$this->SetXY($this->GetX(),$yBefore);
}
} else {
$this->Cell($maxDescriptionWidth, 6, $productDescription);
} }
$this->SetXY( 138,$yValue ); $this->SetXY( 138,$yValue );
@ -262,7 +269,7 @@ class InvoiceGroupPdfHandler extends FPDF {
$this->Cell(25, 6, number_format($valueTtc,2,'.','').chr(128), 0, 1, 'C'); $this->Cell(25, 6, number_format($valueTtc,2,'.','').chr(128), 0, 1, 'C');
$yValue += 6; $yValue += 6;
$totalTva += $tvaAmount; $totalTva += $tvaAmount;
if($productDescriptionIsMultiline){ if($productDescriptionWidthIsGreaterThanMaxWidth){
$yValue += 6; $yValue += 6;
} }
} }