Refactor period blocks.

This commit is contained in:
James Cole
2018-09-10 20:24:19 +02:00
parent d77112955d
commit efeffaa49f
10 changed files with 207 additions and 167 deletions

View File

@@ -83,14 +83,37 @@ class CategoryRepository implements CategoryRepositoryInterface
* @return string
*/
public function earnedInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string
{
$set = $this->earnedInPeriodCollection($categories, $accounts, $start, $end);
return (string)$set->sum('transaction_amount');
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $categories
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function earnedInPeriodCollection(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): Collection
{
/** @var TransactionCollectorInterface $collector */
$collector = app(TransactionCollectorInterface::class);
$collector->setUser($this->user);
$collector->setRange($start, $end)->setTypes([TransactionType::DEPOSIT])->setAccounts($accounts)->setCategories($categories);
$set = $collector->getTransactions();
if (0 !== $accounts->count()) {
$collector->setAccounts($accounts);
}
return (string)$set->sum('transaction_amount');
if (0 === $accounts->count()) {
$collector->setAllAssetAccounts();
}
$collector->setRange($start, $end)->setTypes([TransactionType::DEPOSIT])->setCategories($categories);
return $collector->getTransactions();
}
/**
@@ -182,6 +205,8 @@ class CategoryRepository implements CategoryRepositoryInterface
return $set;
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Category $category
* @param Collection $accounts
@@ -212,7 +237,6 @@ class CategoryRepository implements CategoryRepositoryInterface
return $lastJournalDate;
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $categories
* @param Collection $accounts
@@ -258,6 +282,8 @@ class CategoryRepository implements CategoryRepositoryInterface
return $data;
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $accounts
* @param Carbon $start
@@ -296,7 +322,6 @@ class CategoryRepository implements CategoryRepositoryInterface
return $result;
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $categories
* @param Collection $accounts
@@ -383,6 +408,8 @@ class CategoryRepository implements CategoryRepositoryInterface
return $result;
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param User $user
*/
@@ -401,6 +428,23 @@ class CategoryRepository implements CategoryRepositoryInterface
* @return string
*/
public function spentInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string
{
$set = $this->spentInPeriodCollection($categories, $accounts, $start, $end);
return (string)$set->sum('transaction_amount');
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $categories
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function spentInPeriodCollection(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): Collection
{
/** @var TransactionCollectorInterface $collector */
$collector = app(TransactionCollectorInterface::class);
@@ -414,13 +458,9 @@ class CategoryRepository implements CategoryRepositoryInterface
$collector->setAllAssetAccounts();
}
$set = $collector->getTransactions();
return (string)$set->sum('transaction_amount');
return $collector->getTransactions();
}
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* A very cryptic method name that means:
*

View File

@@ -51,6 +51,17 @@ interface CategoryRepositoryInterface
*/
public function earnedInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string;
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $categories
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function earnedInPeriodCollection(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): Collection;
/**
* Find a category.
*
@@ -158,6 +169,17 @@ interface CategoryRepositoryInterface
*/
public function spentInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string;
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param Collection $categories
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function spentInPeriodCollection(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): Collection;
/** @noinspection MoreThanThreeArgumentsInspection */
/**