From 372189a1079ac957b5871945660bb31e0edba8ab Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 17 Aug 2014 08:57:08 +0200 Subject: [PATCH] Fixed a bug where the target date and start date could not be null [skip ci] --- .../Piggybank/EloquentPiggybankRepository.php | 3 +++ .../Piggybanks/EloquentPiggybankTrigger.php | 14 ++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/lib/Firefly/Storage/Piggybank/EloquentPiggybankRepository.php b/app/lib/Firefly/Storage/Piggybank/EloquentPiggybankRepository.php index 702d2341fd..ca2715586c 100644 --- a/app/lib/Firefly/Storage/Piggybank/EloquentPiggybankRepository.php +++ b/app/lib/Firefly/Storage/Piggybank/EloquentPiggybankRepository.php @@ -129,6 +129,9 @@ class EloquentPiggybankRepository implements PiggybankRepositoryInterface if ($data['reminder'] == 'none') { unset($data['reminder']); } + if($data['startdate'] == '') { + unset($data['startdate']); + } /** @var \Firefly\Storage\Account\AccountRepositoryInterface $accounts */ $accounts = \App::make('Firefly\Storage\Account\AccountRepositoryInterface'); diff --git a/app/lib/Firefly/Trigger/Piggybanks/EloquentPiggybankTrigger.php b/app/lib/Firefly/Trigger/Piggybanks/EloquentPiggybankTrigger.php index 73069c14c5..54f1888705 100644 --- a/app/lib/Firefly/Trigger/Piggybanks/EloquentPiggybankTrigger.php +++ b/app/lib/Firefly/Trigger/Piggybanks/EloquentPiggybankTrigger.php @@ -53,12 +53,18 @@ class EloquentPiggybankTrigger /** @var \PiggybankRepetition $rep */ foreach ($reps as $rep) { if ($rep->currentamount == 0) { - $sum = \Transaction::where('piggybank_id', $piggy->id)->leftJoin( + $query = \Transaction::where('piggybank_id', $piggy->id)->leftJoin( 'transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id' - )->where('transaction_journals.date', '>=', $rep->startdate->format('Y-m-d'))->where( + ); + if (!is_null($rep->startdate)) { + $query->where('transaction_journals.date', '>=', $rep->startdate->format('Y-m-d')); + } + if (!is_null($rep->targetdate)) { + $query->where( 'transaction_journals.date', '<=', $rep->targetdate->format('Y-m-d') - )->sum('transactions.amount'); - + ); + } + $sum = $query->sum('transactions.amount'); $rep->currentamount = floatval($sum); } $rep->save();