Start of better budget charts.

This commit is contained in:
James Cole
2016-04-24 20:00:20 +02:00
parent 93421b50f9
commit 2cfbfd8649
9 changed files with 59 additions and 80 deletions

View File

@@ -14,6 +14,7 @@ namespace FireflyIII\Helpers\Report;
use Carbon\Carbon;
use FireflyIII\Helpers\Collection\Budget as BudgetCollection;
use FireflyIII\Helpers\Collection\BudgetLine;
use FireflyIII\Models\Budget;
use FireflyIII\Models\LimitRepetition;
use Illuminate\Support\Collection;
@@ -106,6 +107,32 @@ class BudgetReportHelper implements BudgetReportHelperInterface
return $object;
}
/**
* @param Carbon $start
* @param Carbon $end
* @param Collection $accounts
*
* @return Collection
*/
public function getBudgetsWithExpenses(Carbon $start, Carbon $end, Collection $accounts): Collection
{
/** @var \FireflyIII\Repositories\Budget\BudgetRepositoryInterface $repository */
$repository = app('FireflyIII\Repositories\Budget\BudgetRepositoryInterface');
$budgets = $repository->getActiveBudgets();
$set = new Collection;
/** @var Budget $budget */
foreach ($budgets as $budget) {
$expenses = $repository->getExpensesPerDay($budget, $start, $end);
$total = strval($expenses->sum('dailyAmount'));
if (bccomp($total, '0') === -1) {
$set->push($budget);
}
}
return $set;
}
/**
* Take the array as returned by SingleCategoryRepositoryInterface::spentPerDay and SingleCategoryRepositoryInterface::earnedByDay
* and sum up everything in the array in the given range.