diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index ec449f009c7..41ae40a259d 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -479,48 +479,71 @@ class Project extends CommonObject } } - $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 . ")"; - - dol_syslog(get_class($this) . "::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if (!$resql) + // Delete tasks + if (! $error) { - $this->errors[] = $this->db->lasterror(); - $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++; + } } - $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task"; - $sql.= " WHERE fk_projet=" . $this->id; - - dol_syslog(get_class($this) . "::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if (!$resql) + if (! $error) { - $this->errors[] = $this->db->lasterror(); - $error++; + $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 . ")"; + + $resql = $this->db->query($sql); + if (!$resql) + { + $this->errors[] = $this->db->lasterror(); + $error++; + } } - $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet"; - $sql.= " WHERE rowid=" . $this->id; - - dol_syslog(get_class($this) . "::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if (!$resql) + if (! $error) { - $this->errors[] = $this->db->lasterror(); - $error++; + $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task"; + $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"; - $sql.= " WHERE fk_object=" . $this->id; - - dol_syslog(get_class($this) . "::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if (! $resql) + // Delete project + if (! $error) { - $this->errors[] = $this->db->lasterror(); - $error++; + $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet"; + $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)) diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php index 5acdbbadddf..40773879757 100644 --- a/htdocs/projet/class/task.class.php +++ b/htdocs/projet/class/task.class.php @@ -342,7 +342,7 @@ class Task extends CommonObject /** - * Delete object in database + * Delete task from database * * @param User $user User that delete * @param int $notrigger 0=launch triggers after, 1=disable triggers @@ -379,15 +379,32 @@ class Task extends CommonObject } } - // Delete rang of line - //$this->delRangOfLine($this->id, $this->element); + if (! $error) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task_time"; + $sql.= " WHERE fk_task=".$this->id; - $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(); } + } - dol_syslog(get_class($this)."::delete", LOG_DEBUG); - $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.= " WHERE rowid=".$this->id; + + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + } if (! $error) { @@ -412,7 +429,7 @@ class Task extends CommonObject return -1*$error; } else - { + { //Delete associated link file if ($conf->projet->dir_output) {