|
@@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
|
|
function project_prepare_head($object)
|
|
|
{
|
|
|
global $db, $langs, $conf, $user;
|
|
|
-
|
|
|
+
|
|
|
$h = 0;
|
|
|
$head = array();
|
|
|
|
|
@@ -114,7 +114,7 @@ function project_prepare_head($object)
|
|
|
$head[$h][1] = $langs->trans("Info");
|
|
|
$head[$h][2] = 'info';
|
|
|
$h++;
|
|
|
-
|
|
|
+
|
|
|
complete_head_from_modules($conf,$langs,$object,$head,$h,'project','remove');
|
|
|
|
|
|
return $head;
|
|
@@ -487,7 +487,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
|
|
|
if ($lines[$i]->id) projectLinesa($inc, $lines[$i]->id, $lines, $level, $var, $showproject, $taskrole, $projectsListId, $addordertick);
|
|
|
$level--;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$total_projectlinesa_spent += $lines[$i]->duration;
|
|
|
$total_projectlinesa_planned += $lines[$i]->planned_workload;
|
|
|
if ($lines[$i]->planned_workload) $total_projectlinesa_spent_if_planned += $lines[$i]->duration;
|
|
@@ -551,9 +551,9 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
|
|
$lastprojectid=0;
|
|
|
$workloadforid=array();
|
|
|
$lineswithoutlevel0=array();
|
|
|
-
|
|
|
+
|
|
|
$numlines=count($lines);
|
|
|
-
|
|
|
+
|
|
|
// Create a smaller array with sublevels only to be used later. This increase dramatically performances.
|
|
|
if ($parent == 0) // Always and only if at first level
|
|
|
{
|
|
@@ -561,10 +561,10 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
|
|
{
|
|
|
if ($lines[$i]->fk_task_parent) $lineswithoutlevel0[]=$lines[$i];
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
//dol_syslog('projectLinesPerDay inc='.$inc.' preselectedday='.$preselectedday.' task parent id='.$parent.' level='.$level." count(lines)=".$numlines." count(lineswithoutlevel0)=".count($lineswithoutlevel0));
|
|
|
-
|
|
|
+
|
|
|
for ($i = 0 ; $i < $numlines ; $i++)
|
|
|
{
|
|
|
if ($parent == 0) $level = 0;
|
|
@@ -575,7 +575,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
|
|
if (empty($mine) || ! empty($tasksrole[$lines[$i]->id]))
|
|
|
{
|
|
|
//dol_syslog("projectLinesPerWeek Found line ".$i.", a qualified task (i have role or want to show all tasks) with id=".$lines[$i]->id." project id=".$lines[$i]->fk_project);
|
|
|
-
|
|
|
+
|
|
|
// Break on a new project
|
|
|
if ($parent == 0 && $lines[$i]->fk_project != $lastprojectid)
|
|
|
{
|
|
@@ -585,7 +585,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
|
|
$projectstatic->id = $lines[$i]->fk_project;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (empty($workloadforid[$projectstatic->id]))
|
|
|
{
|
|
|
if ($preselectedday)
|
|
@@ -594,7 +594,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
|
|
$workloadforid[$projectstatic->id]=1;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$projectstatic->id=$lines[$i]->fk_project;
|
|
|
$projectstatic->ref=$lines[$i]->projectref;
|
|
|
$projectstatic->title=$lines[$i]->projectlabel;
|
|
@@ -702,16 +702,16 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
|
|
print '<textarea name="'.$lines[$i]->id.'note" rows="2" id="note">';
|
|
|
print '</textarea>';
|
|
|
print '</td>';
|
|
|
-
|
|
|
+
|
|
|
print "</tr>\n";
|
|
|
}
|
|
|
|
|
|
$inc++;
|
|
|
$level++;
|
|
|
- if ($lines[$i]->id > 0)
|
|
|
+ if ($lines[$i]->id > 0)
|
|
|
{
|
|
|
if ($parent == 0) projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $var);
|
|
|
- else projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $var);
|
|
|
+ else projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $var);
|
|
|
}
|
|
|
$level--;
|
|
|
}
|
|
@@ -752,7 +752,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
$lastprojectid=0;
|
|
|
$workloadforid=array();
|
|
|
$lineswithoutlevel0=array();
|
|
|
-
|
|
|
+
|
|
|
// Create a smaller array with sublevels only to be used later. This increase dramatically performances.
|
|
|
if ($parent == 0) // Always and only if at first level
|
|
|
{
|
|
@@ -763,18 +763,18 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
}
|
|
|
|
|
|
//dol_syslog('projectLinesPerWeek inc='.$inc.' firstdaytoshow='.$firstdaytoshow.' task parent id='.$parent.' level='.$level." count(lines)=".$numlines." count(lineswithoutlevel0)=".count($lineswithoutlevel0));
|
|
|
-
|
|
|
+
|
|
|
for ($i = 0 ; $i < $numlines ; $i++)
|
|
|
{
|
|
|
if ($parent == 0) $level = 0;
|
|
|
-
|
|
|
+
|
|
|
if ($lines[$i]->fk_task_parent == $parent)
|
|
|
{
|
|
|
// If we want all or we have a role on task, we show it
|
|
|
if (empty($mine) || ! empty($tasksrole[$lines[$i]->id]))
|
|
|
{
|
|
|
//dol_syslog("projectLinesPerWeek Found line ".$i.", a qualified task (i have role or want to show all tasks) with id=".$lines[$i]->id." project id=".$lines[$i]->fk_project);
|
|
|
-
|
|
|
+
|
|
|
// Break on a new project
|
|
|
if ($parent == 0 && $lines[$i]->fk_project != $lastprojectid)
|
|
|
{
|
|
@@ -782,13 +782,13 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
$lastprojectid=$lines[$i]->fk_project;
|
|
|
$projectstatic->id = $lines[$i]->fk_project;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (empty($workloadforid[$projectstatic->id]))
|
|
|
{
|
|
|
$projectstatic->loadTimeSpent($firstdaytoshow, 0, $fuser->id); // Load time spent from table projet_task_time for the project into this->weekWorkLoad and this->weekWorkLoadPerTask for all days of a week
|
|
|
$workloadforid[$projectstatic->id]=1;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
print "<tr ".$bc[$var].">\n";
|
|
|
|
|
|
// Project
|
|
@@ -868,7 +868,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
}
|
|
|
|
|
|
//var_dump($projectstatic->weekWorkLoadPerTask);
|
|
|
-
|
|
|
+
|
|
|
// Fields to show current time
|
|
|
$tableCell=''; $modeinput='hours';
|
|
|
for ($idw = 0; $idw < 7; $idw++)
|
|
@@ -879,7 +879,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
$alreadyspent='';
|
|
|
if ($dayWorkLoad > 0) $alreadyspent=convertSecondToTime($dayWorkLoad,'allhourmin');
|
|
|
$alttitle=$langs->trans("AddHereTimeSpentForDay",$tmparray['day'],$tmparray['mon']);
|
|
|
-
|
|
|
+
|
|
|
$tableCell ='<td align="center" class="hide'.$idw.'">';
|
|
|
if ($alreadyspent)
|
|
|
{
|
|
@@ -895,7 +895,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
print $tableCell;
|
|
|
}
|
|
|
dol_syslog("yyy");
|
|
|
-
|
|
|
+
|
|
|
print '<td align="right">';
|
|
|
if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("YouAreNotContactOfProject"));
|
|
|
else if ($disabledtask) print $form->textwithpicto('',$langs->trans("TaskIsNotAffectedToYou"));
|
|
@@ -907,7 +907,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
|
|
// Call to show task with a lower level (task under the current task)
|
|
|
$inc++;
|
|
|
$level++;
|
|
|
- if ($lines[$i]->id > 0)
|
|
|
+ if ($lines[$i]->id > 0)
|
|
|
{
|
|
|
if ($parent == 0) projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $var);
|
|
|
else projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $var);
|
|
@@ -981,7 +981,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
|
|
|
$projectstatic=new Project($db);
|
|
|
$thirdpartystatic=new Societe($db);
|
|
|
-
|
|
|
+
|
|
|
$sortfield='';
|
|
|
$sortorder='';
|
|
|
$project_year_filter=0;
|
|
@@ -990,7 +990,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
if (strcmp($statut, '') && $statut >= 0) $title=$langs->trans("Projects").' '.$langs->trans($projectstatic->statuts_long[$statut]);
|
|
|
|
|
|
$arrayidtypeofcontact=array();
|
|
|
-
|
|
|
+
|
|
|
print '<table class="noborder" width="100%">';
|
|
|
|
|
|
$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
|
|
@@ -1033,11 +1033,11 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
$sql.= " AND (p.datee IS NULL OR p.datee >= ".$db->idate(dol_get_first_day($project_year_filter,1,false)).")";
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// Get id of project we must show tasks
|
|
|
$arrayidofprojects=array();
|
|
|
$sql1 = "SELECT p.rowid as projectid";
|
|
|
- $sql1.= $sql;
|
|
|
+ $sql1.= $sql;
|
|
|
$resql = $db->query($sql1);
|
|
|
if ($resql)
|
|
|
{
|
|
@@ -1052,7 +1052,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
}
|
|
|
else dol_print_error($db);
|
|
|
if (empty($arrayidofprojects)) $arrayidofprojects[0]=-1;
|
|
|
-
|
|
|
+
|
|
|
// Get list of project with calculation on tasks
|
|
|
$sql2 = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_soc, s.nom as socname, p.fk_user_creat, p.public, p.fk_statut as status, p.fk_opp_status as opp_status, p.opp_amount,";
|
|
|
$sql2.= " p.dateo, p.datee,";
|
|
@@ -1083,7 +1083,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
print_liste_field_titre($langs->trans("OpportunityAmount"),"","","","",'align="right"',$sortfield,$sortorder);
|
|
|
print_liste_field_titre($langs->trans("OpportunityStatus"),"","","","",'align="right"',$sortfield,$sortorder);
|
|
|
}
|
|
|
- if (empty($conf->global->PROJECT_HIDE_TASKS))
|
|
|
+ if (empty($conf->global->PROJECT_HIDE_TASKS))
|
|
|
{
|
|
|
print_liste_field_titre($langs->trans("Tasks"),"","","","",'align="right"',$sortfield,$sortorder);
|
|
|
if (! in_array('plannedworkload', $hiddenfields)) print_liste_field_titre($langs->trans("PlannedWorkload"),"","","","",'align="right"',$sortfield,$sortorder);
|
|
@@ -1091,7 +1091,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
}
|
|
|
print_liste_field_titre($langs->trans("Status"),"","","","",'align="right"',$sortfield,$sortorder);
|
|
|
print "</tr>\n";
|
|
|
-
|
|
|
+
|
|
|
while ($i < $num)
|
|
|
{
|
|
|
$objp = $db->fetch_object($resql);
|
|
@@ -1109,7 +1109,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
$projectstatic->title = $objp->title;
|
|
|
$projectstatic->datee = $db->jdate($objp->datee);
|
|
|
$projectstatic->dateo = $db->jdate($objp->dateo);
|
|
|
-
|
|
|
+
|
|
|
$var=!$var;
|
|
|
print "<tr ".$bc[$var].">";
|
|
|
print '<td>';
|
|
@@ -1135,17 +1135,17 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
if ($code) print $langs->trans("OppStatus".$code);
|
|
|
print '</td>';
|
|
|
}
|
|
|
- if (empty($conf->global->PROJECT_HIDE_TASKS))
|
|
|
+ if (empty($conf->global->PROJECT_HIDE_TASKS))
|
|
|
{
|
|
|
print '<td align="right">'.$objp->nb.'</td>';
|
|
|
-
|
|
|
+
|
|
|
$plannedworkload=$objp->planned_workload;
|
|
|
$total_plannedworkload+=$plannedworkload;
|
|
|
if (! in_array('plannedworkload', $hiddenfields))
|
|
|
{
|
|
|
print '<td align="right">'.($plannedworkload?convertSecondToTime($plannedworkload):'').'</td>';
|
|
|
}
|
|
|
- if (! in_array('declaredprogress', $hiddenfields))
|
|
|
+ if (! in_array('declaredprogress', $hiddenfields))
|
|
|
{
|
|
|
$declaredprogressworkload=$objp->declared_progess_workload;
|
|
|
$total_declaredprogressworkload+=$declaredprogressworkload;
|
|
@@ -1155,7 +1155,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
print '</td>';
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
print '<td align="right">'.$projectstatic->getLibStatut(3).'</td>';
|
|
|
print "</tr>\n";
|
|
|
|
|
@@ -1174,7 +1174,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
print '<td class="liste_total" align="right">'.price($total_opp_amount, 0, '', 1, -1, -1, $conf->currency).'</td>';
|
|
|
print '<td class="liste_total" align="right">'.$form->textwithpicto(price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency), $langs->trans("OpportunityPonderatedAmountDesc"), 1).'</td>';
|
|
|
}
|
|
|
- if (empty($conf->global->PROJECT_HIDE_TASKS))
|
|
|
+ if (empty($conf->global->PROJECT_HIDE_TASKS))
|
|
|
{
|
|
|
print '<td class="liste_total" align="right">'.$total_task.'</td>';
|
|
|
if (! in_array('plannedworkload', $hiddenfields)) print '<td class="liste_total" align="right">'.($total_plannedworkload?convertSecondToTime($total_plannedworkload):'').'</td>';
|
|
@@ -1182,7 +1182,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
|
|
|
}
|
|
|
print '<td class="liste_total"></td>';
|
|
|
print '</tr>';
|
|
|
-
|
|
|
+
|
|
|
$db->free($resql);
|
|
|
}
|
|
|
else
|