mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-14 01:13:37 -06:00
Events that keep track of piggy bank money add/remove
This commit is contained in:
parent
6eb9188690
commit
8c949e6190
@ -19,6 +19,7 @@ class PiggybankController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Add money to piggy bank
|
||||||
* @param Piggybank $piggybank
|
* @param Piggybank $piggybank
|
||||||
*
|
*
|
||||||
* @return $this
|
* @return $this
|
||||||
@ -150,6 +151,7 @@ class PiggybankController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* POST add money to piggy bank
|
||||||
* @param Piggybank $piggybank
|
* @param Piggybank $piggybank
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
@ -170,6 +172,12 @@ class PiggybankController extends BaseController
|
|||||||
$repetition = $piggybank->currentRelevantRep();
|
$repetition = $piggybank->currentRelevantRep();
|
||||||
$repetition->currentamount += $amount;
|
$repetition->currentamount += $amount;
|
||||||
$repetition->save();
|
$repetition->save();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create event!
|
||||||
|
*/
|
||||||
|
Event::fire('piggybank.addMoney',[$piggybank, $amount]);
|
||||||
|
|
||||||
Session::flash('success', 'Added ' . mf($amount, false) . ' to "' . e($piggybank->name) . '".');
|
Session::flash('success', 'Added ' . mf($amount, false) . ' to "' . e($piggybank->name) . '".');
|
||||||
} else {
|
} else {
|
||||||
Session::flash('error', 'Could not add ' . mf($amount, false) . ' to "' . e($piggybank->name) . '".');
|
Session::flash('error', 'Could not add ' . mf($amount, false) . ' to "' . e($piggybank->name) . '".');
|
||||||
@ -193,6 +201,12 @@ class PiggybankController extends BaseController
|
|||||||
$repetition = $piggybank->currentRelevantRep();
|
$repetition = $piggybank->currentRelevantRep();
|
||||||
$repetition->currentamount -= $amount;
|
$repetition->currentamount -= $amount;
|
||||||
$repetition->save();
|
$repetition->save();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create event!
|
||||||
|
*/
|
||||||
|
Event::fire('piggybank.removeMoney',[$piggybank, $amount]);
|
||||||
|
|
||||||
Session::flash('success', 'Removed ' . mf($amount, false) . ' from "' . e($piggybank->name) . '".');
|
Session::flash('success', 'Removed ' . mf($amount, false) . ' from "' . e($piggybank->name) . '".');
|
||||||
} else {
|
} else {
|
||||||
Session::flash('error', 'Could not remove ' . mf($amount, false) . ' from "' . e($piggybank->name) . '".');
|
Session::flash('error', 'Could not remove ' . mf($amount, false) . ' from "' . e($piggybank->name) . '".');
|
||||||
|
56
app/lib/FireflyIII/Event/Piggybank.php
Normal file
56
app/lib/FireflyIII/Event/Piggybank.php
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FireflyIII\Event;
|
||||||
|
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Events\Dispatcher;
|
||||||
|
|
||||||
|
class Piggybank {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \Piggybank $piggybank
|
||||||
|
* @param float $amount
|
||||||
|
*/
|
||||||
|
public function addMoney(\Piggybank $piggybank, $amount = 0.0) {
|
||||||
|
if($amount > 0) {
|
||||||
|
$event = new \PiggybankEvent;
|
||||||
|
$event->piggybank()->associate($piggybank);
|
||||||
|
$event->amount = floatval($amount);
|
||||||
|
$event->date = new Carbon;
|
||||||
|
if(!$event->validate()) {
|
||||||
|
var_dump($event->errors());
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$event->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \Piggybank $piggybank
|
||||||
|
* @param float $amount
|
||||||
|
*/
|
||||||
|
public function removeMoney(\Piggybank $piggybank, $amount = 0.0) {
|
||||||
|
$amount = $amount * -1;
|
||||||
|
if($amount < 0) {
|
||||||
|
$event = new \PiggybankEvent;
|
||||||
|
$event->piggybank()->associate($piggybank);
|
||||||
|
$event->amount = floatval($amount);
|
||||||
|
$event->date = new Carbon;
|
||||||
|
if(!$event->validate()) {
|
||||||
|
var_dump($event->errors());
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$event->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Dispatcher $events
|
||||||
|
*/
|
||||||
|
public function subscribe(Dispatcher $events)
|
||||||
|
{
|
||||||
|
$events->listen('piggybank.addMoney', 'FireflyIII\Event\Piggybank@addMoney');
|
||||||
|
$events->listen('piggybank.removeMoney', 'FireflyIII\Event\Piggybank@removeMoney');
|
||||||
|
}
|
||||||
|
}
|
@ -92,6 +92,7 @@ require $framework . '/Illuminate/Foundation/start.php';
|
|||||||
//Event::subscribe('Firefly\Trigger\Budgets\EloquentBudgetTrigger');
|
//Event::subscribe('Firefly\Trigger\Budgets\EloquentBudgetTrigger');
|
||||||
//Event::subscribe('Firefly\Trigger\Recurring\EloquentRecurringTrigger');
|
//Event::subscribe('Firefly\Trigger\Recurring\EloquentRecurringTrigger');
|
||||||
//Event::subscribe('Firefly\Trigger\Journals\EloquentJournalTrigger');
|
//Event::subscribe('Firefly\Trigger\Journals\EloquentJournalTrigger');
|
||||||
|
Event::subscribe('FireflyIII\Event\Piggybank');
|
||||||
|
|
||||||
// TODO event that creates a relationship between transaction journals and recurring events when created.
|
// TODO event that creates a relationship between transaction journals and recurring events when created.
|
||||||
// TODO event that updates the relationship between transaction journals and recurring events when edited.
|
// TODO event that updates the relationship between transaction journals and recurring events when edited.
|
||||||
|
Loading…
Reference in New Issue
Block a user