Merge pull request #6299 from bgenere/FIX-c6bd1a7-on-Task-delete

FIX can not delete a task if time spent on it
This commit is contained in:
Laurent Destailleur 2017-01-18 15:52:46 +01:00 committed by GitHub
commit 9be75ed019
2 changed files with 35 additions and 1 deletions

View File

@ -534,6 +534,40 @@ class Task extends CommonObject
return -1;
}
}
/**
* Return nb of time spent
*
* @return int <0 if KO, 0 if no children, >0 if OK
*/
function hasTimeSpent()
{
$error=0;
$ret=0;
$sql = "SELECT COUNT(*) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task_time";
$sql.= " WHERE fk_task=".$this->id;
dol_syslog(get_class($this)."::hasTimeSpent", LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
else
{
$obj=$this->db->fetch_object($resql);
if ($obj) $ret=$obj->nb;
$this->db->free($resql);
}
if (! $error)
{
return $ret;
}
else
{
return -1;
}
}
/**

View File

@ -551,7 +551,7 @@ if ($id > 0 || ! empty($ref))
}
// Delete
if ($user->rights->projet->supprimer && ! $object->hasChildren())
if ($user->rights->projet->supprimer && ! $object->hasChildren() && ! $object->hasTimeSpent())
{
print '<a class="butActionDelete" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=delete&amp;withproject='.$withproject.'">'.$langs->trans('Delete').'</a>';
}