Refactor: ORDER_SUPPLIER_* and LINEORDER_SUPPLIER_* trigger

This commit is contained in:
KreizIT 2014-07-11 15:32:23 +02:00
parent b8499a80ec
commit bbdaa59921
2 changed files with 53 additions and 88 deletions

View File

@ -43,8 +43,7 @@ For developers:
- New: Add trigger DON_UPDATE, DON_DELETE - New: Add trigger DON_UPDATE, DON_DELETE
- New: Add country iso code on 3 chars into table of countries. - New: Add country iso code on 3 chars into table of countries.
- Qual: Removed hard coded rowid into data init of table llx_c_action_trigger. - Qual: Removed hard coded rowid into data init of table llx_c_action_trigger.
- LINEBILL_DELETE trigger called before SQL delete in facturedet - LINEBILL_DELETE, LINK_DELETE, ORDER_SUPPLIER_DELETE trigger called before SQL delete
- LINK_DELETE trigger called before SQL delete
WARNING: Following change may create regression for some external modules, but was necessary to make WARNING: Following change may create regression for some external modules, but was necessary to make
Dolibarr better: Dolibarr better:

View File

@ -388,18 +388,14 @@ class CommandeFournisseur extends CommonOrder
if (! $error) if (! $error)
{ {
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('ORDER_SUPPLIER_VALIDATE',$user);
$interface=new Interfaces($this->db); if ($result < 0)
$result=$interface->run_triggers('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf);
if ($result < 0)
{ {
$error++;
$this->errors=$interface->errors;
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
// Fin appel triggers // End call triggers
} }
if (! $error) if (! $error)
@ -653,12 +649,10 @@ class CommandeFournisseur extends CommonOrder
if (! $error) if (! $error)
{ {
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('ORDER_SUPPLIER_APPROVE',$user);
$interface=new Interfaces($this->db); if ($result < 0) $error++;
$result=$interface->run_triggers('ORDER_SUPPLIER_APPROVE',$this,$user,$langs,$conf); // End call triggers
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
} }
if (! $error) if (! $error)
@ -714,17 +708,16 @@ class CommandeFournisseur extends CommonOrder
if ($error == 0) if ($error == 0)
{ {
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('ORDER_SUPPLIER_REFUSE',$user);
$interface=new Interfaces($this->db); if ($result < 0)
$result=$interface->run_triggers('ORDER_SUPPLIER_REFUSE',$this,$user,$langs,$conf);
if ($result < 0)
{ {
$error++; $error++;
$this->errors=$interface->errors;
$this->db->rollback(); $this->db->rollback();
} }
// Fin appel triggers else
$this->db->commit();
// End call triggers
} }
} }
else else
@ -772,12 +765,10 @@ class CommandeFournisseur extends CommonOrder
$result = 0; $result = 0;
$this->log($user, $statut, time()); $this->log($user, $statut, time());
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('ORDER_SUPPLIER_CANCEL',$user);
$interface=new Interfaces($this->db); if ($result < 0) $error++;
$result=$interface->run_triggers('ORDER_SUPPLIER_CANCEL',$this,$user,$langs,$conf); // End call triggers
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
if ($error == 0) if ($error == 0)
{ {
@ -967,18 +958,14 @@ class CommandeFournisseur extends CommonOrder
if (! $notrigger) if (! $notrigger)
{ {
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('ORDER_SUPPLIER_CREATE',$user);
$interface=new Interfaces($this->db); if ($result < 0)
$result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
if ($result < 0)
{ {
$error++;
$this->errors=$interface->errors;
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
// Fin appel triggers // End call triggers
} }
$this->db->commit(); $this->db->commit();
@ -1041,12 +1028,10 @@ class CommandeFournisseur extends CommonOrder
if ($reshook < 0) $error++; if ($reshook < 0) $error++;
} }
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('ORDER_SUPPLIER_CLONE',$user);
$interface=new Interfaces($this->db); if ($result < 0) $error++;
$result=$interface->run_triggers('ORDER_SUPPLIER_CLONE',$this,$user,$langs,$conf); // End call triggers
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
} }
// End // End
@ -1222,18 +1207,14 @@ class CommandeFournisseur extends CommonOrder
if (! $notrigger) if (! $notrigger)
{ {
global $conf, $langs, $user; global $conf, $langs, $user;
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('LINEORDER_SUPPLIER_CREATE',$user);
$interface=new Interfaces($this->db); if ($result < 0)
$result=$interface->run_triggers('LINEORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
if ($result < 0)
{ {
$error++;
$this->errors=$interface->errors;
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
// Fin appel triggers // End call triggers
} }
$this->update_price('','auto'); $this->update_price('','auto');
@ -1295,18 +1276,14 @@ class CommandeFournisseur extends CommonOrder
if (! $notrigger) if (! $notrigger)
{ {
global $conf, $langs, $user; global $conf, $langs, $user;
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('LINEORDER_SUPPLIER_DISPATCH',$user);
$interface=new Interfaces($this->db); if ($result < 0)
$result=$interface->run_triggers('LINEORDER_SUPPLIER_DISPATCH',$this,$user,$langs,$conf);
if ($result < 0)
{ {
$error++;
$this->errors=$interface->errors;
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
// Fin appel triggers // End call triggers
} }
$this->db->commit(); $this->db->commit();
@ -1369,15 +1346,10 @@ class CommandeFournisseur extends CommonOrder
if (! $notrigger) if (! $notrigger)
{ {
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('LINEORDER_SUPPLIER_DELETE',$user);
$result = 0; if ($result < 0) $error++;
$interface=new Interfaces($this->db); // End call triggers
$result = $interface->run_triggers('LINEORDER_SUPPLIER_DELETE',$this,$user,$langs,$conf);
if ($result < 0) {
$error++; $this->errors=$interface->errors;
}
// Fin appel triggers
} }
if (! $error) if (! $error)
@ -1424,6 +1396,16 @@ class CommandeFournisseur extends CommonOrder
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$error = 0; $error = 0;
// Call trigger
$result=$this->call_trigger('ORDER_SUPPLIER_DELETE',$user);
if ($result < 0)
{
dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
return -1;
}
// End call triggers
$this->db->begin(); $this->db->begin();
@ -1461,18 +1443,6 @@ class CommandeFournisseur extends CommonOrder
} }
} }
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_DELETE',$this,$user,$langs,$conf);
if ($result < 0) {
$error++; $this->errors=$interface->errors;
}
// Fin appel triggers
}
if (! $error) if (! $error)
{ {
// We remove directory // We remove directory
@ -1828,18 +1798,14 @@ class CommandeFournisseur extends CommonOrder
if (! $notrigger) if (! $notrigger)
{ {
global $conf, $langs, $user; global $conf, $langs, $user;
// Appel des triggers // Call trigger
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $result=$this->call_trigger('LINEORDER_SUPPLIER_UPDATE',$user);
$interface=new Interfaces($this->db); if ($result < 0)
$result=$interface->run_triggers('LINEORDER_SUPPLIER_UPDATE',$this,$user,$langs,$conf);
if ($result < 0)
{ {
$error++;
$this->errors=$interface->errors;
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
// Fin appel triggers // End call triggers
} }
// Mise a jour info denormalisees au niveau facture // Mise a jour info denormalisees au niveau facture