diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index fd9f65eab6b..ec41cba5948 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -2552,7 +2552,7 @@ class Form * \param prefix prefix * \param iSecond Nombre de secondes */ - function select_duree($prefix,$iSecond='') + function select_duree($prefix,$iSecond='',$default=1,$disabled=0) { if ($iSecond) { @@ -2562,11 +2562,11 @@ class Form $minSelected = ConvertSecondToTime($iSecond,'min'); } - print ''; + print ''; for ($hour = 0; $hour < 24; $hour++) { print '"; print "H "; - print ''; + print ''; for ($min = 0; $min <= 55; $min=$min+5) { print 'label; print "\n"; - $heure = intval($lines[$i]->duration); - $minutes = round((($lines[$i]->duration - $heure) * 60),0); - $minutes = substr("00"."$minutes", -2); - print ''.$heure." h ".$minutes."\n"; + // Time spent + print ''; + if ($lines[$i]->duration) print ConvertSecondToTime($lines[$i]->duration,'all'); + else print '--:--'; + print "\n"; $disabled=1; //print "x".$lines[$i]->projectid; @@ -272,7 +272,8 @@ function PLinesb(&$inc, $parent, $lines, &$level, &$projectsrole) print ''; print $form->select_date('',$lines[$i]->id,'','','',"addtime"); - print ' '; + print ' '; + print $form->select_duree($lines[$i]->id,'',0,$disabled); print ' '; if ((! $lines[$i]->public) && $disabled) print '('.$langs->trans("YouAreNotContactOfProject").')'; print ''; @@ -401,13 +402,12 @@ function PLines(&$inc, $parent, &$lines, &$level, $var, $showproject, &$taskrole else print ''; print "\n"; - $heure = intval($lines[$i]->duration); - $minutes = round((($lines[$i]->duration - $heure) * 60),0); - $minutes = substr("00"."$minutes", -2); + // Time spent print ''; if ($showlineingray) print ''; else print ''; - print $heure." h ".$minutes; + if ($lines[$i]->duration) print ConvertSecondToTime($lines[$i]->duration,'all'); + else print '--:--'; if ($showlineingray) print ''; else print ''; print ''; diff --git a/htdocs/projet/activity/list.php b/htdocs/projet/activity/list.php index b8225b7c251..d0d8f8980b0 100644 --- a/htdocs/projet/activity/list.php +++ b/htdocs/projet/activity/list.php @@ -29,6 +29,9 @@ require ("../../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/projet/project.class.php"); require_once(DOL_DOCUMENT_ROOT."/projet/tasks/task.class.php"); require_once(DOL_DOCUMENT_ROOT."/lib/project.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php"); + +$langs->load('projects'); $mode=$_REQUEST["mode"]; @@ -62,20 +65,23 @@ if ($_POST["action"] == 'createtask' && $user->rights->projet->creer) if ($_POST["action"] == 'addtime' && $user->rights->projet->creer) { + // TODO probleme si que des minutes foreach ($_POST as $key => $time) { - if (substr($key,0,4) == 'task') + if (substr($key,-4) == 'hour') { - if ($time > 0) + if ($time > 0) { - $id = str_replace("task","",$key); + $id = str_replace("hour","",$key); $task = new Task($db); $task->fetch($id); - $task->timespent_duration = $time; + $task->timespent_fk_user = $user->id; + $task->timespent_duration = $_POST[$id."hour"]*60*60; // We store duration in seconds + $task->timespent_duration+= $_POST[$id."min"]*60; // We store duration in seconds $task->timespent_date = dol_mktime(12,0,0,$_POST["$id"."month"],$_POST["$id"."day"],$_POST["$id"."year"]); - + $task->addTimeSpent($user); } else diff --git a/htdocs/projet/tasks/index.php b/htdocs/projet/tasks/index.php index 1de86ba0385..89930997601 100644 --- a/htdocs/projet/tasks/index.php +++ b/htdocs/projet/tasks/index.php @@ -29,6 +29,7 @@ require ("../../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/projet/project.class.php"); require_once(DOL_DOCUMENT_ROOT."/projet/tasks/task.class.php"); require_once(DOL_DOCUMENT_ROOT."/lib/project.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php"); $langs->load('projects'); diff --git a/htdocs/projet/tasks/task.class.php b/htdocs/projet/tasks/task.class.php index f6d038c5af7..bf2db78307b 100644 --- a/htdocs/projet/tasks/task.class.php +++ b/htdocs/projet/tasks/task.class.php @@ -741,7 +741,7 @@ class Task extends CommonObject else { $this->error=$this->db->lasterror(); - dol_syslog(get_class($this)."::addTimeSpent error -1 ".$this->error,LOG_ERR); + dol_syslog(get_class($this)."::updateTimeSpent error -1 ".$this->error,LOG_ERR); $ret = -1; } /* diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index 7e80f109a6d..899b2c74ae2 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -31,6 +31,8 @@ require_once(DOL_DOCUMENT_ROOT."/projet/tasks/task.class.php"); require_once(DOL_DOCUMENT_ROOT."/lib/project.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php"); +$langs->load('projects'); + if (!$user->rights->projet->lire) accessforbidden(); /*