mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-25 06:51:08 +00:00
This fixes what turns out to be an incredibly inaccurate chart.
This commit is contained in:
@@ -65,20 +65,17 @@ class BudgetController extends Controller
|
|||||||
$last = Navigation::endOfX($last, $range, $final);
|
$last = Navigation::endOfX($last, $range, $final);
|
||||||
$entries = new Collection;
|
$entries = new Collection;
|
||||||
// get all expenses:
|
// get all expenses:
|
||||||
$set = $repository->getExpensesPerMonth($budget, $first, $last);
|
$spentArray = $repository->spentPerDay($budget, $first, $last);
|
||||||
|
|
||||||
while ($first < $last) {
|
while ($first < $last) {
|
||||||
$monthFormatted = $first->format('Y-m');
|
|
||||||
|
|
||||||
$filtered = $set->filter(
|
// periodspecific dates:
|
||||||
function (Budget $obj) use ($monthFormatted) {
|
$currentStart = Navigation::startOfPeriod($first, $range);
|
||||||
return $obj->dateFormatted == $monthFormatted;
|
$currentEnd = Navigation::endOfPeriod($first, $range);
|
||||||
}
|
$spent = $this->getSumOfRange($currentStart, $currentEnd, $spentArray);
|
||||||
);
|
$entry = [$first, ($spent * -1)];
|
||||||
$spent = is_null($filtered->first()) ? '0' : $filtered->first()->monthlyAmount;
|
|
||||||
|
|
||||||
$entries->push([$first, round(($spent * -1), 2)]);
|
|
||||||
|
|
||||||
|
$entries->push($entry);
|
||||||
$first = Navigation::addPeriod($first, $range, 0);
|
$first = Navigation::addPeriod($first, $range, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -370,39 +370,6 @@ class BudgetRepository extends ComponentRepository implements BudgetRepositoryIn
|
|||||||
return $set;
|
return $set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the expenses for this budget grouped per month, with the date
|
|
||||||
* in "dateFormatted" (a string, not a Carbon) and the amount in "dailyAmount".
|
|
||||||
*
|
|
||||||
* @param Budget $budget
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return Collection
|
|
||||||
*/
|
|
||||||
public function getExpensesPerMonth(Budget $budget, Carbon $start, Carbon $end)
|
|
||||||
{
|
|
||||||
$set = Auth::user()->budgets()
|
|
||||||
->leftJoin('budget_transaction_journal', 'budget_transaction_journal.budget_id', '=', 'budgets.id')
|
|
||||||
->leftJoin('transaction_journals', 'budget_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id')
|
|
||||||
->leftJoin('transactions', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
|
||||||
->where('transaction_journals.date', '>=', $start->format('Y-m-d'))
|
|
||||||
->where('transaction_journals.date', '<=', $end->format('Y-m-d'))
|
|
||||||
->whereNull('transaction_journals.deleted_at')
|
|
||||||
->where('budgets.id', $budget->id)
|
|
||||||
->where('transactions.amount', '<', 0)
|
|
||||||
->groupBy('dateFormatted')
|
|
||||||
->orderBy('transaction_journals.date')
|
|
||||||
->get(
|
|
||||||
[
|
|
||||||
DB::raw('DATE_FORMAT(`transaction_journals`.`date`, "%Y-%m") AS `dateFormatted`'),
|
|
||||||
DB::raw('SUM(`transactions`.`amount`) as `monthlyAmount`'),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
return $set;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Budget $budget
|
* @param Budget $budget
|
||||||
*
|
*
|
||||||
|
@@ -136,18 +136,6 @@ interface BudgetRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function getExpensesPerDay(Budget $budget, Carbon $start, Carbon $end);
|
public function getExpensesPerDay(Budget $budget, Carbon $start, Carbon $end);
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the expenses for this budget grouped per month, with the date
|
|
||||||
* in "date" (a string, not a Carbon) and the amount in "dailyAmount".
|
|
||||||
*
|
|
||||||
* @param Budget $budget
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return Collection
|
|
||||||
*/
|
|
||||||
public function getExpensesPerMonth(Budget $budget, Carbon $start, Carbon $end);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Budget $budget
|
* @param Budget $budget
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user