diff --git a/src/schedule-2.0/src/Controller/ReportController.php b/src/schedule-2.0/src/Controller/ReportController.php index 92fc54b..b386544 100755 --- a/src/schedule-2.0/src/Controller/ReportController.php +++ b/src/schedule-2.0/src/Controller/ReportController.php @@ -610,7 +610,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(); } - // Somme astreintes validé par semaine + // Somme astreintes validé par semaine $start=new \Datetime('first day of this month'); $start->sub(new \DateInterval('P'.$nbmonth.'M')); $start->modify('previous monday'); @@ -1074,6 +1074,7 @@ class ReportController extends AbstractController $endmonth = new \Datetime('first day of this month'); $endmonth->add(new \DateInterval('P1M')); $endmonth->modify('next monday'); + $endmonth->setTime(23,59,0); $eventsbyweek = $em ->createQueryBuilder('event') @@ -1102,6 +1103,42 @@ 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(); } + // Somme astreintes validé par semaine + $start=new \Datetime('first day of this month'); + $start->sub(new \DateInterval('P'.$nbmonth.'M')); + $start->modify('previous monday'); + $start->setTime(0,0,0); + $endmonth = new \Datetime('first day of this month'); + $endmonth->add(new \DateInterval('P1M')); + $endmonth->modify('next monday'); + $endmonth->setTime(23,59,0); + + $penaltybyweek = $em + + ->createQueryBuilder('penalty') + ->select('penalty') + ->from('App:Task','task') + ->from('App:Penalty','penalty') + ->Where('task.project=:project') + ->andWhere('penalty.task=task') + ->andWhere('penalty.end >=:start') + ->andWhere('penalty.end <:end') + ->andWhere('penalty.validate=:validate') + ->setParameter('project',$project) + ->setParameter('validate',true) + ->setParameter('start',$start) + ->setParameter('end',$endmonth) + ->orderBy('penalty.start') + ->getQuery()->getResult(); + foreach($penaltybyweek as $penalty) { + if(!isset($tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")])){ + $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")] = [ + "weeknumber" => $penalty->getStart()->format("W"), + "cumul" => 0, + ]; + } + $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["cumul"]+$penalty->getDuration(); + } $tbprojects[$project->getId()]=$tbproject; }