mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-11 16:05:50 -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
|
||||
*
|
||||
* @return $this
|
||||
@ -150,6 +151,7 @@ class PiggybankController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* POST add money to piggy bank
|
||||
* @param Piggybank $piggybank
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
@ -170,6 +172,12 @@ class PiggybankController extends BaseController
|
||||
$repetition = $piggybank->currentRelevantRep();
|
||||
$repetition->currentamount += $amount;
|
||||
$repetition->save();
|
||||
|
||||
/*
|
||||
* Create event!
|
||||
*/
|
||||
Event::fire('piggybank.addMoney',[$piggybank, $amount]);
|
||||
|
||||
Session::flash('success', 'Added ' . mf($amount, false) . ' to "' . e($piggybank->name) . '".');
|
||||
} else {
|
||||
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->currentamount -= $amount;
|
||||
$repetition->save();
|
||||
|
||||
/*
|
||||
* Create event!
|
||||
*/
|
||||
Event::fire('piggybank.removeMoney',[$piggybank, $amount]);
|
||||
|
||||
Session::flash('success', 'Removed ' . mf($amount, false) . ' from "' . e($piggybank->name) . '".');
|
||||
} else {
|
||||
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\Recurring\EloquentRecurringTrigger');
|
||||
//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 updates the relationship between transaction journals and recurring events when edited.
|
||||
|
Loading…
Reference in New Issue
Block a user