Moved more stuff to the journal collector.

This commit is contained in:
James Cole
2016-11-05 18:08:44 +01:00
parent 37435da459
commit 1e2124c5ed
8 changed files with 100 additions and 124 deletions

View File

@@ -210,65 +210,6 @@ class BudgetRepository implements BudgetRepositoryInterface
return $set;
}
/**
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function journalsInPeriodWithoutBudget(Collection $accounts, Carbon $start, Carbon $end): Collection
{
$accountIds = [];
if ($accounts->count() > 0) {
$accountIds = $accounts->pluck('id')->toArray();
}
/** @var Collection $set */
$query = $this->user
->transactionJournals()
->expanded()
->sortCorrectly()
->transactionTypes([TransactionType::WITHDRAWAL])
->leftJoin('budget_transaction_journal', 'budget_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id')
->whereNull('budget_transaction_journal.id')
->leftJoin(
'transactions as source',
function (JoinClause $join) {
$join->on('source.transaction_journal_id', '=', 'transaction_journals.id')->where('source.amount', '<', '0');
}
)
->before($end)
->after($start)->with(
[
'transactions' => function (HasMany $query) {
$query->where('transactions.amount', '<', 0);
},
'transactions.budgets',
]
);
// add account id's, if relevant:
if (count($accountIds) > 0) {
$query->whereIn('source.account_id', $accountIds);
}
$set = $query->get(TransactionJournal::queryFields());
$set = $set->filter(
function (TransactionJournal $journal) {
foreach ($journal->transactions as $t) {
if ($t->budgets->count() === 0) {
return true;
}
}
return false;
}
);
return $set;
}
/**
* @param Collection $budgets
* @param Collection $accounts

View File

@@ -89,15 +89,6 @@ interface BudgetRepositoryInterface
*/
public function getInactiveBudgets(): Collection;
/**
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function journalsInPeriodWithoutBudget(Collection $accounts, Carbon $start, Carbon $end): Collection;
/**
* @param Collection $budgets
* @param Collection $accounts