Skip to content

Commit

Permalink
Refactor: ORDER_* and LINEORDER_* trigger
Browse files Browse the repository at this point in the history
  • Loading branch information
KreizIT committed Jul 11, 2014
1 parent 5e75dd2 commit 8e64ea2
Showing 1 changed file with 59 additions and 81 deletions.
140 changes: 59 additions & 81 deletions htdocs/commande/class/commande.class.php
Expand Up @@ -238,6 +238,7 @@ function valid($user, $idwarehouse=0)
if (! $resql)
{
dol_print_error($this->db);
$this->error=$this->db->lasterror();
$error++;
}

Expand All @@ -259,8 +260,13 @@ function valid($user, $idwarehouse=0)
$mouvP->origin = &$this;
// We decrement stock of product (and sub-products)
$result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("OrderValidatedInDolibarr",$num));
if ($result < 0) { $error++; }
if ($result < 0)
{
$error++;
$this->error=$mouvP->error;
}
}
if ($error) break;
}
}
}
Expand Down Expand Up @@ -296,12 +302,10 @@ function valid($user, $idwarehouse=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_VALIDATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_VALIDATE',$user);
if ($result < 0) $error++;
// End call triggers
}

// Set new ref and current status
Expand All @@ -319,7 +323,6 @@ function valid($user, $idwarehouse=0)
else
{
$this->db->rollback();
$this->error=$this->db->lasterror();
return -1;
}
}
Expand Down Expand Up @@ -430,12 +433,10 @@ function set_reopen($user)
$resql = $this->db->query($sql);
if ($resql)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_REOPEN',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_REOPEN',$user);
if ($result < 0) $error++;
// End call triggers
}
else
{
Expand Down Expand Up @@ -491,13 +492,11 @@ function cloture($user)

if ($this->db->query($sql))
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_CLOSE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers

// Call trigger
$result=$this->call_trigger('ORDER_CLOSE',$user);
if ($result < 0) $error++;
// End call triggers

if (! $error)
{
$this->statut=3;
Expand Down Expand Up @@ -558,23 +557,22 @@ function cancel($idwarehouse=-1)
$mouvP = new MouvementStock($this->db);
// We increment stock of product (and sub-products)
$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("OrderCanceledInDolibarr",$this->ref));
if ($result < 0) {
if ($result < 0)
{
$error++;
$this->error=$mouvP->error;
break;
}
}
}
}

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_CANCEL',$this,$user,$langs,$conf);
if ($result < 0) {
$error++; $this->errors=$interface->errors;
}
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_CANCEL',$user);
if ($result < 0) $error++;
// End call triggers
}

if (! $error)
Expand All @@ -585,8 +583,6 @@ function cancel($idwarehouse=-1)
}
else
{
$this->error=$mouvP->error;

foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::cancel ".$errmsg, LOG_ERR);
Expand Down Expand Up @@ -812,12 +808,10 @@ function create($user, $notrigger=0)

if (! $notrigger)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_CREATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_CREATE',$user);
if ($result < 0) $error++;
// End call triggers
}

if (!$error) {
Expand Down Expand Up @@ -909,12 +903,10 @@ function createFromClone($socid=0)
if ($reshook < 0) $error++;
}

// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_CLONE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_CLONE',$user);
if ($result < 0) $error++;
// End call triggers
}

// End
Expand Down Expand Up @@ -2228,14 +2220,10 @@ function classifyBilled()
dol_syslog(get_class($this)."::classifyBilled", LOG_DEBUG);
if ($this->db->query($sql))
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_CLASSIFY_BILLED',$this,$user,$langs,$conf);
if ($result < 0) {
$error++; $this->errors=$interface->errors;
}
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_CLASSIFY_BILLED',$user);
if ($result < 0) $error++;
// End call triggers

if (! $error)
{
Expand All @@ -2247,8 +2235,6 @@ function classifyBilled()
}
else
{
$this->error=$this->db->error();

foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::classifyBilled ".$errmsg, LOG_ERR);
Expand Down Expand Up @@ -2453,16 +2439,13 @@ function delete($user, $notrigger=0)

if (! $error && ! $notrigger)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_DELETE',$this,$user,$langs,$conf);
if ($result < 0) {
$error++; $this->errors=$interface->errors;
}
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('ORDER_DELETE',$user);
if ($result < 0) $error++;
// End call triggers
}

//TODO: Check for error after each action. If one failed we rollback, don't waste time to do action if previous fail
if (! $error)
{
// Delete order details
Expand All @@ -2471,6 +2454,7 @@ function delete($user, $notrigger=0)
if (! $this->db->query($sql) )
{
$error++;
$this->errors[]=$this->db->lasterror();
}

// Delete order
Expand All @@ -2479,6 +2463,7 @@ function delete($user, $notrigger=0)
if (! $this->db->query($sql) )
{
$error++;
$this->errors[]=$this->db->lasterror();
}

// Delete linked object
Expand Down Expand Up @@ -2538,7 +2523,6 @@ function delete($user, $notrigger=0)
}
else
{
$this->error=$this->db->lasterror();
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
Expand Down Expand Up @@ -3197,12 +3181,10 @@ function delete()
}
}

// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('LINEORDER_DELETE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('LINEORDER_DELETE',$user);
if ($result < 0) $error++;
// End call triggers

if (!$error) {
$this->db->commit();
Expand Down Expand Up @@ -3322,12 +3304,10 @@ function insert($notrigger=0)

if (! $notrigger)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('LINEORDER_INSERT',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('LINEORDER_INSERT',$user);
if ($result < 0) $error++;
// End call triggers
}

if (!$error) {
Expand Down Expand Up @@ -3439,12 +3419,10 @@ function update($notrigger=0)

if (! $notrigger)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result = $interface->run_triggers('LINEORDER_UPDATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('LINEORDER_UPDATE',$user);
if ($result < 0) $error++;
// End call triggers
}

if (!$error) {
Expand Down

0 comments on commit 8e64ea2

Please sign in to comment.