Fixes for bug 1449, 1450 and 1451 #1654

This commit is contained in:
Laurent Destailleur 2014-06-14 12:30:48 +02:00
commit cf948065f4
3 changed files with 107 additions and 28 deletions

View File

@ -12,6 +12,9 @@ Fix: [ bug #1443 ] Payment conditions is erased after editing supplier invoice l
Fix: Filter on status was not visible when selected from url.
Fix: Filtering on status was last when asking to sort.
Fix: [ bug #1432 ] Trigger SHIPPING_CREATE ignores interception on error
Fix: [ bug #1449 ] Trigger ORDER_CREATE, LINEORDER_DELETE, LINEORDER_UPDATE and LINEORDER_INSERT ignore interception on error
Fix: [ bug #1450 ] Several Customer order's triggers do not report the error from the trigger handler
Fix: [ bug #1451 ] Interrupted order clone through trigger, loads nonexistent order
***** ChangeLog for 3.5.3 compared to 3.5.2 *****
Fix: Error on field accountancy code for export profile of invoices.

View File

@ -452,8 +452,13 @@ class Commande extends CommonOrder
}
else
{
$this->db->rollback();
return -1;
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::set_reopen ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
}
@ -579,8 +584,14 @@ class Commande extends CommonOrder
else
{
$this->error=$mouvP->error;
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::cancel ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1;
return -1*$error;
}
}
else
@ -795,8 +806,19 @@ class Commande extends CommonOrder
// Fin appel triggers
}
$this->db->commit();
return $this->id;
if (!$error) {
$this->db->commit();
return $this->id;
}
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{
@ -1770,7 +1792,7 @@ class Commande extends CommonOrder
else
{
$this->db->rollback();
$this->error=$this->db->lasterror();
$this->error=$line->error;
return -1;
}
}
@ -2204,9 +2226,14 @@ class Commande extends CommonOrder
else
{
$this->error=$this->db->error();
dol_syslog(get_class($this)."::classifyBilled ".$this->error, LOG_ERR);
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::classifyBilled ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -2;
return -1*$error;
}
}
else
@ -2372,11 +2399,10 @@ class Commande extends CommonOrder
}
else
{
$this->error=$this->db->lasterror();
$this->errors=array($this->db->lasterror());
$this->db->rollback();
dol_syslog(get_class($this)."::updateline Error=".$this->error, LOG_ERR);
return -1;
$this->error=$this->line->error;
$this->db->rollback();
return -1;
}
}
else
@ -2494,9 +2520,13 @@ class Commande extends CommonOrder
else
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
$this->db->rollback();
return -1;
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
}
@ -3129,6 +3159,8 @@ class OrderLine extends CommonOrderLine
$error=0;
$this->db->begin();
$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commandedet WHERE rowid='".$this->rowid."';";
dol_syslog("OrderLine::delete sql=".$sql);
@ -3154,7 +3186,18 @@ class OrderLine extends CommonOrderLine
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
return 1;
if (!$error) {
$this->db->commit();
return 1;
}
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{
@ -3270,8 +3313,18 @@ class OrderLine extends CommonOrderLine
// Fin appel triggers
}
$this->db->commit();
return 1;
if (!$error) {
$this->db->commit();
return 1;
}
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{
@ -3378,8 +3431,18 @@ class OrderLine extends CommonOrderLine
// Fin appel triggers
}
$this->db->commit();
return 1;
if (!$error) {
$this->db->commit();
return 1;
}
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{

View File

@ -112,6 +112,9 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && $user->rights->commande->
{
if ($object->id > 0)
{
//Because createFromClone modifies the object, we must clone it so that we can restore it later
$orig = clone $object;
$result=$object->createFromClone($socid);
if ($result > 0)
{
@ -120,7 +123,8 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && $user->rights->commande->
}
else
{
$mesg='<div class="error">'.$object->error.'</div>';
setEventMessage($object->error, 'errors');
$object = $orig;
$action='';
}
}
@ -140,7 +144,7 @@ else if ($action == 'reopen' && $user->rights->commande->creer)
}
else
{
$mesg='<div class="error">'.$object->error.'</div>';
setEventMessage($object->error, 'errors');
}
}
}
@ -154,9 +158,8 @@ else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->comm
header('Location: index.php');
exit;
}
else
{
$mesg='<div class="error">'.$object->error.'</div>';
else {
setEventMessage($object->error, 'errors');
}
}
@ -187,7 +190,7 @@ else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->
}
else
{
$mesg='<div class="error">'.$object->error.'</div>';
setEventMessage($object->error, 'errors');
}
}
@ -445,6 +448,10 @@ else if ($action == 'add' && $user->rights->commande->creer)
else if ($action == 'classifybilled' && $user->rights->commande->creer)
{
$ret=$object->classifyBilled();
if ($ret < 0) {
setEventMessage($object->error, 'errors');
}
}
// Positionne ref commande client
@ -1076,7 +1083,9 @@ else if ($action == 'confirm_modif' && $user->rights->commande->creer)
else if ($action == 'confirm_shipped' && $confirm == 'yes' && $user->rights->commande->cloturer)
{
$result = $object->cloture($user);
if ($result < 0) $mesgs=$object->errors;
if ($result < 0) {
setEventMessage($object->error, 'errors');
}
}
else if ($action == 'confirm_cancel' && $confirm == 'yes' && $user->rights->commande->valider)
@ -1097,6 +1106,10 @@ else if ($action == 'confirm_cancel' && $confirm == 'yes' && $user->rights->comm
if (! $error)
{
$result = $object->cancel($idwarehouse);
if ($result < 0) {
setEventMessage($object->error, 'errors');
}
}
}