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;
$journal = $repository->store($data);
event(new StoredTransactionJournal($journal, 0));
event(new StoredTransactionJournal($journal));
$manager = new Manager();
$baseUrl = $request->getSchemeAndHttpHost() . '/api/v1';

View File

@@ -38,18 +38,14 @@ class StoredTransactionJournal extends Event
/** @var TransactionJournal The journal that was stored. */
public $journal;
/** @var int The piggy bank ID. */
public $piggyBankId;
/**
* Create a new event instance.
*
* @param TransactionJournal $journal
* @param int $piggyBankId
*/
public function __construct(TransactionJournal $journal, int $piggyBankId)
public function __construct(TransactionJournal $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'));
}
event(new StoredTransactionJournal($journal, $data['piggy_bank_id']));
event(new StoredTransactionJournal($journal));
session()->flash('success_uri', route('transactions.show', [$journal->id]));
session()->flash('success', (string)trans('firefly.stored_journal', ['description' => $journal->description]));

View File

@@ -48,6 +48,8 @@ namespace FireflyIII\Jobs;
use Carbon\Carbon;
use FireflyIII\Events\RequestedReportOnJournals;
use FireflyIII\Events\StoredTransactionJournal;
use FireflyIII\Factory\PiggyBankEventFactory;
use FireflyIII\Factory\PiggyBankFactory;
use FireflyIII\Models\Recurrence;
use FireflyIII\Models\RecurrenceMeta;
use FireflyIII\Models\RecurrenceRepetition;
@@ -356,9 +358,23 @@ class CreateRecurringTransactions implements ShouldQueue
// get piggy bank ID from meta data:
$piggyBankId = $this->getPiggyId($recurrence);
Log::debug(sprintf('Piggy bank ID for recurrence #%d is #%d', $recurrence->id, $piggyBankId));
// 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);
// update recurring thing: