Skip to content

Commit

Permalink
Should fix tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
JC5 committed Mar 30, 2017
1 parent 92cd3d6 commit ea98428
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 34 deletions.
51 changes: 51 additions & 0 deletions app/Helpers/Report/PopupReport.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
class PopupReport implements PopupReportInterface
{


/**
* @param Budget $budget
* @param Account $account
Expand All @@ -44,6 +45,25 @@ public function balanceForBudget(Budget $budget, Account $account, array $attrib
return $journals;
}

/**
* @param Account $account
* @param array $attributes
*
* @return Collection
*/
public function balanceForNoBudget(Account $account, array $attributes): Collection
{
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector
->setAccounts(new Collection([$account]))
->setTypes([TransactionType::WITHDRAWAL])
->setRange($attributes['startDate'], $attributes['endDate'])
->withoutBudget();

return $collector->getJournals();
}

/**
* @param Budget $budget
* @param array $attributes
Expand Down Expand Up @@ -145,4 +165,35 @@ function (Transaction $transaction) use ($report) {

return $journals;
}

/**
* @param $account
* @param $attributes
*
* @return Collection
*/
public function balanceDifference($account, $attributes): Collection
{
// row that displays difference
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector
->setAccounts(new Collection([$account]))
->setTypes([TransactionType::WITHDRAWAL])
->setRange($attributes['startDate'], $attributes['endDate'])
->withoutBudget();
$journals = $collector->getJournals();


return $journals->filter(
function (Transaction $transaction) {
$tags = $transaction->transactionJournal->tags()->where('tagMode', 'balancingAct')->count();
if ($tags === 0) {
return true;
}

return false;
}
);
}
}
18 changes: 17 additions & 1 deletion app/Helpers/Report/PopupReportInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,31 @@
interface PopupReportInterface
{

/**
* @param $account
* @param $attributes
*
* @return Collection
*/
public function balanceDifference($account, $attributes): Collection;

/**
* @param Budget $budget
* @param Account $account
* @param array $attributes
* @param array $attributes
*
* @return Collection
*/
public function balanceForBudget(Budget $budget, Account $account, array $attributes): Collection;

/**
* @param Account $account
* @param array $attributes
*
* @return Collection
*/
public function balanceForNoBudget(Account $account, array $attributes): Collection;

/**
* @param Budget $budget
* @param array $attributes
Expand Down
35 changes: 2 additions & 33 deletions app/Http/Controllers/Popup/ReportController.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,14 @@
use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collection\BalanceLine;
use FireflyIII\Helpers\Collector\JournalCollectorInterface;
use FireflyIII\Helpers\Report\PopupReportInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Support\Binder\AccountList;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use InvalidArgumentException;
use Response;
use View;
Expand Down Expand Up @@ -128,7 +125,6 @@ private function balanceAmount(array $attributes): string
$role = intval($attributes['role']);
$budget = $this->budgetRepository->find(intval($attributes['budgetId']));
$account = $this->accountRepository->find(intval($attributes['accountId']));
$types = [TransactionType::WITHDRAWAL];

switch (true) {
case ($role === BalanceLine::ROLE_DEFAULTROLE && !is_null($budget->id)):
Expand All @@ -137,39 +133,12 @@ private function balanceAmount(array $attributes): string
break;
case ($role === BalanceLine::ROLE_DEFAULTROLE && is_null($budget->id)):
// normal row without a budget:
$journals = $this->popupHelper->balanceForNoBudget($account, $attributes);
$journals = $this->popupHelper->balanceForNoBudget($account, $attributes);
$budget->name = strval(trans('firefly.no_budget'));
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector
->setAccounts(new Collection([$account]))
->setTypes($types)
->setRange($attributes['startDate'], $attributes['endDate'])
->withoutBudget();
$journals = $collector->getJournals();
break;
case ($role === BalanceLine::ROLE_DIFFROLE):
// row that displays difference
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector
->setAccounts(new Collection([$account]))
->setTypes($types)
->setRange($attributes['startDate'], $attributes['endDate'])
->withoutBudget();
$journals = $collector->getJournals();

$journals = $this->popupHelper->balanceDifference($account, $attributes);
$budget->name = strval(trans('firefly.leftUnbalanced'));
$journals = $journals->filter(
function (Transaction $transaction) {
$tags = $transaction->transactionJournal->tags()->where('tagMode', 'balancingAct')->count();
if ($tags === 0) {
return true;
}

return false;
}
);
break;
case ($role === BalanceLine::ROLE_TAGROLE):
// row with tag info.
Expand Down

0 comments on commit ea98428

Please sign in to comment.