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