From 10e9f4372b012ef40dfe6095b9cee1f62ecadcb7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Mon, 19 Sep 2016 16:42:45 +0200 Subject: [PATCH] NEW Show total line (planned workload and time spent) on on list of tasks. --- htdocs/projet/tasks/list.php | 71 +++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 10 deletions(-) diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 47083e9032d..dd97f0a7a15 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -545,7 +545,15 @@ if ($resql) print '</tr>'; - $i = 0; + $plannedworkloadoutputformat='allhourmin'; + $timespentoutputformat='allhourmin'; + if (! empty($conf->global->PROJECT_PLANNED_WORKLOAD_FORMAT)) $plannedworkloadoutputformat=$conf->global->PROJECT_PLANNED_WORKLOAD_FORMAT; + if (! empty($conf->global->PROJECT_TIMES_SPENT_FORMAT)) $timespentoutputformat=$conf->global->PROJECT_TIME_SPENT_FORMAT; + + $now = dol_now(); + $i=0; + $var=true; + $totalarray=array(); while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); @@ -578,6 +586,7 @@ if ($resql) print $projectstatic->getNomUrl(1, 'task'); if ($projectstatic->hasDelay()) print img_warning("Late"); print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Title if (! empty($arrayfields['p.title']['checked'])) @@ -585,6 +594,7 @@ if ($resql) print '<td>'; print dol_trunc($obj->projecttitle,80); print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Company if (! empty($arrayfields['s.nom']['checked'])) @@ -601,6 +611,7 @@ if ($resql) print ' '; } print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Status if (! empty($arrayfields['p.fk_statut']['checked'])) @@ -608,6 +619,7 @@ if ($resql) print '<td>'; print $projectstatic->getLibStatut(1); print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Ref if (! empty($arrayfields['t.ref']['checked'])) @@ -616,6 +628,7 @@ if ($resql) print $taskstatic->getNomUrl(1,'withproject'); if ($taskstatic->hasDelay()) print img_warning("Late"); print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Label if (! empty($arrayfields['t.label']['checked'])) @@ -623,6 +636,7 @@ if ($resql) print '<td>'; print $taskstatic->label; print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Date start if (! empty($arrayfields['t.dateo']['checked'])) @@ -630,20 +644,17 @@ if ($resql) print '<td class="center">'; print dol_print_date($db->jdate($obj->date_start),'day'); print '</td>'; - } + if (! $i) $totalarray['nbfield']++; + } // Date end if (! empty($arrayfields['t.datee']['checked'])) { print '<td class="center">'; print dol_print_date($db->jdate($obj->date_end),'day'); print '</td>'; + if (! $i) $totalarray['nbfield']++; } - $plannedworkloadoutputformat='allhourmin'; - $timespentoutputformat='allhourmin'; - if (! empty($conf->global->PROJECT_PLANNED_WORKLOAD_FORMAT)) $plannedworkloadoutputformat=$conf->global->PROJECT_PLANNED_WORKLOAD_FORMAT; - if (! empty($conf->global->PROJECT_TIMES_SPENT_FORMAT)) $timespentoutputformat=$conf->global->PROJECT_TIME_SPENT_FORMAT; - // Planned workload if (! empty($arrayfields['t.planned_workload']['checked'])) { @@ -658,6 +669,9 @@ if ($resql) } //else print '--:--'; print '</td>'; + if (! $i) $totalarray['nbfield']++; + if (! $i) $totalarray['totalplannedworkloadfield']=$totalarray['nbfield']; + $totalarray['totalplannedworkload'] += $obj->planned_workload; } // Time spent if (! empty($arrayfields['t.duration_effective']['checked'])) @@ -671,6 +685,9 @@ if ($resql) if ($showlineingray) print '</i>'; else print '</a>'; print '</td>'; + if (! $i) $totalarray['nbfield']++; + if (! $i) $totalarray['totaldurationeffectivefield']=$totalarray['nbfield']; + $totalarray['totaldurationeffective'] += $obj->duration_effective; } // Calculated progress if (! empty($arrayfields['t.progress_calculated']['checked'])) @@ -682,6 +699,7 @@ if ($resql) else print $langs->trans('WorkloadNotDefined'); } print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Declared progress if (! empty($arrayfields['t.progress']['checked'])) @@ -692,6 +710,7 @@ if ($resql) print $obj->progress.' %'; } print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) @@ -707,6 +726,7 @@ if ($resql) $tmpkey='options_'.$key; print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1); print '</td>'; + if (! $i) $totalarray['nbfield']++; } } } @@ -720,6 +740,7 @@ if ($resql) print '<td align="center">'; print dol_print_date($db->jdate($obj->date_creation), 'dayhour'); print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Date modification if (! empty($arrayfields['t.tms']['checked'])) @@ -727,6 +748,7 @@ if ($resql) print '<td align="center">'; print dol_print_date($db->jdate($obj->date_update), 'dayhour'); print '</td>'; + if (! $i) $totalarray['nbfield']++; } // Status /*if (! empty($arrayfields['p.fk_statut']['checked'])) @@ -734,9 +756,17 @@ if ($resql) $projectstatic->statut = $obj->fk_statut; print '<td align="right">'.$projectstatic->getLibStatut(5).'</td>'; }*/ - // Action column - print '<td></td>'; - + // Action column + print '<td class="nowrap" align="center">'; + if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + { + $selected=0; + if (in_array($obj->rowid, $arrayofselected)) $selected=1; + print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>'; + } + print '</td>'; + if (! $i) $totalarray['nbfield']++; + print "</tr>\n"; //print projectLinesa(); @@ -744,6 +774,27 @@ if ($resql) $i++; } + + // Show total line + if (isset($totalarray['totaldurationeffectivefield']) || isset($totalarray['totalplannedworkloadfield'])) + { + print '<tr class="liste_total">'; + $i=0; + while ($i < $totalarray['nbfield']) + { + $i++; + if ($i == 1) + { + if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>'; + else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>'; + } + elseif ($totalarray['totalplannedworkloadfield'] == $i) print '<td align="center">'.convertSecondToTime($totalarray['totalplannedworkload'],$plannedworkloadoutputformat).'</td>'; + elseif ($totalarray['totaldurationeffectivefield'] == $i) print '<td align="center">'.convertSecondToTime($totalarray['totaldurationeffective'],$timespentoutputformat).'</td>'; + else print '<td></td>'; + } + print '</tr>'; + } + $db->free($resql); $parameters=array('sql' => $sql); -- GitLab