diff --git a/app/Abstracts/Listeners/Report.php b/app/Abstracts/Listeners/Report.php index 3ac17963e..f7290c6f7 100644 --- a/app/Abstracts/Listeners/Report.php +++ b/app/Abstracts/Listeners/Report.php @@ -183,26 +183,43 @@ abstract class Report public function getFormattedDate($event, $date) { - if (empty($event->class->model->settings->period)) { - return $date->copy()->format('Y-m-d'); - } + $formatted_date = null; - switch ($event->class->model->settings->period) { + switch ($event->class->getSetting('period')) { case 'yearly': - $d = $date->copy()->format($this->getYearlyDateFormat()); + $financial_year = $this->getFinancialYear($event->class->model->year); + + if ($date->greaterThanOrEqualTo($financial_year->getStartDate()) && $date->lessThanOrEqualTo($financial_year->getEndDate())) { + if (setting('localisation.financial_denote') == 'begins') { + $formatted_date = $financial_year->getStartDate()->copy()->format($this->getYearlyDateFormat()); + } else { + $formatted_date = $financial_year->getEndDate()->copy()->format($this->getYearlyDateFormat()); + } + } + break; case 'quarterly': - $start = $date->copy()->startOfQuarter()->format($this->getQuarterlyDateFormat()); - $end = $date->copy()->endOfQuarter()->format($this->getQuarterlyDateFormat()); + $quarters = $this->getFinancialQuarters($event->class->model->year); + + foreach ($quarters as $quarter) { + if ($date->lessThan($quarter->getStartDate()) || $date->greaterThan($quarter->getEndDate())) { + continue; + } + + $start = $quarter->getStartDate()->format($this->getQuarterlyDateFormat($event->class->model->year)); + $end = $quarter->getEndDate()->format($this->getQuarterlyDateFormat($event->class->model->year)); + + $formatted_date = $start . '-' . $end; + } - $d = $start . '-' . $end; break; default: - $d = $date->copy()->format($this->getMonthlyDateFormat()); + $formatted_date = $date->copy()->format($this->getMonthlyDateFormat($event->class->model->year)); + break; } - return $d; + return $formatted_date; } /**