From 5c9606107c129937a4b8b7b9f37b46c46ffd85c8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 25 Jul 2007 17:46:47 +0000 Subject: [PATCH] Option sur methodes pour ne pas activer les triggers --- htdocs/actioncomm.class.php | 22 +++++++++++++--------- htdocs/commande/commande.class.php | 22 +++++++++++++--------- htdocs/facture.class.php | 9 +++++---- htdocs/user.class.php | 26 +++++++++++++++----------- 4 files changed, 46 insertions(+), 33 deletions(-) diff --git a/htdocs/actioncomm.class.php b/htdocs/actioncomm.class.php index 1fb20e82694..ca018ef249f 100644 --- a/htdocs/actioncomm.class.php +++ b/htdocs/actioncomm.class.php @@ -75,10 +75,11 @@ class ActionComm /** * \brief Ajout d'une action en base - * \param author auteur de la creation de l'action - * \return int id de l'action créée, < 0 si erreur + * \param author auteur de la creation de l'action + * \param notrigger 1 ne declenche pas les triggers, 0 sinon + * \return int id de l'action créée, < 0 si erreur */ - function add($author) + function add($author,$notrigger=0) { global $langs,$conf; @@ -133,12 +134,15 @@ class ActionComm { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."actioncomm"); - // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); - $interface=new Interfaces($this->db); - $result=$interface->run_triggers('ACTION_CREATE',$this,$author,$langs,$conf); - // Fin appel triggers - + if (! $notrigger) + { + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('ACTION_CREATE',$this,$author,$langs,$conf); + // Fin appel triggers + } + $this->db->commit(); return $this->id; } diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php index 712fb9c1dc2..c99111c4e72 100644 --- a/htdocs/commande/commande.class.php +++ b/htdocs/commande/commande.class.php @@ -2434,10 +2434,11 @@ class CommandeLigne } /** - * \brief Insère l'objet ligne de commande en base - * \return int <0 si ko, >0 si ok + * \brief Insère l'objet ligne de commande en base + * \param notrigger 1 ne declenche pas les triggers, 0 sinon + * \return int <0 si ko, >0 si ok */ - function insert() + function insert($notrigger=0) { global $langs, $conf, $user; @@ -2505,12 +2506,15 @@ class CommandeLigne $resql=$this->db->query($sql); if ($resql) { - // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); - $interface=new Interfaces($this->db); - $result=$interface->run_triggers('LINEORDER_INSERT',$this,$user,$langs,$conf); - // Fin appel triggers - + if (! $notrigger) + { + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('LINEORDER_INSERT',$this,$user,$langs,$conf); + // Fin appel triggers + } + $this->db->commit(); return 1; } diff --git a/htdocs/facture.class.php b/htdocs/facture.class.php index 63d2ae0ff80..957b5f9162c 100644 --- a/htdocs/facture.class.php +++ b/htdocs/facture.class.php @@ -123,11 +123,12 @@ class Facture extends CommonObject } /** - \brief Création de la facture en base - \param user Object utilisateur qui crée - \return int <0 si ko, >0 si ok + \brief Création de la facture en base + \param user Object utilisateur qui crée + \param notrigger 1 ne declenche pas les triggers, 0 sinon + \return int <0 si ko, >0 si ok */ - function create($user) + function create($user,$notrigger=0) { global $langs,$conf,$mysoc; diff --git a/htdocs/user.class.php b/htdocs/user.class.php index 6148f7dff42..9a911719474 100644 --- a/htdocs/user.class.php +++ b/htdocs/user.class.php @@ -646,10 +646,11 @@ class User /** * \brief Crée l'utilisateur en base - * \param user Objet user qui demande la creation - * \return int <0 si KO, id compte créé si OK + * \param user Objet user qui demande la creation + * \param notrigger 1 ne declenche pas les triggers, 0 sinon + * \return int <0 si KO, id compte créé si OK */ - function create($user='') + function create($user='',$notrigger=0) { global $conf,$langs; @@ -700,13 +701,16 @@ class User return -4; } - // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); - $interface = new Interfaces($this->db); - $result = $interface->run_triggers('USER_CREATE',$this,$user,$lang,$conf); - if ($result < 0) $error++; - // Fin appel triggers - + if (! $notrigger) + { + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); + $interface = new Interfaces($this->db); + $result = $interface->run_triggers('USER_CREATE',$this,$user,$lang,$conf); + if ($result < 0) $error++; + // Fin appel triggers + } + if (! $error) { $this->db->commit(); @@ -884,7 +888,7 @@ class User /** * \brief Mise à jour en base d'un utilisateur - * \param notrigger 1 si update durant le create, 0 sinon + * \param notrigger 1 ne declenche pas les triggers, 0 sinon * \return int <0 si KO, >=0 si OK */ function update($notrigger=0)