diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 0a0067f1105c11d4bbd39a514c30b73096a52b58..6d0edce5a6534bff23d82ecf6f126455485a86e2 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -390,9 +390,9 @@ class CommandeFournisseur extends CommonOrder include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); $result=$interface->run_triggers('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); - if ($result < 0) - { - $error++; + if ($result < 0) + { + $error++; $this->errors=$interface->errors; $this->db->rollback(); return -1; @@ -749,7 +749,7 @@ class CommandeFournisseur extends CommonOrder } else { - $this->db->rollback(); + $this->db->rollback(); return -1; } } @@ -780,34 +780,44 @@ class CommandeFournisseur extends CommonOrder $error=0; - dol_syslog(get_class($this)."::refuse"); $result = 0; if ($user->rights->fournisseur->commande->approuver) { $this->db->begin(); - + $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = 9"; - $sql .= " WHERE rowid = ".$this->id; - - if ($this->db->query($sql)) + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog(get_class($this)."::refuse sql=".$sql); + $resql=$this->db->query($sql); + + if ($resql) { $result = 0; $this->log($user, 9, time()); - if ($error == 0) + if (! $error) { // Appel des triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); $result=$interface->run_triggers('ORDER_SUPPLIER_REFUSE',$this,$user,$langs,$conf); - if ($result < 0) - { + if ($result < 0) + { $error++; $this->errors=$interface->errors; - $this->db->rollback(); } // Fin appel triggers } + + if (! $error) + { + $this->db->commit(); + } + else + { + $this->db->rollback(); + } } else { @@ -821,7 +831,7 @@ class CommandeFournisseur extends CommonOrder { dol_syslog(get_class($this)."::refuse Not Authorized"); } - return $result ; + return $result; } /** @@ -1052,7 +1062,7 @@ class CommandeFournisseur extends CommonOrder include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); $result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf); - if ($result < 0) + if ($result < 0) { $error++; $this->errors=$interface->errors; @@ -1305,8 +1315,8 @@ class CommandeFournisseur extends CommonOrder include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); $result=$interface->run_triggers('LINEORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf); - if ($result < 0) - { + if ($result < 0) + { $error++; $this->errors=$interface->errors; $this->db->rollback(); @@ -1377,7 +1387,7 @@ class CommandeFournisseur extends CommonOrder $interface=new Interfaces($this->db); $result=$interface->run_triggers('LINEORDER_SUPPLIER_DISPATCH',$this,$user,$langs,$conf); if ($result < 0) - { + { $error++; $this->errors=$interface->errors; $this->db->rollback(); @@ -1442,7 +1452,7 @@ class CommandeFournisseur extends CommonOrder { $sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE rowid = ".$idligne; $resql=$this->db->query($sql); - + //TODO: Add trigger for deleted line dol_syslog(get_class($this)."::deleteline sql=".$sql); if ($resql)