From a0c4af79293bbca41233f5ae7eba7cb417635e8c Mon Sep 17 00:00:00 2001 From: lamrani abdelwadoud Date: Wed, 28 Feb 2024 18:52:05 +0100 Subject: [PATCH] Fix amount type in api_invoices (#28475) * Fix amount type in api_invoices * Update api_invoices.class.php --------- Co-authored-by: Laurent Destailleur --- .../compta/facture/class/api_invoices.class.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php index 61258a62655..2c4995989e1 100644 --- a/htdocs/compta/facture/class/api_invoices.class.php +++ b/htdocs/compta/facture/class/api_invoices.class.php @@ -1478,27 +1478,23 @@ class Invoices extends DolibarrApi // Clean parameters amount if payment is for a credit note if ($this->invoice->type == Facture::TYPE_CREDIT_NOTE) { $resteapayer = price2num($resteapayer, 'MT'); - $amounts[$id] = price2num(-1 * $resteapayer, 'MT'); + $amounts[$id] = (float) price2num(-1 * $resteapayer, 'MT'); // Multicurrency $newvalue = price2num($this->invoice->multicurrency_total_ttc, 'MT'); - $multicurrency_amounts[$id] = price2num(-1 * $newvalue, 'MT'); + $multicurrency_amounts[$id] = (float) price2num(-1 * $newvalue, 'MT'); } else { $resteapayer = price2num($resteapayer, 'MT'); - $amounts[$id] = $resteapayer; + $amounts[$id] = (float) $resteapayer; // Multicurrency $newvalue = price2num($this->invoice->multicurrency_total_ttc, 'MT'); - $multicurrency_amounts[$id] = $newvalue; + $multicurrency_amounts[$id] = (float) $newvalue; } // Creation of payment line $paymentobj = new Paiement($this->db); $paymentobj->datepaye = $datepaye; - $paymentobj->amounts = $amounts; // Array with all payments dispatching with invoice id - $multicurrencyAmountsConverted = []; - foreach ($multicurrency_amounts as $key => $value) { - $multicurrencyAmountsConverted[$key] = (float) $value; - } - $paymentobj->multicurrency_amounts = $multicurrencyAmountsConverted; // Array with all payments dispatching + $paymentobj->amounts = $amounts; + $paymentobj->multicurrency_amounts = $multicurrency_amounts; $paymentobj->paiementid = $paymentid; $paymentobj->paiementcode = (string) dol_getIdFromCode($this->db, $paymentid, 'c_paiement', 'id', 'code', 1); $paymentobj->num_payment = $num_payment;