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.prix_unitaire as produit_price,
|
||||||
produit.reference as produit_reference,
|
produit.reference as produit_reference,
|
||||||
produit.description as produit_description,
|
produit.description as produit_description,
|
||||||
|
produit.fk_product_type_id as fk_product_type_id,
|
||||||
produit.vat as produit_vat,
|
produit.vat as produit_vat,
|
||||||
devis.id_client as devis_client_id
|
devis.id_client as devis_client_id
|
||||||
FROM ".$this->tableprefix ."produit_devis as produit_devis
|
FROM ".$this->tableprefix ."produit_devis as produit_devis
|
||||||
@ -2855,6 +2856,17 @@ class Bdd {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$products = $this->getDevisProduits($devis["devis_id"]);
|
$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){
|
foreach($products as $product){
|
||||||
$valueHt = $product['produit_price'] * $product['quantite'];
|
$valueHt = $product['produit_price'] * $product['quantite'];
|
||||||
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
||||||
|
|||||||
@ -59,7 +59,7 @@ class InvoiceFunecapPdfHandler extends InvoiceGroupPdfHandler {
|
|||||||
$this->MultiAlignCell(100, 6, FileExportHelpers::FormatTextForExport($subcontractorCaseNumberText),0,'0',);
|
$this->MultiAlignCell(100, 6, FileExportHelpers::FormatTextForExport($subcontractorCaseNumberText),0,'0',);
|
||||||
$yValue += 6;
|
$yValue += 6;
|
||||||
foreach($products as $product){
|
foreach($products as $product){
|
||||||
$valueHt = $product['produit_price'];
|
$valueHt = $product['produit_price'] * $product["quantite"];
|
||||||
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
||||||
$totalHt+=$valueHt;
|
$totalHt+=$valueHt;
|
||||||
$totalTtc+=$valueTtc;
|
$totalTtc+=$valueTtc;
|
||||||
@ -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');
|
||||||
|
|||||||
@ -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];
|
||||||
@ -227,29 +227,37 @@ class InvoiceGroupPdfHandler extends FPDF {
|
|||||||
$devisDate = DateTime::createFromFormat('Y-m-d',$devisDate);
|
$devisDate = DateTime::createFromFormat('Y-m-d',$devisDate);
|
||||||
$devisDate = $devisDate->format('d-m-Y');
|
$devisDate = $devisDate->format('d-m-Y');
|
||||||
$products = $currentDevis["products"];
|
$products = $currentDevis["products"];
|
||||||
|
$productIncrement = 0;
|
||||||
foreach($products as $product){
|
foreach($products as $product){
|
||||||
$valueHt = $product['produit_price'];
|
$valueHt = $product['produit_price'] * $product["quantite"];
|
||||||
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
|
||||||
$totalHt+=$valueHt;
|
$totalHt+=$valueHt;
|
||||||
$totalTtc+=$valueTtc;
|
$totalTtc+=$valueTtc;
|
||||||
$productDescription = $product["produit_description"] ?? "";
|
$productDescription = $product["produit_description"] ?? "";
|
||||||
$dateValue = "";
|
$dateValue = "";
|
||||||
if($product === end($products)){
|
if($productIncrement == 0){
|
||||||
$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,9 +270,10 @@ 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;
|
||||||
}
|
}
|
||||||
|
$productIncrement++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->currentIndexPosition = $currentIndexPosition;
|
$this->currentIndexPosition = $currentIndexPosition;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user