New tests for the repeated expenses.

This commit is contained in:
James Cole
2014-12-30 17:27:31 +01:00
parent 0acd75a24f
commit 1f0e692ee2
5 changed files with 198 additions and 35 deletions

View File

@@ -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(
[

View File

@@ -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);

View File

@@ -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')])}}
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">