Fixed: [ bug #1732 ] Tasks ressources and time consumption are not

deleted on project / task deletion
This commit is contained in:
Laurent Destailleur 2014-12-14 15:09:30 +01:00
parent fae1cd1d21
commit 2245361a2e
2 changed files with 81 additions and 41 deletions

View File

@ -479,48 +479,71 @@ class Project extends CommonObject
} }
} }
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task_extrafields"; // Delete tasks
$sql.= " WHERE fk_object IN (SELECT rowid FROM " . MAIN_DB_PREFIX . "projet_task WHERE fk_projet=" . $this->id . ")"; if (! $error)
dol_syslog(get_class($this) . "::delete", LOG_DEBUG);
$resql = $this->db->query($sql);
if (!$resql)
{ {
$this->errors[] = $this->db->lasterror(); $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task_time";
$error++; $sql.= " WHERE fk_task IN (SELECT rowid FROM " . MAIN_DB_PREFIX . "projet_task WHERE fk_projet=" . $this->id . ")";
$resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
} }
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task"; if (! $error)
$sql.= " WHERE fk_projet=" . $this->id;
dol_syslog(get_class($this) . "::delete", LOG_DEBUG);
$resql = $this->db->query($sql);
if (!$resql)
{ {
$this->errors[] = $this->db->lasterror(); $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task_extrafields";
$error++; $sql.= " WHERE fk_object IN (SELECT rowid FROM " . MAIN_DB_PREFIX . "projet_task WHERE fk_projet=" . $this->id . ")";
$resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
} }
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet"; if (! $error)
$sql.= " WHERE rowid=" . $this->id;
dol_syslog(get_class($this) . "::delete", LOG_DEBUG);
$resql = $this->db->query($sql);
if (!$resql)
{ {
$this->errors[] = $this->db->lasterror(); $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task";
$error++; $sql.= " WHERE fk_projet=" . $this->id;
$resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
} }
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_extrafields"; // Delete project
$sql.= " WHERE fk_object=" . $this->id; if (! $error)
dol_syslog(get_class($this) . "::delete", LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql)
{ {
$this->errors[] = $this->db->lasterror(); $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet";
$error++; $sql.= " WHERE rowid=" . $this->id;
$resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
}
if (! $error)
{
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_extrafields";
$sql.= " WHERE fk_object=" . $this->id;
$resql = $this->db->query($sql);
if (! $resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
} }
if (empty($error)) if (empty($error))

View File

@ -342,7 +342,7 @@ class Task extends CommonObject
/** /**
* Delete object in database * Delete task from database
* *
* @param User $user User that delete * @param User $user User that delete
* @param int $notrigger 0=launch triggers after, 1=disable triggers * @param int $notrigger 0=launch triggers after, 1=disable triggers
@ -379,15 +379,32 @@ class Task extends CommonObject
} }
} }
// Delete rang of line if (! $error)
//$this->delRangOfLine($this->id, $this->element); {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task_time";
$sql.= " WHERE fk_task=".$this->id;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task"; $resql = $this->db->query($sql);
$sql.= " WHERE rowid=".$this->id; if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
}
dol_syslog(get_class($this)."::delete", LOG_DEBUG); if (! $error)
$resql = $this->db->query($sql); {
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } $sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task_extrafields";
$sql.= " WHERE fk_object=".$this->id;
$resql = $this->db->query($sql);
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
}
if (! $error)
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task";
$sql.= " WHERE rowid=".$this->id;
$resql = $this->db->query($sql);
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
}
if (! $error) if (! $error)
{ {
@ -412,7 +429,7 @@ class Task extends CommonObject
return -1*$error; return -1*$error;
} }
else else
{ {
//Delete associated link file //Delete associated link file
if ($conf->projet->dir_output) if ($conf->projet->dir_output)
{ {