Fix issue with recurring transactions and piggy banks.

This commit is contained in:
James Cole
2019-01-03 18:57:34 +01:00
parent 16ba65c424
commit 1c2206cb9f
4 changed files with 20 additions and 8 deletions

View File

@@ -246,7 +246,7 @@ class TransactionController extends Controller
$data['user'] = auth()->user()->id; $data['user'] = auth()->user()->id;
$journal = $repository->store($data); $journal = $repository->store($data);
event(new StoredTransactionJournal($journal, 0)); event(new StoredTransactionJournal($journal));
$manager = new Manager(); $manager = new Manager();
$baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1';

View File

@@ -38,18 +38,14 @@ class StoredTransactionJournal extends Event
/** @var TransactionJournal The journal that was stored. */ /** @var TransactionJournal The journal that was stored. */
public $journal; public $journal;
/** @var int The piggy bank ID. */
public $piggyBankId;
/** /**
* Create a new event instance. * Create a new event instance.
* *
* @param TransactionJournal $journal * @param TransactionJournal $journal
* @param int $piggyBankId
*/ */
public function __construct(TransactionJournal $journal, int $piggyBankId) public function __construct(TransactionJournal $journal)
{ {
$this->journal = $journal; $this->journal = $journal;
$this->piggyBankId = $piggyBankId;
} }
} }

View File

@@ -400,7 +400,7 @@ class SingleController extends Controller
session()->flash('info', $this->attachments->getMessages()->get('attachments')); session()->flash('info', $this->attachments->getMessages()->get('attachments'));
} }
event(new StoredTransactionJournal($journal, $data['piggy_bank_id'])); event(new StoredTransactionJournal($journal));
session()->flash('success_uri', route('transactions.show', [$journal->id])); session()->flash('success_uri', route('transactions.show', [$journal->id]));
session()->flash('success', (string)trans('firefly.stored_journal', ['description' => $journal->description])); session()->flash('success', (string)trans('firefly.stored_journal', ['description' => $journal->description]));

View File

@@ -48,6 +48,8 @@ namespace FireflyIII\Jobs;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Events\RequestedReportOnJournals; use FireflyIII\Events\RequestedReportOnJournals;
use FireflyIII\Events\StoredTransactionJournal; use FireflyIII\Events\StoredTransactionJournal;
use FireflyIII\Factory\PiggyBankEventFactory;
use FireflyIII\Factory\PiggyBankFactory;
use FireflyIII\Models\Recurrence; use FireflyIII\Models\Recurrence;
use FireflyIII\Models\RecurrenceMeta; use FireflyIII\Models\RecurrenceMeta;
use FireflyIII\Models\RecurrenceRepetition; use FireflyIII\Models\RecurrenceRepetition;
@@ -356,9 +358,23 @@ class CreateRecurringTransactions implements ShouldQueue
// get piggy bank ID from meta data: // get piggy bank ID from meta data:
$piggyBankId = $this->getPiggyId($recurrence); $piggyBankId = $this->getPiggyId($recurrence);
Log::debug(sprintf('Piggy bank ID for recurrence #%d is #%d', $recurrence->id, $piggyBankId));
// trigger event: // trigger event:
event(new StoredTransactionJournal($journal, $piggyBankId)); event(new StoredTransactionJournal($journal));
// link to piggy bank:
/** @var PiggyBankFactory $factory */
$factory = app(PiggyBankFactory::class);
$factory->setUser($recurrence->user);
$piggyBank = $factory->find($piggyBankId, null);
if (null !== $piggyBank) {
/** @var PiggyBankEventFactory $factory */
$factory = app(PiggyBankEventFactory::class);
$factory->create($journal, $piggyBank);
}
$collection->push($journal); $collection->push($journal);
// update recurring thing: // update recurring thing: