/** * Edit or build a report. * * @param Calendar $calendar * @param Report $report * * @return Report $report */ public function build(Calendar $calendar, Report $report = null) { if (null === $report) { $report = new Report(); } /** @var JobCalendar $jobCalendar */ foreach ($calendar->getJobCalendars() as $jobCalendar) { $month = (int) $jobCalendar->getDate()->format('m'); $year = (int) $jobCalendar->getDate()->format('Y'); $job = $jobCalendar->getJob(); $jobReportYear = $report->getJobReportYear($year); $jobReportMonth = $jobReportYear->getMonth($month); $jobReportRow = $jobReportMonth->getRow($job->getCode(), $job->getTitle(), $job->getDuration()); $jobReportRow->add(); } $report->update(); return $report; }
/** * @param Calendar $calendar * * @return Response * * @Route("/{id}/jobs", name="app_v0_calendars_jobcalendars", methods="GET") */ public function getJobCalendarsAction(Calendar $calendar) { $transformer = $this->get('app.transformer.job_calendar'); return new Response($this->get('serializer')->serialize($transformer->entitiesToModel($calendar->getJobCalendars()->toArray()), 'json'), Response::HTTP_OK, ['content-type' => 'application/json']); }