From d3b691d495a8be8be71ef8a6af3fe9bbaa2f88ac Mon Sep 17 00:00:00 2001 From: apsolauv Date: Wed, 25 Jun 2025 19:58:55 +0200 Subject: [PATCH] Fix the previous PR FixNegativeCreditNote for specific workflow deposit --> payed --> delete discount --> mark as credit (#34637) Co-authored-by: Alex SOLAUV --- htdocs/compta/facture/card.php | 40 ++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 203ba86a507..2d23643eebc 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -1067,18 +1067,34 @@ if (empty($reshook)) { } if ($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT) { foreach ($amount_ht as $tva_tx => $xxx) { - $discount->amount_ht = -((float) $amount_ht[$tva_tx]); - $discount->amount_tva = -((float) $amount_tva[$tva_tx]); - $discount->amount_ttc = -((float) $amount_ttc[$tva_tx]); - $discount->total_ht = -((float) $amount_ht[$tva_tx]); - $discount->total_tva = -((float) $amount_tva[$tva_tx]); - $discount->total_ttc = -((float) $amount_ttc[$tva_tx]); - $discount->multicurrency_amount_ht = -((float) $multicurrency_amount_ht[$tva_tx]); - $discount->multicurrency_amount_tva = -((float) $multicurrency_amount_tva[$tva_tx]); - $discount->multicurrency_amount_ttc = -((float) $multicurrency_amount_ttc[$tva_tx]); - $discount->multicurrency_total_ht = -((float) $multicurrency_amount_ht[$tva_tx]); - $discount->multicurrency_total_tva = -((float) $multicurrency_amount_tva[$tva_tx]); - $discount->multicurrency_total_ttc = -((float) $multicurrency_amount_ttc[$tva_tx]); + if ($object->type == Facture::TYPE_CREDIT_NOTE) { + $discount->amount_ht = -((float) $amount_ht[$tva_tx]); + $discount->amount_tva = -((float) $amount_tva[$tva_tx]); + $discount->amount_ttc = -((float) $amount_ttc[$tva_tx]); + $discount->total_ht = -((float) $amount_ht[$tva_tx]); + $discount->total_tva = -((float) $amount_tva[$tva_tx]); + $discount->total_ttc = -((float) $amount_ttc[$tva_tx]); + $discount->multicurrency_amount_ht = -((float) $multicurrency_amount_ht[$tva_tx]); + $discount->multicurrency_amount_tva = -((float) $multicurrency_amount_tva[$tva_tx]); + $discount->multicurrency_amount_ttc = -((float) $multicurrency_amount_ttc[$tva_tx]); + $discount->multicurrency_total_ht = -((float) $multicurrency_amount_ht[$tva_tx]); + $discount->multicurrency_total_tva = -((float) $multicurrency_amount_tva[$tva_tx]); + $discount->multicurrency_total_ttc = -((float) $multicurrency_amount_ttc[$tva_tx]); + } else { + //We keep the absolute value to be consistent with the function used to create the discount in case of deposit in the “create” function of the Payment class + $discount->amount_ht = abs((float) $amount_ht[$tva_tx]); + $discount->amount_tva = abs((float) $amount_tva[$tva_tx]); + $discount->amount_ttc = abs((float) $amount_ttc[$tva_tx]); + $discount->total_ht = abs((float) $amount_ht[$tva_tx]); + $discount->total_tva = abs((float) $amount_tva[$tva_tx]); + $discount->total_ttc = abs((float) $amount_ttc[$tva_tx]); + $discount->multicurrency_amount_ht = abs((float) $multicurrency_amount_ht[$tva_tx]); + $discount->multicurrency_amount_tva = abs((float) $multicurrency_amount_tva[$tva_tx]); + $discount->multicurrency_amount_ttc = abs((float) $multicurrency_amount_ttc[$tva_tx]); + $discount->multicurrency_total_ht = abs((float) $multicurrency_amount_ht[$tva_tx]); + $discount->multicurrency_total_tva = abs((float) $multicurrency_amount_tva[$tva_tx]); + $discount->multicurrency_total_ttc = abs((float) $multicurrency_amount_ttc[$tva_tx]); + } // Clean vat code $reg = array();