From 4d49701203d111d0fc56309d4616da2fc7e36b1c Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 5 Jan 2017 08:39:46 +0100 Subject: [PATCH] =?UTF-8?q?Add=20new=20=E2=80=9Cearned=20in=20period?= =?UTF-8?q?=E2=80=9D=20method.=20#524?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Category/CategoryRepository.php | 19 +++++++++++++++++++ .../Category/CategoryRepositoryInterface.php | 10 ++++++++++ 2 files changed, 29 insertions(+) diff --git a/app/Repositories/Category/CategoryRepository.php b/app/Repositories/Category/CategoryRepository.php index 0b69ad69e3..dab725a385 100644 --- a/app/Repositories/Category/CategoryRepository.php +++ b/app/Repositories/Category/CategoryRepository.php @@ -74,6 +74,25 @@ class CategoryRepository implements CategoryRepositoryInterface } + /** + * @param Collection $categories + * @param Collection $accounts + * @param Carbon $start + * @param Carbon $end + * + * @return string + */ + public function earnedInPeriodCollector(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string + { + /** @var JournalCollectorInterface $collector */ + $collector = app(JournalCollectorInterface::class, [$this->user]); + $collector->setRange($start, $end)->setTypes([TransactionType::DEPOSIT])->setAccounts($accounts)->setCategories($categories); + $set = $collector->getJournals(); + $sum = strval($set->sum('transaction_amount')); + + return $sum; + } + /** * @param Collection $accounts * @param Carbon $start diff --git a/app/Repositories/Category/CategoryRepositoryInterface.php b/app/Repositories/Category/CategoryRepositoryInterface.php index 0fd3ef1399..96dd7fd02b 100644 --- a/app/Repositories/Category/CategoryRepositoryInterface.php +++ b/app/Repositories/Category/CategoryRepositoryInterface.php @@ -41,6 +41,16 @@ interface CategoryRepositoryInterface */ public function earnedInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string; + /** + * @param Collection $categories + * @param Collection $accounts + * @param Carbon $start + * @param Carbon $end + * + * @return string + */ + public function earnedInPeriodCollector(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string; + /** * @param Collection $accounts * @param Carbon $start