Smaller report. [skip ci]

This commit is contained in:
James Cole 2016-04-29 11:05:52 +02:00
parent d8b8f98738
commit baff9780de
2 changed files with 43 additions and 1 deletions

View File

@ -59,5 +59,13 @@ class Balance
return $this->balanceLines;
}
/**
* @param Collection $balanceLines
*/
public function setBalanceLines(Collection $balanceLines)
{
$this->balanceLines = $balanceLines;
}
}

View File

@ -28,7 +28,6 @@ use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Support\Collection;
/**
* Class BalanceReportHelper
*
@ -85,6 +84,9 @@ class BalanceReportHelper implements BalanceReportHelperInterface
$balance->addBalanceLine($this->createDifferenceBalanceLine($accounts, $spentData, $start, $end));
$balance->setBalanceHeader($header);
// remove budgets without expenses from balance lines:
$balance = $this->removeUnusedBudgets($balance);
return $balance;
}
@ -305,4 +307,36 @@ class BalanceReportHelper implements BalanceReportHelperInterface
return $tags;
}
/**
* @param Balance $balance
*
* @return Balance
*/
private function removeUnusedBudgets(Balance $balance): Balance
{
$set = $balance->getBalanceLines();
$newSet = new Collection;
/** @var BalanceLine $entry */
foreach ($set as $entry) {
if (!is_null($entry->getBudget()->id)) {
$sum = '0';
/** @var BalanceEntry $balanceEntry */
foreach ($entry->getBalanceEntries() as $balanceEntry) {
$sum = bcadd($sum, $balanceEntry->getSpent());
}
if (bccomp($sum, '0') === -1) {
$newSet->push($entry);
}
continue;
}
$newSet->push($entry);
}
$balance->setBalanceLines($newSet);
return $balance;
}
}