Small optimizations to the reminders

This commit is contained in:
James Cole 2015-03-08 09:00:04 +01:00
parent 9b9bd11ebb
commit d9028ed9b7
4 changed files with 63 additions and 22 deletions

View File

@ -39,9 +39,14 @@ class ReminderHelper implements ReminderHelperInterface
$perReminder = $left / count($ranges); $perReminder = $left / count($ranges);
} else { } else {
$perReminder = null; $perReminder = null;
$ranges = [];
$left = 0;
} }
$metaData = [ $metaData = [
'perReminder' => $perReminder 'perReminder' => $perReminder,
'rangesCount' => count($ranges),
'ranges' => $ranges,
'leftToSave' => $left,
]; ];
@ -97,7 +102,7 @@ class ReminderHelper implements ReminderHelperInterface
$start = $piggyBank->targetdate; $start = $piggyBank->targetdate;
$end = $piggyBank->startdate; $end = $piggyBank->startdate;
while ($start >= $end) { while ($start > $end) {
$currentEnd = clone $start; $currentEnd = clone $start;
$start = Navigation::subtractPeriod($start, $piggyBank->reminder, 1); $start = Navigation::subtractPeriod($start, $piggyBank->reminder, 1);
$currentStart = clone $start; $currentStart = clone $start;
@ -129,6 +134,9 @@ class ReminderHelper implements ReminderHelperInterface
{ {
/** @var PiggyBank $piggyBank */ /** @var PiggyBank $piggyBank */
$piggyBank = $reminder->remindersable; $piggyBank = $reminder->remindersable;
if(is_null($piggyBank)) {
return 'Piggy bank no longer exists.';
}
if (is_null($piggyBank->targetdate)) { if (is_null($piggyBank->targetdate)) {
return 'Add money to this piggy bank to reach your target of ' . Amount::format($piggyBank->targetamount); return 'Add money to this piggy bank to reach your target of ' . Amount::format($piggyBank->targetamount);

View File

@ -66,6 +66,14 @@ class Reminders
} }
} }
// delete invalid reminders
$reminders = $this->auth->user()->reminders()->get();
foreach($reminders as $reminder) {
if(is_null($reminder->remindersable)) {
$reminder->delete();
}
}
// get and list active reminders: // get and list active reminders:

View File

@ -301,24 +301,50 @@ class TestDataSeeder extends Seeder
PiggyBankEvent::create(['piggy_bank_id' => $newClothes->id, 'date' => $this->som, 'amount' => 100]); PiggyBankEvent::create(['piggy_bank_id' => $newClothes->id, 'date' => $this->som, 'amount' => 100]);
// weekly reminder piggy bank /*
$weekly = PiggyBank::create( * New: create no less than eight piggy banks that
[ * create all sorts of reminders
'account_id' => $savings->id, */
'name' => 'Weekly reminder for clothes', $list = ['week','quarter','month','year'];
'targetamount' => 2000, $nextYear = clone $this->_startOfMonth;
'startdate' => $this->som, $nextYear->addYear();
'targetdate' => $next, foreach($list as $entry) {
'repeats' => 0,
'rep_length' => null, PiggyBank::create(
'rep_every' => 0, [
'rep_times' => null, 'account_id' => $savings->id,
'reminder' => 'week', 'name' => $entry.' piggy bank with target date.',
'reminder_skip' => 0, 'targetamount' => 1000,
'remind_me' => 1, 'startdate' => $this->som,
'order' => 0, 'targetdate' => $nextYear,
] 'repeats' => 0,
); 'rep_length' => null,
'rep_every' => 0,
'rep_times' => null,
'reminder' => $entry,
'reminder_skip' => 0,
'remind_me' => 1,
'order' => 0,
]
);
PiggyBank::create(
[
'account_id' => $savings->id,
'name' => $entry.' piggy bank without target date.',
'targetamount' => 1000,
'startdate' => $this->som,
'targetdate' => null,
'repeats' => 0,
'rep_length' => null,
'rep_every' => 0,
'rep_times' => null,
'reminder' => $entry,
'reminder_skip' => 0,
'remind_me' => 1,
'order' => 0,
]
);
}
} }
/** /**

View File

@ -15,10 +15,9 @@
</div> </div>
<div class="panel-body"> <div class="panel-body">
<p> <p>
Active between {{$reminder->startdate->format('jS F Y')}} This reminder is active between {{$reminder->startdate->format('jS F Y')}}
and {{$reminder->enddate->format('jS F Y')}}. and {{$reminder->enddate->format('jS F Y')}}.
</p> </p>
@if(isset($reminder->description)) @if(isset($reminder->description))
<p>{!! $reminder->description !!}</p> <p>{!! $reminder->description !!}</p>
@endif @endif