mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-16 18:25:00 -06:00
Added some code for reminders but most of its commented out.
This commit is contained in:
parent
f69598c6aa
commit
36cbb3d71f
@ -11,4 +11,5 @@ return [
|
||||
|
|
||||
*/
|
||||
'debug' => true,
|
||||
'log_level' => 'debug',
|
||||
];
|
@ -236,12 +236,9 @@ class PiggybankController extends BaseController
|
||||
/*
|
||||
* Number of reminders:
|
||||
*/
|
||||
|
||||
$amountPerReminder = $piggybank->amountPerReminder();
|
||||
$remindersCount = $piggybank->countFutureReminders();
|
||||
if ($remindersCount > 0) {
|
||||
$amountPerReminder = ($piggybank->targetamount - $piggybank->currentRelevantRep()->currentamount) / $remindersCount;
|
||||
} else {
|
||||
$amountPerReminder = ($piggybank->targetamount - $piggybank->currentRelevantRep()->currentamount);
|
||||
}
|
||||
|
||||
return View::make('piggybanks.show', compact('amountPerReminder', 'remindersCount', 'piggybank', 'events'))->with('title', 'Piggy banks')->with(
|
||||
'mainTitleIcon', 'fa-sort-amount-asc'
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
use FireflyIII\Exception\NotImplementedException;
|
||||
|
||||
/**
|
||||
* Class ReminderController
|
||||
@ -7,11 +8,34 @@
|
||||
class ReminderController extends BaseController
|
||||
{
|
||||
|
||||
public function __construct() {
|
||||
View::share('title','Reminders');
|
||||
View::share('mainTitleIcon','fa-lightbulb-o');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Reminder $reminder
|
||||
*/
|
||||
public function show(Reminder $reminder)
|
||||
{
|
||||
var_dump($reminder);
|
||||
throw new NotImplementedException;
|
||||
// $subTitle = $reminder->title;
|
||||
// $model = null; // related model.
|
||||
//
|
||||
// if(isset($reminder->data->model) && isset($reminder->data->type)) {
|
||||
// switch($reminder->data->type) {
|
||||
// case 'Test':
|
||||
// break;
|
||||
// case 'Piggybank':
|
||||
// break;
|
||||
// default:
|
||||
// throw new FireflyException('Cannot handle model of type '.$reminder->data->model);
|
||||
// break;
|
||||
// }
|
||||
// } else {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// return View::make('reminders.show',compact('reminder','title','subTitle'));
|
||||
}
|
||||
}
|
@ -52,6 +52,10 @@ class Piggybank implements CUD, CommonDatabaseCalls, PiggybankInterface
|
||||
$data['startdate'] = isset($data['startdate']) ? $data['startdate'] : Carbon::now()->format('Y-m-d');
|
||||
$data['targetdate'] = isset($data['targetdate']) && $data['targetdate'] != '' ? $data['targetdate'] : null;
|
||||
|
||||
if ($data['remind_me'] == 0) {
|
||||
$data['reminder'] = null;
|
||||
}
|
||||
|
||||
|
||||
$piggybank = new \Piggybank($data);
|
||||
if (!$piggybank->validate()) {
|
||||
@ -81,6 +85,11 @@ class Piggybank implements CUD, CommonDatabaseCalls, PiggybankInterface
|
||||
$model->order = isset($data['order']) ? $data['order'] : 0;
|
||||
$model->remind_me = isset($data['remind_me']) ? intval($data['remind_me']) : 0;
|
||||
$model->reminder = isset($data['reminder']) ? $data['reminder'] : 'month';
|
||||
|
||||
if ($model->remind_me == 0) {
|
||||
$model->reminder = null;
|
||||
}
|
||||
|
||||
if (!$model->validate()) {
|
||||
var_dump($model->errors());
|
||||
exit();
|
||||
|
@ -13,62 +13,103 @@ class Reminders
|
||||
{
|
||||
|
||||
|
||||
public function updateReminders()
|
||||
{
|
||||
$today = Carbon::now()->format('Y-m-d');
|
||||
$reminders = \Auth::user()->reminders()
|
||||
->where('startdate', '<=', $today)
|
||||
->where('enddate', '>=', $today)
|
||||
->where('active', '=', 1)
|
||||
->get();
|
||||
$hasTestReminder = false;
|
||||
|
||||
/** @var \Reminder $reminder */
|
||||
foreach ($reminders as $reminder) {
|
||||
if ($reminder->title == 'Test' && intval($reminder->active) == 1) {
|
||||
$hasTestReminder = true;
|
||||
}
|
||||
}
|
||||
if (!$hasTestReminder) {
|
||||
$reminder = new \Reminder;
|
||||
$reminder->user()->associate(\Auth::user());
|
||||
$reminder->title = 'Test';
|
||||
$reminder->startdate = new Carbon;
|
||||
$reminder->active = 1;
|
||||
$reminder->enddate = Carbon::now()->addDays(4);
|
||||
|
||||
$data = ['type' => 'Test',
|
||||
'action_uri' => route('index'),
|
||||
'text' => 'hello!',
|
||||
'amount' => 50,
|
||||
'icon' => 'fa-bomb'
|
||||
];
|
||||
$reminder->data = $data;
|
||||
$reminder->save();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getReminders()
|
||||
{
|
||||
$reminders = \Auth::user()->reminders()->where('active', true)->get();
|
||||
$return = [];
|
||||
/** @var \Reminder $reminder */
|
||||
foreach ($reminders as $reminder) {
|
||||
$set = [
|
||||
'id' => $reminder->id
|
||||
];
|
||||
switch ($reminder->data->type) {
|
||||
case 'Test':
|
||||
$set['title'] = $reminder->title;
|
||||
$set['icon'] = $reminder->data->icon;
|
||||
$set['text'] = mf(floatval($reminder->data->amount));
|
||||
return [];
|
||||
// $reminders = \Auth::user()->reminders()->where('active', true)->get();
|
||||
// $return = [];
|
||||
// /** @var \Reminder $reminder */
|
||||
// foreach ($reminders as $reminder) {
|
||||
// $set = ['id' => $reminder->id];
|
||||
// switch ($reminder->data->type) {
|
||||
// case 'Test':
|
||||
// case 'Piggybank':
|
||||
// $set['title'] = $reminder->title;
|
||||
// $set['icon'] = $reminder->data->icon;
|
||||
// $set['text'] = mf(floatval($reminder->data->amount));
|
||||
// break;
|
||||
//
|
||||
// }
|
||||
// $return[] = $set;
|
||||
// }
|
||||
//
|
||||
// return $return;
|
||||
}
|
||||
|
||||
public function updateReminders()
|
||||
{
|
||||
// $today = Carbon::now()->format('Y-m-d');
|
||||
// $reminders = \Auth::user()->reminders()->where('startdate', '<=', $today)->where('enddate', '>=', $today)->where('active', '=', 1)->get();
|
||||
//
|
||||
// /*
|
||||
// * Find all piggy banks in the current set of reminders.
|
||||
// */
|
||||
// $this->updatePiggyBankReminders();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function updatePiggyBankReminders()
|
||||
{
|
||||
// $piggyBanks = \Auth::user()->piggybanks()->where('targetdate', '>=', Carbon::now()->format('Y-m-d'))->whereNotNull('reminder')->where('remind_me', 1)
|
||||
// ->get();
|
||||
//
|
||||
// /** @var \FireflyIII\Shared\Toolkit\Date $dateKit */
|
||||
// $dateKit = \App::make('FireflyIII\Shared\Toolkit\Date');
|
||||
//
|
||||
// $today = Carbon::now();
|
||||
//
|
||||
//
|
||||
// /** @var \Piggybank $piggyBank */
|
||||
// foreach ($piggyBanks as $piggyBank) {
|
||||
// /*
|
||||
// * Loop from today until end?
|
||||
// */
|
||||
// $end = $piggyBank->targetdate;
|
||||
// $start = Carbon::now();
|
||||
//
|
||||
// /*
|
||||
// * Create a reminder for the current period:
|
||||
// */
|
||||
// /*
|
||||
// * * type: Piggybank, Test
|
||||
// * action_uri: where to go when the user wants to do this?
|
||||
// * text: full text to present to user
|
||||
// * amount: any relevant amount.
|
||||
// * model: id of relevant model.
|
||||
// */
|
||||
//
|
||||
// while ($start <= $end) {
|
||||
// $currentEnd = $dateKit->addPeriod(clone $start, $piggyBank->reminder, 0);
|
||||
//
|
||||
// $count = \Reminder::where('startdate',$start->format('Y-m-d'))->where('enddate',$currentEnd->format('Y-m-d'))->count();
|
||||
// if ($start >= $today && $start <= $today && $count == 0) {
|
||||
//
|
||||
//
|
||||
// $reminder = new \Reminder;
|
||||
// $reminder->active = 1;
|
||||
// $reminder->user()->associate(\Auth::user());
|
||||
// $reminder->startdate = clone $start;
|
||||
// $reminder->enddate = $currentEnd;
|
||||
// $reminder->title = 'Add money to "'.e($piggyBank->name).'"';
|
||||
// $amount = $piggyBank->amountPerReminder();
|
||||
// $data = ['type' => 'Piggybank', 'icon' => 'fa-sort-amount-asc', 'text' =>
|
||||
// 'If you want to save up the full amount of "' . e($piggyBank->name) . '", add ' . mf($amount) . ' to account "' . e(
|
||||
// $piggyBank->account->name
|
||||
// ) . '". Don\'t forget to connect the transfer to this piggy bank!', 'amount' => $amount, 'model' => $piggyBank->id
|
||||
//
|
||||
// ];
|
||||
// $reminder->data = $data;
|
||||
// $reminder->save();
|
||||
// }
|
||||
// $start = $dateKit->addPeriod($start, $piggyBank->reminder, 0);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
$return[] = $set;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
@ -6,42 +6,42 @@ use LaravelBook\Ardent\Ardent as Ardent;
|
||||
/**
|
||||
* Piggybank
|
||||
*
|
||||
* @property integer $id
|
||||
* @property \Carbon\Carbon $created_at
|
||||
* @property \Carbon\Carbon $updated_at
|
||||
* @property integer $account_id
|
||||
* @property string $name
|
||||
* @property float $targetamount
|
||||
* @property \Carbon\Carbon $startdate
|
||||
* @property \Carbon\Carbon $targetdate
|
||||
* @property boolean $repeats
|
||||
* @property string $rep_length
|
||||
* @property integer $rep_every
|
||||
* @property integer $rep_times
|
||||
* @property string $reminder
|
||||
* @property integer $reminder_skip
|
||||
* @property integer $order
|
||||
* @property boolean $remind_me
|
||||
* @property-read \Account $account
|
||||
* @property integer $id
|
||||
* @property \Carbon\Carbon $created_at
|
||||
* @property \Carbon\Carbon $updated_at
|
||||
* @property integer $account_id
|
||||
* @property string $name
|
||||
* @property float $targetamount
|
||||
* @property \Carbon\Carbon $startdate
|
||||
* @property \Carbon\Carbon $targetdate
|
||||
* @property boolean $repeats
|
||||
* @property string $rep_length
|
||||
* @property integer $rep_every
|
||||
* @property integer $rep_times
|
||||
* @property string $reminder
|
||||
* @property integer $reminder_skip
|
||||
* @property integer $order
|
||||
* @property boolean $remind_me
|
||||
* @property-read \Account $account
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankRepetition[] $piggybankrepetitions
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankEvent[] $piggybankevents
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Transaction[] $transactions
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereId($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereAccountId($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereName($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereTargetamount($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereStartdate($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereTargetdate($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepeats($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepLength($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepEvery($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepTimes($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereReminder($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereReminderSkip($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereOrder($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRemindMe($value)
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankEvent[] $piggybankevents
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Transaction[] $transactions
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereId($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereAccountId($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereName($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereTargetamount($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereStartdate($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereTargetdate($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepeats($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepLength($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepEvery($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepTimes($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereReminder($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereReminderSkip($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereOrder($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRemindMe($value)
|
||||
*/
|
||||
class Piggybank extends Ardent
|
||||
{
|
||||
@ -71,24 +71,14 @@ class Piggybank extends Ardent
|
||||
return $this->belongsTo('Account');
|
||||
}
|
||||
|
||||
public function amountPerReminder() {
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
public function countFutureReminders()
|
||||
{
|
||||
/** @var \FireflyIII\Shared\Toolkit\Date $dateKit */
|
||||
$dateKit = App::make('FireflyIII\Shared\Toolkit\Date');
|
||||
|
||||
if (is_null($this->reminder)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$start = new Carbon;
|
||||
$end = !is_null($this->targetdate) ? clone $this->targetdate : new Carbon;
|
||||
$reminders = 0;
|
||||
while ($start <= $end) {
|
||||
$reminders++;
|
||||
$start = $dateKit->addPeriod($start, $this->reminder, $this->reminder_skip);
|
||||
}
|
||||
|
||||
return $reminders;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function createRepetition(Carbon $start = null, Carbon $target = null)
|
||||
@ -99,7 +89,6 @@ class Piggybank extends Ardent
|
||||
$rep->targetdate = $target;
|
||||
$rep->currentamount = 0;
|
||||
$rep->save();
|
||||
\Event::fire('piggybanks.repetition', [$rep]);
|
||||
|
||||
return $rep;
|
||||
}
|
||||
|
@ -57,6 +57,7 @@ class Reminder extends Ardent
|
||||
* action_uri: where to go when the user wants to do this?
|
||||
* text: full text to present to user
|
||||
* amount: any relevant amount.
|
||||
* model: id of relevant model.
|
||||
*
|
||||
* @param $value
|
||||
*
|
||||
|
@ -71,14 +71,6 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
||||
return $this->hasMany('Budget');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
public function reminders()
|
||||
{
|
||||
return $this->hasMany('Reminder');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
|
@ -14,6 +14,7 @@
|
||||
<ul class="nav navbar-top-links navbar-right">
|
||||
|
||||
<!-- reminders -->
|
||||
{{--
|
||||
@if(count($reminders) > 0)
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
@ -37,6 +38,7 @@
|
||||
<!-- /.dropdown-alerts -->
|
||||
</li>
|
||||
@endif
|
||||
--}}
|
||||
<!-- /.dropdown -->
|
||||
|
||||
<li class="dropdown">
|
||||
|
15
app/views/reminders/show.blade.php
Normal file
15
app/views/reminders/show.blade.php
Normal file
@ -0,0 +1,15 @@
|
||||
@extends('layouts.default')
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Something
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{{$reminder->data->text}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
Loading…
Reference in New Issue
Block a user