diff --git a/src/schedule-2.0/src/Controller/ReportController.php b/src/schedule-2.0/src/Controller/ReportController.php index 74e59e8..c8b4b38 100755 --- a/src/schedule-2.0/src/Controller/ReportController.php +++ b/src/schedule-2.0/src/Controller/ReportController.php @@ -299,7 +299,8 @@ class ReportController extends AbstractController "monthid"=> $start->format("Ym"), "monthlabel"=>$start->format("m/Y"), "days"=>[], - "users"=>[] + "users"=>[], + "tasks"=>[] ]; // Init du tableau des utilisateurs pour le mois @@ -311,7 +312,32 @@ class ReportController extends AbstractController ]; $tbproject["months"][$start->format("Ym")]["users"][$user->getId()]=$tbuser; } + // Init des taches par mois + $endmonth=clone $start; + $endmonth->add(new \DateInterval('P1M')); + $events = $em + ->createQueryBuilder('event') + ->select('task.id, task.name, SUM(event.duration) as somme') + ->from('App:Task','task') + ->from('App:Event','event') + ->Where('task.project=:project') + ->andWhere('event.task=task') + ->andWhere('event.end >=:start') + ->andWhere('event.end <:end') + ->setParameter('project',$project) + ->setParameter('start',$start) + ->setParameter('end',$endmonth) + ->groupBy('task.id') + ->getQuery()->getResult(); + foreach($events as $event) { + $tbtask= [ + "id"=>$event["id"], + "displayname"=>$event["name"], + "duration"=>$event["somme"] + ]; + $tbproject["months"][$start->format("Ym")]["tasks"][$event["id"]]=$tbtask; + } $start->add(new \DateInterval('P1M')); } @@ -341,7 +367,7 @@ class ReportController extends AbstractController $tbproject["months"][$start->format("Ym")]["users"][$user->getId()]["days"][$start->format("Ymd")]=$tbday; } - + $start->add(new \DateInterval('P1D')); } $tbprojects[$project->getId()]=$tbproject; @@ -611,49 +637,7 @@ class ReportController extends AbstractController } $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"]+$event->getDuration(); } - - // foreach($eventsbyweek as $event) { - // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"])){ - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - // "weeknumber" => $event->getStart()->format("W"), - // "users" => [], - // ]; - // } - // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()])){ - // $tbuser= [ - // "id"=>$event->getUser()->getId(), - // "displayname"=>$event->getUser()->getDisplayname(), - // "cumul"=>0 - // ]; - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()] = $tbuser; - // } - - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); - // } - // foreach($eventsbyweek as $event) { - // if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"])){ - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - // "weeknumber" => $event->getStart()->format("W"), - // "tasks" => [], - // ]; - // } - // if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()])){ - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()] = [ - // "taskname" => $event->getTask()->getName(), - // "users" => [], - // ]; - // } - // if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()])){ - // $tbuser= [ - // "id"=>$event->getUser()->getId(), - // "displayname"=>$event->getUser()->getDisplayname(), - // "cumul"=>0 - // ]; - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()] = $tbuser; - // } - - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); - // } + // Somme astreintes validé par semaine $start=new \Datetime('first day of this month'); $start->sub(new \DateInterval('P'.$nbmonth.'M')); diff --git a/src/schedule-2.0/templates/Report/planning.html.twig b/src/schedule-2.0/templates/Report/planning.html.twig index 50dfb35..607637b 100644 --- a/src/schedule-2.0/templates/Report/planning.html.twig +++ b/src/schedule-2.0/templates/Report/planning.html.twig @@ -142,6 +142,32 @@ {% endfor %} + + {% if month.total > 0 %} +
+ + {% for task in month.tasks %} + + + + + {% endfor %} + + {% if month.totala > 0 %} + + + + + {% endif %} + + + + + + + +
{{ task.displayname }}{{ task.duration|number_format(2, '.', ' ') }}
Astreinte{{ month.totala|number_format(2, '.', ' ') }}
TOTAL{{ (month.total + month.totala)|number_format(2, '.', ' ') }}
+ {% endif %} {% if month.total > 0 %} Total = {{ month.total }} {% endif %}