Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2022-05-11 10:05:35 +02:00
commit 9e2665fc66
2 changed files with 25 additions and 34 deletions

View File

@ -2238,8 +2238,11 @@ abstract class CommonObject
* @param int $projectid Project id to link element to
* @return int <0 if KO, >0 if OK
*/
public function setProject($projectid)
public function setProject($projectid, $notrigger = 0)
{
global $user;
$error = 0;
if (!$this->table_element) {
dol_syslog(get_class($this)."::setProject was called on objet with property table_element not defined", LOG_ERR);
return -1;
@ -2270,13 +2273,33 @@ abstract class CommonObject
$sql .= " WHERE rowid = ".((int) $this->id);
}
$this->db->begin();
dol_syslog(get_class($this)."::setProject", LOG_DEBUG);
if ($this->db->query($sql)) {
$this->fk_project = ((int) $projectid);
return 1;
} else {
dol_print_error($this->db);
$error++;
}
// Triggers
if (!$error && !$notrigger) {
// Call triggers
$result = $this->call_trigger(strtoupper($this->element) . '_MODIFY', $user);
if ($result < 0) {
$error++;
} //Do also here what you must do to rollback action if trigger fail
// End call triggers
}
// Commit or rollback
if ($error) {
$this->db->rollback();
return -1;
} else {
$this->db->commit();
return 1;
}
}

View File

@ -2013,38 +2013,6 @@ class Ticket extends CommonObject
}
}
/**
* Link element with a project
* Override core function because of key name 'fk_project' used for this module
*
* @param int $projectid Project id to link element to
* @return int <0 if KO, >0 if OK
*/
public function setProject($projectid)
{
if (!$this->table_element) {
dol_syslog(get_class($this)."::setProject was called on objet with property table_element not defined", LOG_ERR);
return -1;
}
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
if ($projectid) {
$sql .= ' SET fk_project = '.((int) $projectid);
} else {
$sql .= ' SET fk_project = NULL';
}
$sql .= ' WHERE rowid = '.((int) $this->id);
dol_syslog(get_class($this)."::setProject sql=".$sql);
if ($this->db->query($sql)) {
$this->fk_project = ((int) $projectid);
return 1;
} else {
dol_print_error($this->db);
return -1;
}
}
/**
* Link element with a contract
*