From 7405138489b885f73c80147dea6491f8a1a24fd2 Mon Sep 17 00:00:00 2001 From: James Cole Date: Tue, 27 Dec 2016 20:07:28 +0100 Subject: [PATCH] Various code cleanup --- .../Report/Audit/MonthReportGenerator.php | 69 +++++++++++-------- .../Report/Category/MonthReportGenerator.php | 1 + 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/app/Generator/Report/Audit/MonthReportGenerator.php b/app/Generator/Report/Audit/MonthReportGenerator.php index a5f30e9a10..f5a5abd56c 100644 --- a/app/Generator/Report/Audit/MonthReportGenerator.php +++ b/app/Generator/Report/Audit/MonthReportGenerator.php @@ -49,33 +49,8 @@ class MonthReportGenerator implements ReportGeneratorInterface /** @var Account $account */ foreach ($this->accounts as $account) { // balance the day before: - $id = $account->id; - $dayBeforeBalance = Steam::balance($account, $dayBefore); - $collector = new JournalCollector(auth()->user()); - $collector->setAccounts(new Collection([$account]))->setRange($this->start, $this->end); - $journals = $collector->getJournals(); - $journals = $journals->reverse(); - $startBalance = $dayBeforeBalance; - - - /** @var Transaction $journal */ - foreach ($journals as $transaction) { - $transaction->before = $startBalance; - $transactionAmount = $transaction->transaction_amount; - $newBalance = bcadd($startBalance, $transactionAmount); - $transaction->after = $newBalance; - $startBalance = $newBalance; - } - - /* - * Reverse set again. - */ - $auditData[$id]['journals'] = $journals->reverse(); - $auditData[$id]['exists'] = $journals->count() > 0; - $auditData[$id]['end'] = $this->end->formatLocalized(strval(trans('config.month_and_day'))); - $auditData[$id]['endBalance'] = Steam::balance($account, $this->end); - $auditData[$id]['dayBefore'] = $dayBefore->formatLocalized(strval(trans('config.month_and_day'))); - $auditData[$id]['dayBeforeBalance'] = $dayBeforeBalance; + $id = $account->id; + $auditData[$id] = $this->getAuditReport($account, $dayBefore); } $defaultShow = ['icon', 'description', 'balance_before', 'amount', 'balance_after', 'date', 'to']; @@ -153,4 +128,44 @@ class MonthReportGenerator implements ReportGeneratorInterface return $this; } + + /** + * @param Account $account + * @param Carbon $date + * + * @return array + */ + private function getAuditReport(Account $account, Carbon $date): array + { + $dayBeforeBalance = Steam::balance($account, $date); + $collector = new JournalCollector(auth()->user()); + $collector->setAccounts(new Collection([$account]))->setRange($this->start, $this->end); + $journals = $collector->getJournals(); + $journals = $journals->reverse(); + $startBalance = $dayBeforeBalance; + + + /** @var Transaction $journal */ + foreach ($journals as $transaction) { + $transaction->before = $startBalance; + $transactionAmount = $transaction->transaction_amount; + $newBalance = bcadd($startBalance, $transactionAmount); + $transaction->after = $newBalance; + $startBalance = $newBalance; + } + + /* + * Reverse set again. + */ + $return = [ + 'journals' => $journals->reverse(), + 'exists' => $journals->count() > 0, + 'end' => $this->end->formatLocalized(strval(trans('config.month_and_day'))), + 'endBalance' => Steam::balance($account, $this->end), + 'dayBefore' => $date->formatLocalized(strval(trans('config.month_and_day'))), + 'dayBeforeBalance' => $dayBeforeBalance, + ]; + + return $return; + } } diff --git a/app/Generator/Report/Category/MonthReportGenerator.php b/app/Generator/Report/Category/MonthReportGenerator.php index 53aa790e28..a11bbc7460 100644 --- a/app/Generator/Report/Category/MonthReportGenerator.php +++ b/app/Generator/Report/Category/MonthReportGenerator.php @@ -229,6 +229,7 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface } /** + * @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's exactly five. * @param array $spent * @param array $earned *