Better code quality for [ task #531 ] Add a duration on tasks

This commit is contained in:
fhenry 2013-05-15 14:19:16 +02:00
parent b280bff809
commit be525ad0e8
8 changed files with 56 additions and 55 deletions

View File

@ -3518,10 +3518,13 @@ class Form
* @param string $prefix prefix * @param string $prefix prefix
* @param int $iSecond Default preselected duration (number of seconds) * @param int $iSecond Default preselected duration (number of seconds)
* @param int $disabled Disable the combo box * @param int $disabled Disable the combo box
* @param string $typehour if select then hour in select if text input in text
* @return void * @return void
*/ */
function select_duration($prefix,$iSecond='',$disabled=0) function select_duration($prefix,$iSecond='',$disabled=0,$typehour='select')
{ {
global $langs;
if ($iSecond) if ($iSecond)
{ {
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
@ -3529,19 +3532,27 @@ class Form
$hourSelected = convertSecondToTime($iSecond,'hour'); $hourSelected = convertSecondToTime($iSecond,'hour');
$minSelected = convertSecondToTime($iSecond,'min'); $minSelected = convertSecondToTime($iSecond,'min');
} }
print '<select class="flat" name="'.$prefix.'hour"'.($disabled?' disabled="disabled"':'').'>'; if ($typehour=='select')
for ($hour = 0; $hour < 24; $hour++)
{ {
print '<option value="'.$hour.'"'; print '<select class="flat" name="'.$prefix.'hour"'.($disabled?' disabled="disabled"':'').'>';
if ($hourSelected == $hour) for ($hour = 0; $hour < 24; $hour++)
{ {
print " selected=\"true\""; print '<option value="'.$hour.'"';
} if ($hourSelected == $hour)
print ">".$hour."</option>"; {
print " selected=\"true\"";
}
print ">".$hour."</option>";
}
print "</select>";
} }
print "</select>"; elseif ($typehour=='text')
print "H &nbsp;"; {
$fullhours=convertSecondToTime($iSecond,'fullhour');
print '<input type="text" size="3" name="'.$prefix.'hour" class="flat" value="'.$fullhours.'">';
}
print $langs->trans('Hours'). "&nbsp;";
print '<select class="flat" name="'.$prefix.'min"'.($disabled?' disabled="disabled"':'').'>'; print '<select class="flat" name="'.$prefix.'min"'.($disabled?' disabled="disabled"':'').'>';
for ($min = 0; $min <= 55; $min=$min+5) for ($min = 0; $min <= 55; $min=$min+5)
{ {
@ -3550,7 +3561,7 @@ class Form
print '>'.$min.'</option>'; print '>'.$min.'</option>';
} }
print "</select>"; print "</select>";
print "M&nbsp;"; print $langs->trans('Minutes'). "&nbsp;";
} }

View File

@ -287,6 +287,16 @@ function convertSecondToTime($iSecond,$format='all',$lengthOfDay=86400,$lengthOf
{ {
$sTime=dol_print_date($iSecond,'%H',true); $sTime=dol_print_date($iSecond,'%H',true);
} }
else if ($format == 'fullhour')
{
if (!empty($iSecond)) {
$iSecond=$iSecond/3600;
}
else {
$iSecond=0;
}
$sTime=$iSecond;
}
else if ($format == 'min') else if ($format == 'min')
{ {
$sTime=dol_print_date($iSecond,'%M',true); $sTime=dol_print_date($iSecond,'%M',true);

View File

@ -422,12 +422,8 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
// Planned Workload // Planned Workload
print '<td align="center">'; print '<td align="center">';
if (!empty($lines[$i]->planned_workload)) { if ($lines[$i]->planned_workload) print convertSecondToTime($lines[$i]->planned_workload,'all');
$planned_workload_hours = intval($lines[$i]->planned_workload / 3600); else print '--:--';
}else {
$planned_workload_hours = 0;
}
print $planned_workload_hours.' '.$langs->trans('Hours');
print '</td>'; print '</td>';
// Progress // Progress

View File

@ -164,6 +164,7 @@ $sql.= " ORDER BY u.rowid, t.dateo, t.datee";
$userstatic=new User($db); $userstatic=new User($db);
dol_syslog('projet:index.php: affectationpercent sql='.$sql,LOG_DEBUG);
$resql = $db->query($sql); $resql = $db->query($sql);
if ( $resql ) if ( $resql )
{ {
@ -192,7 +193,7 @@ if ( $resql )
} else { } else {
$percentcompletion = intval(($obj->task_duration*100)/$obj->planned_workload); $percentcompletion = intval(($obj->task_duration*100)/$obj->planned_workload);
} }
print '<td>'.$percentcompletion.' %</td>'; print '<td><a href="'.DOL_URL_ROOT.'/projet/tasks/time.php?id='.$obj->taskid.'&withproject=1">'.$percentcompletion.' %</a></td>';
print "</tr>\n"; print "</tr>\n";
$i++; $i++;

View File

@ -71,7 +71,7 @@ $hookmanager->initHooks(array('projecttaskcard'));
$progress=GETPOST('progress', 'int'); $progress=GETPOST('progress', 'int');
$label=GETPOST('label', 'alpha'); $label=GETPOST('label', 'alpha');
$description=GETPOST('description'); $description=GETPOST('description');
$planned_workload=GETPOST('planned_workload'); $planned_workload=GETPOST('planned_workloadhour');
$userAccess=0; $userAccess=0;
@ -294,14 +294,9 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->socie
print $form->select_date(($date_end?$date_end:-1),'datee',0,0,0,'',1,1); print $form->select_date(($date_end?$date_end:-1),'datee',0,0,0,'',1,1);
print '</td></tr>'; print '</td></tr>';
// Duration planned // planned workload
print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>'; print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>';
if (!empty($object->planned_workload)) { print $form->select_duration('planned_workload',$object->planned_workload,0,'text');
$planned_workload_hours = intval($object->planned_workload / 3600);
}else {
$planned_workload_hours = 0;
}
print '<input type="text" size="7" name="planned_workload" class="flat" value="'.$planned_workload.'"> '.$langs->trans('Hours');
print '</td></tr>'; print '</td></tr>';
// Progress // Progress
@ -403,7 +398,7 @@ else
print '<td>'.$langs->trans("LabelTask").'</td>'; print '<td>'.$langs->trans("LabelTask").'</td>';
print '<td align="center">'.$langs->trans("DateStart").'</td>'; print '<td align="center">'.$langs->trans("DateStart").'</td>';
print '<td align="center">'.$langs->trans("DateEnd").'</td>'; print '<td align="center">'.$langs->trans("DateEnd").'</td>';
print '<td align="right">'.$langs->trans("PlannedWorkload").'</td>'; print '<td align="center">'.$langs->trans("PlannedWorkload").'</td>';
print '<td align="right">'.$langs->trans("Progress").'</td>'; print '<td align="right">'.$langs->trans("Progress").'</td>';
print '<td align="right">'.$langs->trans("TimeSpent").'</td>'; print '<td align="right">'.$langs->trans("TimeSpent").'</td>';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';

View File

@ -109,7 +109,7 @@ print '<tr class="liste_titre">';
print '<td class="liste_titre">'; print '<td class="liste_titre">';
print '<input type="text" class="flat" name="search_project" value="'.$search_project.'" size="8">'; print '<input type="text" class="flat" name="search_project" value="'.$search_project.'" size="8">';
print '</td>'; print '</td>';
print '<td class="liste_titre" colspan="5">'; print '<td class="liste_titre" colspan="6">';
print '&nbsp;'; print '&nbsp;';
print '</td>'; print '</td>';
print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>'; print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>';

View File

@ -29,6 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$id=GETPOST('id','int'); $id=GETPOST('id','int');
$ref=GETPOST('ref','alpha'); $ref=GETPOST('ref','alpha');
@ -36,7 +37,7 @@ $action=GETPOST('action','alpha');
$confirm=GETPOST('confirm','alpha'); $confirm=GETPOST('confirm','alpha');
$withproject=GETPOST('withproject','int'); $withproject=GETPOST('withproject','int');
$project_ref=GETPOST('project_ref','alpha'); $project_ref=GETPOST('project_ref','alpha');
$planned_workload=GETPOST('planned_workload'); $planned_workload=GETPOST('planned_workloadhour');
// Security check // Security check
$socid=0; $socid=0;
@ -285,14 +286,9 @@ if ($id > 0 || ! empty($ref))
print $form->select_date($object->date_end?$object->date_end:-1,'datee'); print $form->select_date($object->date_end?$object->date_end:-1,'datee');
print '</td></tr>'; print '</td></tr>';
// Duration planned // workload planned
print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>'; print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>';
if (!empty($object->planned_workload)) { print $form->select_duration('planned_workload',$object->planned_workload,0,'text');
$planned_workload_hours = intval($object->planned_workload / 3600);
}else {
$planned_workload_hours = 0;
}
print '<input type="text" size="7" name="planned_workload" class="flat" value="'.$planned_workload_hours.'"> '.$langs->trans('Hours');
print '</td></tr>'; print '</td></tr>';
// Progress // Progress
@ -380,14 +376,9 @@ if ($id > 0 || ! empty($ref))
print dol_print_date($object->date_end,'day'); print dol_print_date($object->date_end,'day');
print '</td></tr>'; print '</td></tr>';
// Duration planned // planned Workload
print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td colspan="3">';
if (!empty($object->planned_workload)) { print convertSecondToTime($object->planned_workload,'all');
$planned_workload_hours = intval($object->planned_workload / 3600);
}else {
$planned_workload_hours = 0;
}
print $planned_workload_hours.' '.$langs->trans('Hours');
print '</td></tr>'; print '</td></tr>';
// Progress // Progress

View File

@ -56,7 +56,9 @@ if ($action == 'addtimespent' && $user->rights->projet->creer)
{ {
$error=0; $error=0;
if (empty($_POST["timespent_durationhour"]) && empty($_POST["timespent_durationmin"])) $timespent_durationhour = GETPOST('timespent_durationhour','int');
$timespent_durationmin = GETPOST('timespent_durationmin','int');
if (empty($timespent_durationhour) && empty($timespent_durationmin))
{ {
$mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Duration")).'</div>'; $mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Duration")).'</div>';
$error++; $error++;
@ -264,13 +266,8 @@ if ($id > 0 || ! empty($ref))
// Label // Label
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$object->label.'</td></tr>'; print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$object->label.'</td></tr>';
// Duration planned // planned workload
if (!empty($object->planned_workload)) { print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td colspan="3">'.convertSecondToTime($object->planned_workload,'all').'</td></tr>';
$planned_workload_hours = intval($object->planned_workload / 3600);
}else {
$planned_workload_hours = 0;
}
print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td colspan="3">'.$planned_workload_hours.' '.$langs->trans('Hours').'</td></tr>';
// Project // Project
if (empty($withproject)) if (empty($withproject))
@ -336,7 +333,7 @@ if ($id > 0 || ! empty($ref))
// Duration // Duration
print '<td class="nowrap" align="right">'; print '<td class="nowrap" align="right">';
print $form->select_duration('timespent_duration',($_POST['timespent_duration']?$_POST['timespent_duration']:'')); print $form->select_duration('timespent_duration',($_POST['timespent_duration']?$_POST['timespent_duration']:''),0,'text');
print '</td>'; print '</td>';
print '<td align="center">'; print '<td align="center">';
@ -443,7 +440,7 @@ if ($id > 0 || ! empty($ref))
if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid) if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid)
{ {
print '<input type="hidden" name="old_duration" value="'.$task_time->task_duration.'">'; print '<input type="hidden" name="old_duration" value="'.$task_time->task_duration.'">';
print $form->select_duration('new_duration',$task_time->task_duration); print $form->select_duration('new_duration',$task_time->task_duration,0,'text');
} }
else else
{ {