/** * 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 NurseryCalendar $nurseryCalendar */ foreach ($calendar->getNurseryCalendars() as $nurseryCalendar) { $month = (int) $nurseryCalendar->getDate()->format('m'); $year = (int) $nurseryCalendar->getDate()->format('Y'); $nurseryReportYear = $report->getNurseryReportYear($year); $nurseryReportMonth = $nurseryReportYear->getMonth($month); $nurseryReportMonth->addPeriod($nurseryCalendar->getDuration(), $nurseryCalendar->isMeal()); } $report->update(); return $report; }
/** * 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; }