diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index b98450aef..dce1ea98f 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -142,17 +142,17 @@ abstract class Report { $chart = new Chartjs(); - if (empty($this->model->settings->chart)) { + if (!$type = $this->getSetting('chart')) { return $chart; } - $config = $this->chart[$this->model->settings->chart]; + $config = $this->chart[$type]; $default_options = $this->getLineChartOptions(); $options = array_merge($default_options, (array) $config['options']); - $chart->type($this->model->settings->chart) + $chart->type($type) ->width((int) $config['width']) ->height((int) $config['height']) ->options($options) @@ -199,13 +199,13 @@ abstract class Report public function setColumnWidth() { - if (empty($this->model->settings->period)) { + if (!$period = $this->getSetting('period')) { return; } $width = ''; - switch ($this->model->settings->period) { + switch ($period) { case 'quarterly': $width = 'col-sm-2'; break; @@ -253,16 +253,16 @@ abstract class Report public function setDates() { - if (empty($this->model->settings->period)) { + if (!$period = $this->getSetting('period')) { return; } - $function = 'sub' . ucfirst(str_replace('ly', '', $this->model->settings->period)); + $function = 'sub' . ucfirst(str_replace('ly', '', $period)); $start = $this->getFinancialStart()->copy()->$function(); for ($j = 1; $j <= 12; $j++) { - switch ($this->model->settings->period) { + switch ($period) { case 'yearly': $start->addYear(); @@ -332,7 +332,7 @@ abstract class Report $date = $this->getFormattedDate(Date::parse($item->$date_field)); - $id_field = $this->model->settings->group . '_id'; + $id_field = $this->getSetting('group') . '_id'; if ( !isset($this->row_values[$table][$item->$id_field]) @@ -374,7 +374,7 @@ abstract class Report public function getFormattedDate($date) { - switch ($this->model->settings->period) { + switch ($this->getSetting('period')) { case 'yearly': $i = $date->copy()->format($this->getYearlyDateFormat()); break; @@ -411,6 +411,11 @@ abstract class Report return $print_url; } + public function getSetting($name, $default = '') + { + return $this->model->settings->$name ?? $default; + } + public function getFields() { return [ diff --git a/app/Reports/ExpenseSummary.php b/app/Reports/ExpenseSummary.php index 593aafb60..38301c77b 100644 --- a/app/Reports/ExpenseSummary.php +++ b/app/Reports/ExpenseSummary.php @@ -32,7 +32,7 @@ class ExpenseSummary extends Report { $transactions = $this->applyFilters(Transaction::with('recurring')->expense()->isNotTransfer(), ['date_field' => 'paid_at']); - switch ($this->model->settings->basis) { + switch ($this->getSetting('basis')) { case 'cash': // Payments $payments = $transactions->get(); diff --git a/app/Reports/IncomeExpenseSummary.php b/app/Reports/IncomeExpenseSummary.php index 1cc9a0dd3..0de9e6eb3 100644 --- a/app/Reports/IncomeExpenseSummary.php +++ b/app/Reports/IncomeExpenseSummary.php @@ -19,7 +19,7 @@ class IncomeExpenseSummary extends Report $income_transactions = $this->applyFilters(Transaction::with('recurring')->income()->isNotTransfer(), ['date_field' => 'paid_at']); $expense_transactions = $this->applyFilters(Transaction::with('recurring')->expense()->isNotTransfer(), ['date_field' => 'paid_at']); - switch ($this->model->settings->basis) { + switch ($this->getSetting('basis')) { case 'cash': // Revenues $revenues = $income_transactions->get(); diff --git a/app/Reports/IncomeSummary.php b/app/Reports/IncomeSummary.php index b2cd467f4..b08927ace 100644 --- a/app/Reports/IncomeSummary.php +++ b/app/Reports/IncomeSummary.php @@ -32,7 +32,7 @@ class IncomeSummary extends Report { $transactions = $this->applyFilters(Transaction::with('recurring')->income()->isNotTransfer(), ['date_field' => 'paid_at']); - switch ($this->model->settings->basis) { + switch ($this->getSetting('basis')) { case 'cash': // Revenues $revenues = $transactions->get(); diff --git a/app/Reports/ProfitLoss.php b/app/Reports/ProfitLoss.php index 9d12c5a47..d225abab2 100644 --- a/app/Reports/ProfitLoss.php +++ b/app/Reports/ProfitLoss.php @@ -38,7 +38,7 @@ class ProfitLoss extends Report $income_transactions = $this->applyFilters(Transaction::with('recurring')->income()->isNotTransfer(), ['date_field' => 'paid_at']); $expense_transactions = $this->applyFilters(Transaction::with('recurring')->expense()->isNotTransfer(), ['date_field' => 'paid_at']); - switch ($this->model->settings->basis) { + switch ($this->getSetting('basis')) { case 'cash': // Revenues $revenues = $income_transactions->get(); diff --git a/app/Reports/TaxSummary.php b/app/Reports/TaxSummary.php index 7dc576e0e..f6ccd3a48 100644 --- a/app/Reports/TaxSummary.php +++ b/app/Reports/TaxSummary.php @@ -39,7 +39,7 @@ class TaxSummary extends Report public function setData() { - switch ($this->model->settings->basis) { + switch ($this->getSetting('basis')) { case 'cash': // Invoice Payments $invoices = $this->applyFilters(Transaction::with('recurring', 'invoice', 'invoice.totals')->income()->isDocument()->isNotTransfer(), ['date_field' => 'paid_at'])->get();