From 5e61fa785e87507b4965b7a4da58d6f0a4befdb8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 31 Oct 2019 07:45:55 +0100 Subject: [PATCH] Fix #2771 --- app/Jobs/CreateRecurringTransactions.php | 7 ++++--- .../Recurring/RecurringRepository.php | 21 ++++++++----------- .../RecurringRepositoryInterface.php | 10 ++++----- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/app/Jobs/CreateRecurringTransactions.php b/app/Jobs/CreateRecurringTransactions.php index e4f1f28439..d18d31eb5c 100644 --- a/app/Jobs/CreateRecurringTransactions.php +++ b/app/Jobs/CreateRecurringTransactions.php @@ -218,6 +218,7 @@ class CreateRecurringTransactions implements ShouldQueue $return = []; /** @var RecurrenceTransaction $transaction */ foreach ($transactions as $index => $transaction) { + $single = [ 'type' => strtolower($recurrence->transactionType->type), 'date' => $date, @@ -242,8 +243,8 @@ class CreateRecurringTransactions implements ShouldQueue 'recurrence_id' => (int)$recurrence->id, 'order' => $index, 'notes' => (string)trans('firefly.created_from_recurrence', ['id' => $recurrence->id, 'title' => $recurrence->title]), - 'tags' => $this->repository->getTags($recurrence), - 'piggy_bank_id' => null, + 'tags' => $this->repository->getTags($transaction), + 'piggy_bank_id' => $this->repository->getPiggyBank($transaction), 'piggy_bank_name' => null, 'bill_id' => null, 'bill_name' => null, @@ -324,7 +325,7 @@ class CreateRecurringTransactions implements ShouldQueue Log::info(sprintf('Created new transaction group #%d', $group->id)); // link to piggy: - $this->linkGroupToPiggies($recurrence, $group); + //$this->linkGroupToPiggies($recurrence, $group); // trigger event: event(new StoredTransactionGroup($group, $recurrence->apply_rules)); diff --git a/app/Repositories/Recurring/RecurringRepository.php b/app/Repositories/Recurring/RecurringRepository.php index 41a46e0817..fde9377424 100644 --- a/app/Repositories/Recurring/RecurringRepository.php +++ b/app/Repositories/Recurring/RecurringRepository.php @@ -28,7 +28,6 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Factory\RecurrenceFactory; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\Note; -use FireflyIII\Models\PiggyBank; use FireflyIII\Models\Preference; use FireflyIII\Models\Recurrence; use FireflyIII\Models\RecurrenceMeta; @@ -253,19 +252,17 @@ class RecurringRepository implements RecurringRepositoryInterface } /** - * @param Recurrence $recurrence + * @param RecurrenceTransaction $transaction * - * @return PiggyBank|null + * @return int|null */ - public function getPiggyBank(Recurrence $recurrence): ?PiggyBank + public function getPiggyBank(RecurrenceTransaction $transaction): ?int { - $meta = $recurrence->recurrenceMeta; - /** @var RecurrenceMeta $metaEntry */ + $meta = $transaction->recurrenceTransactionMeta; + /** @var RecurrenceTransactionMeta $metaEntry */ foreach ($meta as $metaEntry) { if ('piggy_bank_id' === $metaEntry->name) { - $piggyId = (int)$metaEntry->value; - - return $this->user->piggyBanks()->where('piggy_banks.id', $piggyId)->first(['piggy_banks.*']); + return (int)$metaEntry->value; } } @@ -275,15 +272,15 @@ class RecurringRepository implements RecurringRepositoryInterface /** * Get the tags from the recurring transaction. * - * @param Recurrence $recurrence + * @param RecurrenceTransaction $transaction * * @return array */ - public function getTags(Recurrence $recurrence): array + public function getTags(RecurrenceTransaction $transaction): array { $tags = []; /** @var RecurrenceMeta $meta */ - foreach ($recurrence->recurrenceMeta as $meta) { + foreach ($transaction->recurrenceTransactionMeta as $meta) { if ('tags' === $meta->name && '' !== $meta->value) { $tags = explode(',', $meta->value); } diff --git a/app/Repositories/Recurring/RecurringRepositoryInterface.php b/app/Repositories/Recurring/RecurringRepositoryInterface.php index 440bda4d93..f115bfe0ef 100644 --- a/app/Repositories/Recurring/RecurringRepositoryInterface.php +++ b/app/Repositories/Recurring/RecurringRepositoryInterface.php @@ -120,19 +120,19 @@ interface RecurringRepositoryInterface public function getOccurrencesInRange(RecurrenceRepetition $repetition, Carbon $start, Carbon $end): array; /** - * @param Recurrence $recurrence - * @return PiggyBank|null + * @param RecurrenceTransaction $transaction + * @return int|null */ - public function getPiggyBank(Recurrence $recurrence): ?PiggyBank; + public function getPiggyBank(RecurrenceTransaction $transaction): ?int; /** * Get the tags from the recurring transaction. * - * @param Recurrence $recurrence + * @param RecurrenceTransaction $transaction * * @return array */ - public function getTags(Recurrence $recurrence): array; + public function getTags(RecurrenceTransaction $transaction): array; /** * @param Recurrence $recurrence