Merge branch 'fixes/fix-facturation-group-details' into staging
This commit is contained in:
commit
6c3d73edd3
@ -2566,6 +2566,7 @@ class Bdd {
|
||||
produit.prix_unitaire as produit_price,
|
||||
produit.reference as produit_reference,
|
||||
produit.description as produit_description,
|
||||
produit.fk_product_type_id as fk_product_type_id,
|
||||
produit.vat as produit_vat,
|
||||
devis.id_client as devis_client_id
|
||||
FROM ".$this->tableprefix ."produit_devis as produit_devis
|
||||
@ -2855,6 +2856,17 @@ class Bdd {
|
||||
}
|
||||
}
|
||||
$products = $this->getDevisProduits($devis["devis_id"]);
|
||||
if(count($products) > 1){
|
||||
usort($products, function ($a, $b) {
|
||||
if ($a["fk_product_type_id"] === null && $b["fk_product_type_id"] !== null) {
|
||||
return -1;
|
||||
}
|
||||
if ($a["fk_product_type_id"] !== null && $b["fk_product_type_id"] === null) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
foreach($products as $product){
|
||||
$valueHt = $product['produit_price'] * $product['quantite'];
|
||||
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
||||
|
||||
@ -59,7 +59,7 @@ class InvoiceFunecapPdfHandler extends InvoiceGroupPdfHandler {
|
||||
$this->MultiAlignCell(100, 6, FileExportHelpers::FormatTextForExport($subcontractorCaseNumberText),0,'0',);
|
||||
$yValue += 6;
|
||||
foreach($products as $product){
|
||||
$valueHt = $product['produit_price'];
|
||||
$valueHt = $product['produit_price'] * $product["quantite"];
|
||||
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
||||
$totalHt+=$valueHt;
|
||||
$totalTtc+=$valueTtc;
|
||||
@ -69,15 +69,26 @@ class InvoiceFunecapPdfHandler extends InvoiceGroupPdfHandler {
|
||||
$dateValue = $devisDate;
|
||||
$productDescription .= " de " . $currentDevis["defunt_nom"] ?? "";
|
||||
}
|
||||
$productDescriptionWidth = $this->GetStringWidth($productDescription);
|
||||
$productDescriptionIsMultiline = $productDescriptionWidth > $maxDescriptionWidth;
|
||||
$tvaAmount = $valueTtc - $valueHt;
|
||||
|
||||
$this->SetXY( 8,$yValue );
|
||||
$this->Cell(20, 6, $dateValue, 0,0);
|
||||
|
||||
|
||||
$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->Cell(20, 6, number_format($valueHt,2,'.','').chr(128), 0, 0, 'C');
|
||||
|
||||
@ -219,7 +219,7 @@ class InvoiceGroupPdfHandler extends FPDF {
|
||||
$totalTtc = 0;
|
||||
$totalTva = 0;
|
||||
$yValue = $this->startingYOfArticlesTable + 11;
|
||||
$maxDescriptionWidth = 104;
|
||||
$maxDescriptionWidth = 98;
|
||||
$currentIndexPosition = $this->currentIndexPosition;
|
||||
for($currentIndexPosition;$currentIndexPosition<($this->initialIndexPosition + $this->devisCountToGet);$currentIndexPosition++){
|
||||
$currentDevis = $devisData[$currentIndexPosition];
|
||||
@ -227,29 +227,37 @@ class InvoiceGroupPdfHandler extends FPDF {
|
||||
$devisDate = DateTime::createFromFormat('Y-m-d',$devisDate);
|
||||
$devisDate = $devisDate->format('d-m-Y');
|
||||
$products = $currentDevis["products"];
|
||||
$productIncrement = 0;
|
||||
foreach($products as $product){
|
||||
$valueHt = $product['produit_price'];
|
||||
$valueHt = $product['produit_price'] * $product["quantite"];
|
||||
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
||||
$totalHt+=$valueHt;
|
||||
$totalTtc+=$valueTtc;
|
||||
$productDescription = $product["produit_description"] ?? "";
|
||||
$dateValue = "";
|
||||
if($product === end($products)){
|
||||
if($productIncrement == 0){
|
||||
$dateValue = $devisDate;
|
||||
$productDescription .= " de " . $currentDevis["defunt_nom"] ?? "";
|
||||
}
|
||||
$productDescriptionWidth = $this->GetStringWidth($productDescription);
|
||||
$productDescriptionIsMultiline = $productDescriptionWidth > $maxDescriptionWidth;
|
||||
$tvaAmount = $valueTtc - $valueHt;
|
||||
$this->SetXY( 8,$yValue );
|
||||
$this->Cell(20, 6, $dateValue, 0,0);
|
||||
|
||||
|
||||
$this->SetXY( 35,$yValue );
|
||||
if($productDescriptionIsMultiline){
|
||||
$this->MultiAlignCell(100, 6, FileExportHelpers::FormatTextForExport($productDescription),0,'0',);
|
||||
}
|
||||
else{
|
||||
$this->Cell(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 );
|
||||
@ -262,9 +270,10 @@ class InvoiceGroupPdfHandler extends FPDF {
|
||||
$this->Cell(25, 6, number_format($valueTtc,2,'.','').chr(128), 0, 1, 'C');
|
||||
$yValue += 6;
|
||||
$totalTva += $tvaAmount;
|
||||
if($productDescriptionIsMultiline){
|
||||
if($productDescriptionWidthIsGreaterThanMaxWidth){
|
||||
$yValue += 6;
|
||||
}
|
||||
$productIncrement++;
|
||||
}
|
||||
}
|
||||
$this->currentIndexPosition = $currentIndexPosition;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user