From 48c879a91d9dbb4782b191fd4c7880fc7a583520 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 18 Dec 2021 14:56:19 +0100 Subject: [PATCH] Fix setDefault should work for all types --- htdocs/societe/class/companybankaccount.class.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/class/companybankaccount.class.php b/htdocs/societe/class/companybankaccount.class.php index 30ad6c08dcf..82a99a80a49 100644 --- a/htdocs/societe/class/companybankaccount.class.php +++ b/htdocs/societe/class/companybankaccount.class.php @@ -349,10 +349,11 @@ class CompanyBankAccount extends Account /** * Set a BAN as Default * - * @param int $rib RIB id - * @return int 0 if KO, 1 if OK + * @param int $rib RIB id + * @param string $resetolddefaultfor Reset if we have already a default value for type = 'ban' + * @return int 0 if KO, 1 if OK */ - public function setAsDefault($rib = 0) + public function setAsDefault($rib = 0, $resetolddefaultfor = 'ban') { $sql1 = "SELECT rowid as id, fk_soc FROM ".MAIN_DB_PREFIX."societe_rib"; $sql1 .= " WHERE rowid = ".($rib ? $rib : $this->id); @@ -368,7 +369,10 @@ class CompanyBankAccount extends Account $this->db->begin(); $sql2 = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET default_rib = 0"; - $sql2 .= " WHERE type = 'ban' AND fk_soc = ".((int) $obj->fk_soc); + $sql2 .= " WHERE fk_soc = ".((int) $obj->fk_soc); + if ($resetolddefaultfor) { + $sql2 .= " AND type = '".$this->db->escape($resetolddefaultfor)."'"; + } $result2 = $this->db->query($sql2); $sql3 = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET default_rib = 1";