Some expansion on the index of repeated expenses, and the first reference to the show page.

This commit is contained in:
James Cole 2014-11-23 06:29:29 +01:00
parent 7336367eff
commit 4456ef2326
5 changed files with 23 additions and 10 deletions

View File

@ -46,29 +46,35 @@ class RepeatedExpenseController extends BaseController
throw new FireflyException('Cannot handle "' . $piggyBank->reminder . '" reminders for repeated expenses');
break;
case 'month':
$piggyBank->parts = $piggyBank->currentRep->startdate->diffInMonths($piggyBank->currentRep->targetdate);
$start = clone $piggyBank->currentRep->startdate;
$start->startOfMonth();
$end = clone $piggyBank->currentRep->targetdate;
$end->endOfMonth();
$piggyBank->parts = $start->diffInMonths($end);
unset($start, $end);
break;
}
} else {
$piggyBank->parts = 1;
}
// number of bars:
$piggyBank->barCount = floor(12 / $piggyBank->parts);
$piggyBank->barCount = floor(12 / $piggyBank->parts) == 0 ? 1 : floor(12 / $piggyBank->parts);
$amountPerBar = floatval($piggyBank->targetamount) / $piggyBank->parts;
$currentAmount = floatval($amountPerBar);
$bars = [];
$currentDate = clone $piggyBank->currentRep->startdate;
for ($i = 0; $i < $piggyBank->parts; $i++) {
// niet elke keer een andere dinges pakken? om target te redden?
if (!is_null($piggyBank->reminder)) {
$currentDate = \DateKit::addPeriod($currentDate, $piggyBank->reminder, 0);
}
$bars[] = [
'amount' => $currentAmount,
'date' => $currentDate
];
if (!is_null($piggyBank->reminder)) {
$currentDate = \DateKit::addPeriod($currentDate, $piggyBank->reminder, 0);
}
$currentAmount += $amountPerBar;
}

View File

@ -205,10 +205,14 @@ class Piggybank
*/
public function validateRepeatedExpenses()
{
if(!\Auth::check()) {
return;
}
/** @var \FireflyIII\Database\RepeatedExpense $repository */
$repository = \App::make('FireflyIII\Database\RepeatedExpense');
$list = $repository->get();
$list = $repository->get();
$today = Carbon::now();
/** @var \Piggybank $entry */
foreach ($list as $entry) {
@ -225,7 +229,7 @@ class Piggybank
$repetition->save();
}
// then continue and do something in the current relevant timeframe.
$today = Carbon::now();
$currentTarget = clone $target;
$currentStart = null;
while ($currentTarget < $today) {
@ -243,7 +247,6 @@ class Piggybank
}
}
}
}

View File

@ -39,6 +39,7 @@ class Date
case 'monthly':
$date->addMonths($add);
break;
case 'quarter':
case 'quarterly':
$months = $add * 3;
$date->addMonths($months);
@ -142,6 +143,7 @@ class Date
case 'monthly':
$date->startOfMonth();
break;
case 'quarter':
case 'quarterly':
$date->firstOfQuarter();
break;
@ -184,6 +186,7 @@ class Date
case 'monthly':
$date->subMonths($subtract);
break;
case 'quarter':
case 'quarterly':
$months = $subtract * 3;
$date->subMonths($months);

View File

@ -200,6 +200,7 @@ Route::group(
// repeated expenses controller:
Route::get('/repeatedexpenses', ['uses' => 'RepeatedExpenseController@index', 'as' => 'repeated.index']);
Route::get('/repeatedexpenses/create', ['uses' => 'RepeatedExpenseController@create', 'as' => 'repeated.create']);
Route::get('/repeatedexpenses/show/{repeated}', ['uses' => 'RepeatedExpenseController@show', 'as' => 'repeated.show']);
// report controller:
Route::get('/reports', ['uses' => 'ReportController@index', 'as' => 'reports.index']);

View File

@ -18,7 +18,7 @@
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<a href="#" title="{{{$entry->name}}}">{{{$entry->name}}}</a> ({{mf($entry->currentRep->currentamount)}})
<a href="{{route('repeated.show',$entry->id)}}" title="{{{$entry->name}}}">{{{$entry->name}}}</a> ({{mf($entry->currentRep->currentamount)}})
</div>
<div class="panel-body">
<div class="row">