From 8b633aee66978bd4333bc3ed909c2bda2ec4a97a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= <marcosgdf@gmail.com> Date: Thu, 24 Dec 2015 14:39:28 +0100 Subject: [PATCH] FIX #4182 SQL error when deleting an unexisting bank entry --- htdocs/compta/bank/class/account.class.php | 6 +++--- htdocs/compta/bank/rappro.php | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index a7e55afb3cb..774c284f730 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -1277,12 +1277,12 @@ class AccountLine extends CommonObject $nbko++; } - $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid=".$this->rowid; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid=".(int) $this->rowid; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $result = $this->db->query($sql); if (! $result) $nbko++; - $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".$this->rowid; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".(int) $this->rowid; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $result = $this->db->query($sql); if (! $result) $nbko++; @@ -1319,7 +1319,7 @@ class AccountLine extends CommonObject $this->db->begin(); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank=".$this->rowid; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank=".(int) $this->rowid; dol_syslog(get_class($this)."::delete_urls", LOG_DEBUG); $result = $this->db->query($sql); if (! $result) $nbko++; diff --git a/htdocs/compta/bank/rappro.php b/htdocs/compta/bank/rappro.php index 8468bfbd5fb..3884891fb21 100644 --- a/htdocs/compta/bank/rappro.php +++ b/htdocs/compta/bank/rappro.php @@ -99,11 +99,14 @@ if ($action == 'rappro' && $user->rights->banque->consolidate) if ($action == 'del') { $bankline=new AccountLine($db); - $bankline->fetch($_GET["rowid"]); - $result=$bankline->delete($user); - if ($result < 0) - { - dol_print_error($db,$bankline->error); + + if ($bankline->fetch($_GET["rowid"]) > 1) { + $result = $bankline->delete($user); + if ($result < 0) { + dol_print_error($db, $bankline->error); + } + } else { + setEventMessage($langs->trans('ErrorRecordNotFound'), 'errors'); } } -- GitLab