';
-
-
-if (empty($conf->global->PROJECT_HIDE_TASKS))
+if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_SHOW_TASK_LIST_ON_PROJECT_AREA))
{
// Tasks for all resources of all opened projects and time spent for each task/resource
-
+ // This list can be very long, so we don't show it by default on task area. We prefer to use the list page.
+ // Add constant PROJECT_SHOW_TASK_LIST_ON_PROJECT_AREA to show this list
+
$max = (empty($conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA)?1000:$conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA);
- $sql = "SELECT p.ref, p.title, p.rowid as projectid, p.fk_statut as status, p.fk_opp_status as opp_status, t.label, t.rowid as taskid, t.planned_workload, t.duration_effective, t.progress, t.dateo, t.datee, SUM(tasktime.task_duration) as timespent";
+ $sql = "SELECT p.ref, p.title, p.rowid as projectid, p.fk_statut as status, p.fk_opp_status as opp_status, p.dateo as projdateo, p.datee as projdatee,";
+ $sql.= " t.label, t.rowid as taskid, t.planned_workload, t.duration_effective, t.progress, t.dateo, t.datee, SUM(tasktime.task_duration) as timespent";
$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t on t.fk_projet = p.rowid";
@@ -409,9 +407,9 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
print '
'.$langs->trans('DateStart').' | ';
print '
'.$langs->trans('DateEnd').' | ';
print '
'.$langs->trans('PlannedWorkload').' | ';
- print '
'.$langs->trans("ProgressDeclared").'';
print ' | '.$langs->trans('TimeSpent').' | ';
print '
'.$langs->trans("ProgressCalculated").'';
+ print ' | '.$langs->trans("ProgressDeclared").'';
print '';
while ($i < $num && $i < $max)
@@ -433,8 +431,11 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
$projectstatic->id=$obj->projectid;
$projectstatic->ref=$obj->ref;
$projectstatic->title=$obj->title;
- print $projectstatic->getNomUrl(1,'',16,'',' ');
- //print ''.$obj->title.'';
+ $projectstatic->statut = $obj->status;
+ $projectstatic->dateo = $db->jdate($obj->projdateo);
+ $projectstatic->datee = $db->jdate($obj->projdatee);
+
+ print $projectstatic->getNomUrl(1,'',0,'',' ');
print '';
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
{
@@ -453,14 +454,19 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
}
else print $langs->trans("NoTasks");
print '';
+ $taskstatic->projectstatus = $obj->projectstatus;
+ $taskstatic->progress = $obj->progress;
+ $taskstatic->fk_statut = $obj->status;
+ $taskstatic->dateo = $db->jdate($obj->dateo);
+ $taskstatic->datee = $db->jdate($obj->datee);
print ' | '.dol_print_date($db->jdate($obj->dateo),'day').' | ';
- print '
'.dol_print_date($db->jdate($obj->datee),'day').' | ';
+ print '
'.dol_print_date($db->jdate($obj->datee),'day');
+ print dol_print_date($obj->date_end,'dayhour');
+ if ($taskstatic->hasDelay()) print img_warning($langs->trans("Late"));
+ print ' | ';
print '
';
print convertSecondToTime($obj->planned_workload, 'all');
print ' | ';
- print '
';
- print ($obj->taskid>0)?$obj->progress.'%':'';
- print ' | ';
print '
';
print convertSecondToTime($obj->timespent, 'all');
print ' | ';
@@ -475,6 +481,9 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
}
print $percentcompletion;
print '';
+ print '
';
+ print ($obj->taskid>0)?$obj->progress.'%':'';
+ print ' | ';
print "\n";
$i++;
diff --git a/htdocs/projet/class/projectstats.class.php b/htdocs/projet/class/projectstats.class.php
index 360e13429ad..4bb6a1f31fa 100644
--- a/htdocs/projet/class/projectstats.class.php
+++ b/htdocs/projet/class/projectstats.class.php
@@ -57,7 +57,8 @@ class ProjectStats extends Stats
$sql .= " SUM(t.opp_amount), t.fk_opp_status, cls.code, cls.label";
$sql .= " FROM " . MAIN_DB_PREFIX . "projet as t, ".MAIN_DB_PREFIX."c_lead_status as cls";
$sql .= $this->buildWhere();
- $sql .= " AND t.fk_opp_status = cls.rowid AND t.fk_statut = 1";
+ $sql .= " AND t.fk_opp_status = cls.rowid";
+ $sql .= " AND t.fk_statut <> 0"; // We want historic also, so all projects
$sql .= " GROUP BY t.fk_opp_status, cls.code, cls.label";
$result = array ();
diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php
index 23d6df9be2b..07734373af7 100644
--- a/htdocs/projet/index.php
+++ b/htdocs/projet/index.php
@@ -193,13 +193,15 @@ else
}
print "";
-
-print '
';
-
-
-print_projecttasks_array($db, $form, $socid, $projectsListId, 0, 1, $listofoppstatus, array());
-
-
+if (! empty($conf->global->PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA))
+{
+ // This list can be very long, so we don't show it by default on task area. We prefer to use the list page.
+ // Add constant PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA to show this list
+
+ print '
';
+
+ print_projecttasks_array($db, $form, $socid, $projectsListId, 0, 1, $listofoppstatus, array());
+}
print '