Fix extrafields were not saved when creating a supplier order
Fix removed hooks where we must use trigger
This commit is contained in:
parent
69eaa032bf
commit
f38bf5a7d2
@ -790,7 +790,7 @@ class Commande extends CommonOrder
|
|||||||
$this->lines[$i]->fk_fournprice,
|
$this->lines[$i]->fk_fournprice,
|
||||||
$this->lines[$i]->pa_ht,
|
$this->lines[$i]->pa_ht,
|
||||||
$this->lines[$i]->label,
|
$this->lines[$i]->label,
|
||||||
$this->lines[$i]->array_options
|
$this->lines[$i]->array_options
|
||||||
);
|
);
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
@ -862,28 +862,25 @@ class Commande extends CommonOrder
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$action='create';
|
//$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('orderdao'));
|
/*$hookmanager->initHooks(array('orderdao'));
|
||||||
$parameters=array('socid'=>$this->id);
|
$parameters=array('socid'=>$this->id);
|
||||||
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
||||||
{
|
{*/
|
||||||
$result=$this->insertExtraFields();
|
$result=$this->insertExtraFields();
|
||||||
if ($result < 0)
|
if ($result < 0) $error++;
|
||||||
{
|
/* }
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if ($reshook < 0) $error++;
|
else if ($reshook < 0) $error++;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $notrigger)
|
if (! $error && ! $notrigger)
|
||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('ORDER_CREATE',$user);
|
$result=$this->call_trigger('ORDER_CREATE',$user);
|
||||||
@ -891,29 +888,27 @@ class Commande extends CommonOrder
|
|||||||
// End call triggers
|
// End call triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (! $error)
|
||||||
|
{
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return $this->id;
|
return $this->id;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
foreach($this->errors as $errmsg)
|
{
|
||||||
{
|
$this->db->rollback();
|
||||||
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
return -1*$error;
|
||||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
}
|
||||||
}
|
|
||||||
$this->db->rollback();
|
|
||||||
return -1*$error;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
$this->error=$this->db->lasterror();
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dol_print_error($this->db);
|
dol_print_error($this->db);
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@ -1066,6 +1066,12 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$result=$this->insertExtraFields();
|
||||||
|
if ($result < 0) $error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (! $error && ! $notrigger)
|
if (! $error && ! $notrigger)
|
||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
|
|||||||
@ -918,22 +918,20 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
|
|
||||||
$object_id = $object->create($user);
|
$object_id = $object->create($user);
|
||||||
|
|
||||||
if ($object_id > 0)
|
if ($object_id > 0)
|
||||||
{
|
{
|
||||||
dol_include_once('/' . $element . '/class/' . $subelement . '.class.php');
|
dol_include_once('/' . $element . '/class/' . $subelement . '.class.php');
|
||||||
|
|
||||||
$classname = ucfirst($subelement);
|
$classname = ucfirst($subelement);
|
||||||
$srcobject = new $classname($db);
|
$srcobject = new $classname($db);
|
||||||
$srcobject->fetch($object->origin_id);
|
|
||||||
|
|
||||||
$object->set_date_livraison($user, $srcobject->date_livraison);
|
|
||||||
$object->set_id_projet($user, $srcobject->fk_project);
|
|
||||||
|
|
||||||
dol_syslog("Try to find source object origin=" . $object->origin . " originid=" . $object->origin_id . " to add lines");
|
dol_syslog("Try to find source object origin=" . $object->origin . " originid=" . $object->origin_id . " to add lines");
|
||||||
$result = $srcobject->fetch($object->origin_id);
|
$result = $srcobject->fetch($object->origin_id);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
|
$object->set_date_livraison($user, $srcobject->date_livraison);
|
||||||
|
$object->set_id_projet($user, $srcobject->fk_project);
|
||||||
|
|
||||||
$lines = $srcobject->lines;
|
$lines = $srcobject->lines;
|
||||||
if (empty($lines) && method_exists($srcobject, 'fetch_lines'))
|
if (empty($lines) && method_exists($srcobject, 'fetch_lines'))
|
||||||
{
|
{
|
||||||
@ -1010,11 +1008,11 @@ if (empty($reshook))
|
|||||||
if ($reshook < 0)
|
if ($reshook < 0)
|
||||||
$error ++;
|
$error ++;
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($srcobject->error, 'errors');
|
setEventMessages($srcobject->error, $srcobject->errors, 'errors');
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1024,7 +1022,7 @@ if (empty($reshook))
|
|||||||
if ($id < 0)
|
if ($id < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($langs->trans($object->error), 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user