diff --git a/app/database/seeds/TestContentSeeder.php b/app/database/seeds/TestContentSeeder.php index 525d6fd4b6..111ca5bb5f 100644 --- a/app/database/seeds/TestContentSeeder.php +++ b/app/database/seeds/TestContentSeeder.php @@ -194,6 +194,41 @@ class TestContentSeeder extends Seeder ] ); + // recurring transaction + $recurring = PiggyBank::create( + [ + 'account_id' => $savings->id, + 'name' => 'Nieuwe kleding', + 'targetamount' => 1000, + 'startdate' => Carbon::now()->subMonth()->format('Y-m-d'), + 'targetdate' => Carbon::now()->format('Y-m-d'), + 'repeats' => 1, + 'rep_length' => 'month', + 'rep_every' => 0, + 'rep_times' => 0, + 'reminder' => 'month', + 'reminder_skip' => 0, + 'remind_me' => 1, + 'order' => 0, + ] + ); + PiggyBankRepetition::create( + [ + 'piggy_bank_id' => $recurring->id, + 'startdate' => Carbon::now()->format('Y-m-d'), + 'targetdate' => Carbon::now()->addMonth()->format('Y-m-d'), + 'currentamount' => 0 + ] + ); + PiggyBankRepetition::create( + [ + 'piggy_bank_id' => $recurring->id, + 'startdate' => Carbon::now()->subMonth()->format('Y-m-d'), + 'targetdate' => Carbon::now()->format('Y-m-d'), + 'currentamount' => 0 + ] + ); + // bill $firstBill = \Bill::create( [ diff --git a/app/models/Piggybank.php b/app/models/Piggybank.php index 9f5b6a942f..57f497fdac 100644 --- a/app/models/Piggybank.php +++ b/app/models/Piggybank.php @@ -9,6 +9,9 @@ use Watson\Validating\ValidatingTrait; class PiggyBank extends Eloquent { use ValidatingTrait; + public $fillable + = ['account_id', 'name', 'targetamount', 'startdate', 'targetdate', 'repeats', 'rep_length', 'rep_every', 'rep_times', 'reminder', 'reminder_skip', + 'remind_me', 'order']; protected $rules = ['account_id' => 'required|exists:accounts,id', // link to Account 'name' => 'required|between:1,255', // name @@ -23,9 +26,6 @@ class PiggyBank extends Eloquent 'reminder_skip' => 'required|min:0|max:100', // every week? every 2 months? 'remind_me' => 'required|boolean', 'order' => 'required:min:1', // not yet used. ]; - public $fillable - = ['account_id', 'name', 'targetamount', 'startdate', 'targetdate', 'repeats', 'rep_length', 'rep_every', 'rep_times', 'reminder', 'reminder_skip', - 'remind_me', 'order']; /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo @@ -95,7 +95,7 @@ class PiggyBank extends Eloquent return $rep; } else { - $query = $this->piggyBankRepetitions()->where( + $query = $this->piggyBankRepetitions()->where( function ($q) { $q->where( @@ -105,28 +105,28 @@ class PiggyBank extends Eloquent function ($q) { $today = new Carbon; $q->whereNull('startdate'); - $q->orWhere('startdate', '<=', $today->format('Y-m-d')); + $q->orWhere('startdate', '<=', $today->format('Y-m-d 00:00:00')); } )->where( function ($q) { $today = new Carbon; $q->whereNull('targetdate'); - $q->orWhere('targetdate', '>=', $today->format('Y-m-d')); + $q->orWhere('targetdate', '>=', $today->format('Y-m-d 00:00:00')); } ); } )->orWhere( function ($q) { $today = new Carbon; - $q->where('startdate', '>=', $today->format('Y-m-d')); - $q->where('targetdate', '>=', $today->format('Y-m-d')); + $q->where('startdate', '>=', $today->format('Y-m-d 00:00:00')); + $q->where('targetdate', '>=', $today->format('Y-m-d 00:00:00')); } ); } - ) - ->orderBy('startdate', 'ASC'); - $result = $query->first(['piggy_bank_repetitions.*']); + )->orderBy('startdate', 'ASC'); + $result = $query->first(['piggy_bank_repetitions.*']); + \Log::debug('Result is null: ' . boolstr(is_null($result))); $this->currentRep = $result; \Log::debug('Found relevant rep in currentRelevantRep(): ' . $result->id); diff --git a/app/views/repeatedexpense/create.blade.php b/app/views/repeatedexpense/create.blade.php index 3a051bb0c4..374579360d 100644 --- a/app/views/repeatedexpense/create.blade.php +++ b/app/views/repeatedexpense/create.blade.php @@ -1,7 +1,7 @@ @extends('layouts.default') @section('content') {{ Breadcrumbs::renderIfExists(Route::getCurrentRoute()->getName()) }} -{{Form::open(['class' => 'form-horizontal','url' => route('repeated.store')])}} +{{Form::open(['class' => 'form-horizontal','id' => 'store','url' => route('repeated.store')])}}