Fix: [ bug #1505, #1504] Project trigger problem

This commit is contained in:
KreizIT 2014-07-03 17:15:42 +02:00
parent 023e7ce8ce
commit e0201535e2
7 changed files with 89 additions and 82 deletions

View File

@ -17,6 +17,7 @@ For users:
- Fix: [ bug #1496 ] ACTION_DELETE trigger does not show trigger error
- Fix: [ bug #1494 ] CATEGORY_CREATE and CATEGORY_MODIFY triggers do not intercept trigger action
- Fix: [ bug #1502 ] DON_CREATE trigger does not intercept trigger action
- Fix: [ bug #1505, #1504] Project trigger problem
For translators:

View File

@ -130,15 +130,9 @@ class Project extends CommonObject
if (!$notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface = new Interfaces($this->db);
$result = $interface->run_triggers('PROJECT_CREATE', $this, $user, $langs, $conf);
if ($result < 0)
{
$error++;
$this->errors = $interface->errors;
}
// Call trigger
$result=$this->call_trigger('PROJECT_CREATE',$user);
if ($result < 0) { $error++; }
// End call triggers
}
}
@ -199,6 +193,8 @@ class Project extends CommonObject
if (dol_strlen(trim($this->ref)) > 0)
{
$this->db->begin();
$sql = "UPDATE " . MAIN_DB_PREFIX . "projet SET";
$sql.= " ref='" . $this->db->escape($this->ref) . "'";
$sql.= ", title = '" . $this->db->escape($this->title) . "'";
@ -216,15 +212,9 @@ class Project extends CommonObject
{
if (!$notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface = new Interfaces($this->db);
$result = $interface->run_triggers('PROJECT_MODIFY', $this, $user, $langs, $conf);
if ($result < 0)
{
$error++;
$this->errors = $interface->errors;
}
// Call trigger
$result=$this->call_trigger('PROJECT_MODIFY',$user);
if ($result < 0) { $error++; }
// End call triggers
}
@ -259,13 +249,24 @@ class Project extends CommonObject
}
}
}
if (! $error )
{
$this->db->commit();
$result = 1;
}
else
{
$this->db->rollback();
$result = -1;
}
$result = 1;
}
else
{
$this->error = $this->db->lasterror();
dol_syslog(get_class($this)."::Update error -2 " . $this->error, LOG_ERR);
$this->db->rollback();
$result = -2;
}
}
@ -528,17 +529,18 @@ class Project extends CommonObject
if (!$notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface = new Interfaces($this->db);
$result = $interface->run_triggers('PROJECT_DELETE', $this, $user, $langs, $conf);
// Call trigger
$result=$this->call_trigger('PROJECT_DELETE',$user);
if ($result < 0)
{
$error++;
foreach ($interface->errors as $errmsg ) {
dol_syslog(get_class($this) . "::delete " . $errmsg, LOG_ERR);
$this->errors[] =$errmsg;
}
if (! empty($interface->errors))
{
foreach ($interface->errors as $errmsg ) {
dol_syslog(get_class($this) . "::delete " . $errmsg, LOG_ERR);
$this->errors[] =$errmsg;
}
}
}
// End call triggers
}
@ -587,16 +589,10 @@ class Project extends CommonObject
$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('PROJECT_VALIDATE', $this, $user, $langs, $conf);
if ($result < 0)
{
$error++;
$this->errors = $interface->errors;
}
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('PROJECT_VALIDATE',$user);
if ($result < 0) { $error++; }
// End call triggers
if (!$error)
{
@ -648,16 +644,10 @@ class Project extends CommonObject
$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('PROJECT_CLOSE', $this, $user, $langs, $conf);
if ($result < 0)
{
$error++;
$this->errors = $interface->errors;
}
// Fin appel triggers
// Call trigger
$result=$this->call_trigger('PROJECT_CLOSE',$user);
if ($result < 0) { $error++; }
// End call triggers
if (!$error)
{

View File

@ -133,11 +133,9 @@ class Task extends CommonObject
if (! $notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('TASK_CREATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Call trigger
$result=$this->call_trigger('TASK_CREATE',$user);
if ($result < 0) { $error++; }
// End call triggers
}
}
@ -303,11 +301,9 @@ class Task extends CommonObject
{
if (! $notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('TASK_MODIFY',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Call trigger
$result=$this->call_trigger('TASK_MODIFY',$user);
if ($result < 0) { $error++; }
// End call triggers
}
}
@ -394,11 +390,9 @@ class Task extends CommonObject
{
if (! $notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('TASK_DELETE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Call trigger
$result=$this->call_trigger('TASK_DELETE',$user);
if ($result < 0) { $error++; }
// End call triggers
}
}
@ -744,11 +738,12 @@ class Task extends CommonObject
{
global $conf,$langs;
$error=0;
$ret = 0;
// Clean parameters
if (isset($this->timespent_note)) $this->timespent_note = trim($this->timespent_note);
$this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."projet_task_time (";
$sql.= "fk_task";
@ -772,11 +767,9 @@ class Task extends CommonObject
if (! $notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('TASK_TIMESPENT_CREATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Call trigger
$result=$this->call_trigger('TASK_TIMESPENT_CREATE',$user);
if ($result < 0) { $this->db->rollback(); $ret=-1; }
// End call triggers
}
}
@ -784,6 +777,7 @@ class Task extends CommonObject
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::addTimeSpent error -1 ".$this->error,LOG_ERR);
$this->db->rollback();
$ret = -1;
}
@ -798,6 +792,7 @@ class Task extends CommonObject
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::addTimeSpent error -2 ".$this->error, LOG_ERR);
$this->db->rollback();
$ret = -2;
}
}
@ -813,10 +808,12 @@ class Task extends CommonObject
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::addTimeSpent error -2 ".$this->error, LOG_ERR);
$this->db->rollback();
$ret = -2;
}
}
if ($ret >=0) $this->db->commit();
return $ret;
}
@ -879,11 +876,12 @@ class Task extends CommonObject
{
global $conf,$langs;
$error=0;
$ret = 0;
// Clean parameters
if (isset($this->timespent_note)) $this->timespent_note = trim($this->timespent_note);
$this->db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX."projet_task_time SET";
$sql.= " task_date = '".$this->db->idate($this->timespent_date)."',";
@ -897,19 +895,23 @@ class Task extends CommonObject
{
if (! $notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('TASK_TIMESPENT_MODIFY',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Call trigger
$result=$this->call_trigger('TASK_TIMESPENT_MODIFY',$user);
if ($result < 0)
{
$this->db->rollback();
$ret = -1;
}
else $ret = 1;
// End call triggers
}
$ret = 1;
else $ret = 1;
}
else
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::updateTimeSpent error -1 ".$this->error,LOG_ERR);
$this->db->rollback();
$ret = -1;
}
@ -925,11 +927,13 @@ class Task extends CommonObject
if (! $this->db->query($sql) )
{
$this->error=$this->db->lasterror();
$this->db->rollback();
dol_syslog(get_class($this)."::addTimeSpent error -2 ".$this->error, LOG_ERR);
$ret = -2;
}
}
if ($ret >= 0) $this->db->commit();
return $ret;
}
@ -959,11 +963,9 @@ class Task extends CommonObject
{
if (! $notrigger)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('TASK_TIMESPENT_DELETE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Call trigger
$result=$this->call_trigger('TASK_TIMESPENT_DELETE',$user);
if ($result < 0) { $error++; }
// End call triggers
}
}

View File

@ -340,7 +340,8 @@ if (empty($reshook))
else
{
dol_syslog($object->error,LOG_DEBUG);
$mesg='<div class="error">'.$langs->trans("CantRemoveProject").'</div>';
setEventMessage($object->error,'errors');
setEventMessage($object->errors,'errors');
}
}

View File

@ -130,6 +130,11 @@ if ($action == 'createtask' && $user->rights->projet->creer)
if ($taskid > 0)
{
$result = $task->add_contact($_POST["userid"], 'TASKEXECUTIVE', 'internal');
}
else
{
setEventMessage($task->error,'errors');
setEventMessage($task->errors,'errors');
}
}
@ -193,6 +198,8 @@ if ($id > 0 || ! empty($ref))
$head=project_prepare_head($object);
dol_fiche_head($head, $tab, $langs->trans("Project"),0,($object->public?'projectpub':'project'));
dol_htmloutput_mesg();
$param=($mode=='mine'?'&mode=mine':'');

View File

@ -91,6 +91,12 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->projet->creer)
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
$result=$object->update($user);
if ($result < 0)
{
setEventMessage($object->error,'errors');
setEventMessage($object->errors,'errors');
}
}
else
{

View File

@ -140,7 +140,7 @@ if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->projet->c
$object->fetchTimeSpent($_GET['lineid']);
$result = $object->delTimeSpent($user);
if (!$result)
if ($result < 0)
{
$langs->load("errors");
setEventMessage($langs->trans($object->error),'errors');