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,
|
'debug' => true,
|
||||||
|
'log_level' => 'debug',
|
||||||
];
|
];
|
@ -236,12 +236,9 @@ class PiggybankController extends BaseController
|
|||||||
/*
|
/*
|
||||||
* Number of reminders:
|
* Number of reminders:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$amountPerReminder = $piggybank->amountPerReminder();
|
||||||
$remindersCount = $piggybank->countFutureReminders();
|
$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(
|
return View::make('piggybanks.show', compact('amountPerReminder', 'remindersCount', 'piggybank', 'events'))->with('title', 'Piggy banks')->with(
|
||||||
'mainTitleIcon', 'fa-sort-amount-asc'
|
'mainTitleIcon', 'fa-sort-amount-asc'
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
use FireflyIII\Exception\NotImplementedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ReminderController
|
* Class ReminderController
|
||||||
@ -7,11 +8,34 @@
|
|||||||
class ReminderController extends BaseController
|
class ReminderController extends BaseController
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
View::share('title','Reminders');
|
||||||
|
View::share('mainTitleIcon','fa-lightbulb-o');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Reminder $reminder
|
* @param Reminder $reminder
|
||||||
*/
|
*/
|
||||||
public function show(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['startdate'] = isset($data['startdate']) ? $data['startdate'] : Carbon::now()->format('Y-m-d');
|
||||||
$data['targetdate'] = isset($data['targetdate']) && $data['targetdate'] != '' ? $data['targetdate'] : null;
|
$data['targetdate'] = isset($data['targetdate']) && $data['targetdate'] != '' ? $data['targetdate'] : null;
|
||||||
|
|
||||||
|
if ($data['remind_me'] == 0) {
|
||||||
|
$data['reminder'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$piggybank = new \Piggybank($data);
|
$piggybank = new \Piggybank($data);
|
||||||
if (!$piggybank->validate()) {
|
if (!$piggybank->validate()) {
|
||||||
@ -81,6 +85,11 @@ class Piggybank implements CUD, CommonDatabaseCalls, PiggybankInterface
|
|||||||
$model->order = isset($data['order']) ? $data['order'] : 0;
|
$model->order = isset($data['order']) ? $data['order'] : 0;
|
||||||
$model->remind_me = isset($data['remind_me']) ? intval($data['remind_me']) : 0;
|
$model->remind_me = isset($data['remind_me']) ? intval($data['remind_me']) : 0;
|
||||||
$model->reminder = isset($data['reminder']) ? $data['reminder'] : 'month';
|
$model->reminder = isset($data['reminder']) ? $data['reminder'] : 'month';
|
||||||
|
|
||||||
|
if ($model->remind_me == 0) {
|
||||||
|
$model->reminder = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$model->validate()) {
|
if (!$model->validate()) {
|
||||||
var_dump($model->errors());
|
var_dump($model->errors());
|
||||||
exit();
|
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()
|
public function getReminders()
|
||||||
{
|
{
|
||||||
$reminders = \Auth::user()->reminders()->where('active', true)->get();
|
return [];
|
||||||
$return = [];
|
// $reminders = \Auth::user()->reminders()->where('active', true)->get();
|
||||||
/** @var \Reminder $reminder */
|
// $return = [];
|
||||||
foreach ($reminders as $reminder) {
|
// /** @var \Reminder $reminder */
|
||||||
$set = [
|
// foreach ($reminders as $reminder) {
|
||||||
'id' => $reminder->id
|
// $set = ['id' => $reminder->id];
|
||||||
];
|
// switch ($reminder->data->type) {
|
||||||
switch ($reminder->data->type) {
|
// case 'Test':
|
||||||
case 'Test':
|
// case 'Piggybank':
|
||||||
$set['title'] = $reminder->title;
|
// $set['title'] = $reminder->title;
|
||||||
$set['icon'] = $reminder->data->icon;
|
// $set['icon'] = $reminder->data->icon;
|
||||||
$set['text'] = mf(floatval($reminder->data->amount));
|
// $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
|
* Piggybank
|
||||||
*
|
*
|
||||||
* @property integer $id
|
* @property integer $id
|
||||||
* @property \Carbon\Carbon $created_at
|
* @property \Carbon\Carbon $created_at
|
||||||
* @property \Carbon\Carbon $updated_at
|
* @property \Carbon\Carbon $updated_at
|
||||||
* @property integer $account_id
|
* @property integer $account_id
|
||||||
* @property string $name
|
* @property string $name
|
||||||
* @property float $targetamount
|
* @property float $targetamount
|
||||||
* @property \Carbon\Carbon $startdate
|
* @property \Carbon\Carbon $startdate
|
||||||
* @property \Carbon\Carbon $targetdate
|
* @property \Carbon\Carbon $targetdate
|
||||||
* @property boolean $repeats
|
* @property boolean $repeats
|
||||||
* @property string $rep_length
|
* @property string $rep_length
|
||||||
* @property integer $rep_every
|
* @property integer $rep_every
|
||||||
* @property integer $rep_times
|
* @property integer $rep_times
|
||||||
* @property string $reminder
|
* @property string $reminder
|
||||||
* @property integer $reminder_skip
|
* @property integer $reminder_skip
|
||||||
* @property integer $order
|
* @property integer $order
|
||||||
* @property boolean $remind_me
|
* @property boolean $remind_me
|
||||||
* @property-read \Account $account
|
* @property-read \Account $account
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankRepetition[] $piggybankrepetitions
|
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankRepetition[] $piggybankrepetitions
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankEvent[] $piggybankevents
|
* @property-read \Illuminate\Database\Eloquent\Collection|\PiggybankEvent[] $piggybankevents
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Transaction[] $transactions
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Transaction[] $transactions
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereId($value)
|
* @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 whereCreatedAt($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereUpdatedAt($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 whereAccountId($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereName($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 whereTargetamount($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereStartdate($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 whereTargetdate($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepeats($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 whereRepLength($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRepEvery($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 whereRepTimes($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereReminder($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 whereReminderSkip($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereOrder($value)
|
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereOrder($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRemindMe($value)
|
* @method static \Illuminate\Database\Query\Builder|\Piggybank whereRemindMe($value)
|
||||||
*/
|
*/
|
||||||
class Piggybank extends Ardent
|
class Piggybank extends Ardent
|
||||||
{
|
{
|
||||||
@ -71,24 +71,14 @@ class Piggybank extends Ardent
|
|||||||
return $this->belongsTo('Account');
|
return $this->belongsTo('Account');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function amountPerReminder() {
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function countFutureReminders()
|
public function countFutureReminders()
|
||||||
{
|
{
|
||||||
/** @var \FireflyIII\Shared\Toolkit\Date $dateKit */
|
return 0;
|
||||||
$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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createRepetition(Carbon $start = null, Carbon $target = null)
|
public function createRepetition(Carbon $start = null, Carbon $target = null)
|
||||||
@ -99,7 +89,6 @@ class Piggybank extends Ardent
|
|||||||
$rep->targetdate = $target;
|
$rep->targetdate = $target;
|
||||||
$rep->currentamount = 0;
|
$rep->currentamount = 0;
|
||||||
$rep->save();
|
$rep->save();
|
||||||
\Event::fire('piggybanks.repetition', [$rep]);
|
|
||||||
|
|
||||||
return $rep;
|
return $rep;
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,7 @@ class Reminder extends Ardent
|
|||||||
* action_uri: where to go when the user wants to do this?
|
* action_uri: where to go when the user wants to do this?
|
||||||
* text: full text to present to user
|
* text: full text to present to user
|
||||||
* amount: any relevant amount.
|
* amount: any relevant amount.
|
||||||
|
* model: id of relevant model.
|
||||||
*
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
|
@ -71,14 +71,6 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
|||||||
return $this->hasMany('Budget');
|
return $this->hasMany('Budget');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
|
||||||
*/
|
|
||||||
public function reminders()
|
|
||||||
{
|
|
||||||
return $this->hasMany('Reminder');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
*/
|
*/
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
<ul class="nav navbar-top-links navbar-right">
|
<ul class="nav navbar-top-links navbar-right">
|
||||||
|
|
||||||
<!-- reminders -->
|
<!-- reminders -->
|
||||||
|
{{--
|
||||||
@if(count($reminders) > 0)
|
@if(count($reminders) > 0)
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
@ -37,6 +38,7 @@
|
|||||||
<!-- /.dropdown-alerts -->
|
<!-- /.dropdown-alerts -->
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
--}}
|
||||||
<!-- /.dropdown -->
|
<!-- /.dropdown -->
|
||||||
|
|
||||||
<li class="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