From 4004c53e1bafdaa03e64113d8e2eb5eb18444d86 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 12 Dec 2015 20:16:30 +0100 Subject: [PATCH] Fix negative amount thing. --- app/Helpers/Collection/Expense.php | 12 +++++++++++- app/Helpers/Report/ReportHelper.php | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/Helpers/Collection/Expense.php b/app/Helpers/Collection/Expense.php index d18d9f53fc..4983e38ba6 100644 --- a/app/Helpers/Collection/Expense.php +++ b/app/Helpers/Collection/Expense.php @@ -55,8 +55,18 @@ class Expense */ public function addToTotal($add) { - $add = strval(round($add, 2)); bcscale(2); + + + $add = strval(round($add, 2)); + if (bccomp('0', $add) === 1) { + $add = bcmul($add, '-1'); + } + + // if amount is positive, the original transaction + // was a transfer. But since this is an expense report, + // that amount must be negative. + $this->total = bcadd($this->total, $add); } diff --git a/app/Helpers/Report/ReportHelper.php b/app/Helpers/Report/ReportHelper.php index 8011f089af..4efd0f638e 100644 --- a/app/Helpers/Report/ReportHelper.php +++ b/app/Helpers/Report/ReportHelper.php @@ -515,7 +515,7 @@ class ReportHelper implements ReportHelperInterface $object = new Expense; $set = $this->query->expenseInPeriodCorrectedForList($start, $end, $accounts); foreach ($set as $entry) { - $object->addToTotal($entry->amount); + $object->addToTotal($entry->amount); // can be positive, if it's a transfer $object->addOrCreateExpense($entry); }