From 0c7c2f1240fa49c16577abf59f2847ccbe7514ec Mon Sep 17 00:00:00 2001 From: Rodolphe Quiedeville <rodolphe@quiedeville.org> Date: Wed, 19 Jan 2005 13:58:14 +0000 Subject: [PATCH] =?UTF-8?q?Modif=20fonction=20set=5Fcredite=20update=20le?= =?UTF-8?q?=20statut=20des=20lignes=20de=20prelevement=20et=20ens=E8re=20l?= =?UTF-8?q?e=20tout=20dans=20une=20transaction=20SQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/bon-prelevement.class.php | 91 ++++++++++++++++++++++++-------- 1 file changed, 70 insertions(+), 21 deletions(-) diff --git a/htdocs/bon-prelevement.class.php b/htdocs/bon-prelevement.class.php index dad4c122a2c..b5cc0661eca 100644 --- a/htdocs/bon-prelevement.class.php +++ b/htdocs/bon-prelevement.class.php @@ -103,34 +103,83 @@ class BonPrelevement */ function set_credite() { - $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement "; - $sql .= " SET credite = 1"; - $sql .= " WHERE rowid=".$this->id; - - $result=$this->db->query($sql); - if ($result) + $error == 0; + + if ($this->db->query("BEGIN")) { - /** - * - * + + + $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement "; + $sql .= " SET credite = 1"; + $sql .= " WHERE rowid=".$this->id; + + $result=$this->db->query($sql); + if (! $result) + { + dolibarr_syslog("bon-prelevment::set_credite Erreur 1"); + $error++; + } + + if ($error == 0) + { + /** + * + * + * + */ + $facs = array(); + $facs = $this->_get_list_factures(); + + for ($i = 0 ; $i < sizeof($facs) ; $i++) + { + $fac = new Facture($this->db); + + /* Tag la facture comme impay�e */ + dolibarr_syslog("RejetPrelevement::Create set_payed fac ".$facs[$i]); + $fac->set_payed($facs[$i]); + } + } + + if ($error == 0) + { + /* + * Change le statut des lignes de factures + */ + + $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_facture "; + $sql .= " SET statut = 1"; + $sql .= " WHERE fk_prelevement=".$this->id; + + $result=$this->db->query($sql); + if (!$result) + { + dolibarr_syslog("bon-prelevment::set_credite Erreur 3"); + $error++; + } + } + + /* + * Fin de la proc�dure * */ - $facs = array(); - $facs = $this->_get_list_factures(); - - for ($i = 0 ; $i < sizeof($facs) ; $i++) - { - $fac = new Facture($this->db); - - /* Tag la facture comme impay�e */ - dolibarr_syslog("RejetPrelevement::Create set_payed fac ".$facs[$i]); - $fac->set_payed($facs[$i]); + if ($error == 0) + { + $this->db->query("COMMIT"); + return 0; } + else + { + $this->db->query("ROLLBACK"); + dolibarr_syslog("bon-prelevment::set_credite ROLLBACK "); + return -1; + } + + } else { - dolibarr_syslog("bon-prelevment::Fetch Erreur "); - dolibarr_syslog($sql); + + dolibarr_syslog("bon-prelevment::set_credite Ouverture transaction SQL impossible "); return -2; } } -- GitLab