From be2ee21462f9e0cc545f5af4431e115afdcc4792 Mon Sep 17 00:00:00 2001 From: hystepik Date: Wed, 22 Feb 2023 15:09:37 +0100 Subject: [PATCH] creation of prelevement_bon only for 1 demande --- .../prelevement/class/bonprelevement.class.php | 7 +++++-- htdocs/core/class/commoninvoice.class.php | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index b9d1fd7c54a..7e183f7795d 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -747,9 +747,10 @@ class BonPrelevement extends CommonObject * @param string $executiondate Date to execute the transfer * @param int $notrigger Disable triggers * @param string $type 'direct-debit' or 'bank-transfer' + * @param int $did ID of payment request * @return int <0 if KO, No of invoice included into file if OK */ - public function create($banque = 0, $agence = 0, $mode = 'real', $format = 'ALL', $executiondate = '', $notrigger = 0, $type = 'direct-debit') + public function create($banque = 0, $agence = 0, $mode = 'real', $format = 'ALL', $executiondate = '', $notrigger = 0, $type = 'direct-debit', $did = 0) { // phpcs:enable global $conf, $langs, $user; @@ -811,7 +812,9 @@ class BonPrelevement extends CommonObject $sql .= " AND pfd.traite = 0"; $sql .= " AND f.total_ttc > 0"; $sql .= " AND pfd.ext_payment_id IS NULL"; - + if ($did > 0) { + $sql .= " AND pfd.rowid = '".$this->db->escape($did)."'"; + } dol_syslog(__METHOD__."::Read invoices,", LOG_DEBUG); $resql = $this->db->query($sql); diff --git a/htdocs/core/class/commoninvoice.class.php b/htdocs/core/class/commoninvoice.class.php index 41d76310779..55824f118aa 100644 --- a/htdocs/core/class/commoninvoice.class.php +++ b/htdocs/core/class/commoninvoice.class.php @@ -1442,8 +1442,8 @@ abstract class CommonInvoice extends CommonObject } // TODO Create a prelevement_bon and set its status to sent instead of this - $bon = new BonPrelevement($db); - $nbinvoices = $bon->create(); + $bon = new BonPrelevement($this->db); + $nbinvoices = $bon->create(0, 0, 'real', 'ALL', '', 0, 'direct-debit', $did); if ($nbinvoices <= 0) { $error++; $errorforinvoice++; @@ -1451,12 +1451,14 @@ abstract class CommonInvoice extends CommonObject $this->errors[] = "Error on BonPrelevement creation"; } - $result = $bon->set_infotrans($user, $now, 'internet'); - if ($result < 0) { - $error++; - $errorforinvoice++; - dol_syslog("Error on BonPrelevement creation", LOG_ERR); - $this->errors[] = "Error on BonPrelevement creation"; + if (!$errorforinvoice) { + $result = $bon->set_infotrans($user, $now, 'internet'); + if ($result < 0) { + $error++; + $errorforinvoice++; + dol_syslog("Error on BonPrelevement creation", LOG_ERR); + $this->errors[] = "Error on BonPrelevement creation"; + } } if (!$errorforinvoice) {