From ca8c1adf55dc1f3ded447626064e9815d8856306 Mon Sep 17 00:00:00 2001 From: All-3kcis Date: Wed, 21 Oct 2015 10:07:53 +0200 Subject: [PATCH 1/4] Add trigger "SUPPLIER_PRODUCT_BUYPRICE_DELETE" for frounisseur.product remove_product_fournisseur_price() --- .../fourn/class/fournisseur.product.class.php | 19 ++++++++++++++++--- htdocs/product/fournisseurs.php | 9 +++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index 490b5cf1ea3..346f69a4cef 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -121,7 +121,7 @@ class ProductFournisseur extends Product */ function remove_product_fournisseur_price($rowid) { - global $conf; + global $conf, $user; $this->db->begin(); @@ -132,8 +132,21 @@ class ProductFournisseur extends Product $resql = $this->db->query($sql); if ($resql) { - $this->db->commit(); - return 1; + // Call trigger + $result=$this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_DELETE',$user); + if ($result < 0) $error++; + // End call triggers + + if (empty($error)) + { + $this->db->commit(); + return 1; + } + else + { + $this->db->rollback(); + return -1; + } } else { diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 72f8ed2b0b2..526b67b123c 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -95,9 +95,14 @@ if (empty($reshook)) { if ($rowid) { - $result=$object->remove_product_fournisseur_price($rowid); $action = ''; - setEventMessage($langs->trans("PriceRemoved")); + $result=$product->remove_product_fournisseur_price($rowid); + if($result > 0){ + setEventMessage($langs->trans("PriceRemoved")); + }else{ + $error++; + setEventMessages($product->error, $product->errors, 'errors'); + } } } From ceae04b76e243dff282cba2fdd4b68990e933454 Mon Sep 17 00:00:00 2001 From: All-3kcis Date: Thu, 22 Oct 2015 12:03:01 +0200 Subject: [PATCH 2/4] move trigger before query --- .../fourn/class/fournisseur.product.class.php | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index 346f69a4cef..c143e2e98be 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -123,35 +123,34 @@ class ProductFournisseur extends Product { global $conf, $user; - $this->db->begin(); + // Call trigger + $result=$this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_DELETE',$user); + if ($result < 0) $error++; + // End call triggers - $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_fournisseur_price"; - $sql.= " WHERE rowid = ".$rowid; - - dol_syslog(get_class($this)."::remove_product_fournisseur_price", LOG_DEBUG); - $resql = $this->db->query($sql); - if ($resql) + if (empty($error)) { - // Call trigger - $result=$this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_DELETE',$user); - if ($result < 0) $error++; - // End call triggers + $this->db->begin(); - if (empty($error)) + $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_fournisseur_price"; + $sql.= " WHERE rowid = ".$rowid; + + dol_syslog(get_class($this)."::remove_product_fournisseur_price", LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { $this->db->commit(); return 1; } else { + $this->error=$this->db->lasterror(); $this->db->rollback(); return -1; } } else { - $this->error=$this->db->lasterror(); - $this->db->rollback(); return -1; } } From 00c2b1a32a6231eb7dc371bd198ad2563bbe0baa Mon Sep 17 00:00:00 2001 From: All-3kcis Date: Thu, 22 Oct 2015 14:30:11 +0200 Subject: [PATCH 3/4] move db->begin() before trigger --- htdocs/fourn/class/fournisseur.product.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index c143e2e98be..acbeba8a720 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -123,6 +123,8 @@ class ProductFournisseur extends Product { global $conf, $user; + $this->db->begin(); + // Call trigger $result=$this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_DELETE',$user); if ($result < 0) $error++; @@ -130,7 +132,6 @@ class ProductFournisseur extends Product if (empty($error)) { - $this->db->begin(); $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_fournisseur_price"; $sql.= " WHERE rowid = ".$rowid; From a658ff7e90f6a50170390af11ab72105d70c2297 Mon Sep 17 00:00:00 2001 From: All-3kcis Date: Mon, 2 Nov 2015 10:26:07 +0100 Subject: [PATCH 4/4] add commit or rollback if error --- .../fourn/class/fournisseur.product.class.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index acbeba8a720..ef776342aa5 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -138,22 +138,21 @@ class ProductFournisseur extends Product dol_syslog(get_class($this)."::remove_product_fournisseur_price", LOG_DEBUG); $resql = $this->db->query($sql); - if ($resql) - { - $this->db->commit(); - return 1; - } - else + if (!$resql) { $this->error=$this->db->lasterror(); - $this->db->rollback(); - return -1; + $error++; } } - else - { + + if (empty($error)){ + $this->db->commit(); + return 1; + }else{ + $this->db->rollback(); return -1; } + }