From 1401282aa0ccd0fcefb3bf2b61f3ac63fd11332d Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Oct 2021 15:41:29 +0200 Subject: [PATCH] Fix #5200 --- app/Jobs/CreateRecurringTransactions.php | 4 ++-- .../Recurring/RecurringRepository.php | 16 ++++++++++++++++ .../Recurring/RecurringRepositoryInterface.php | 9 +++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/Jobs/CreateRecurringTransactions.php b/app/Jobs/CreateRecurringTransactions.php index 081cd65162..370abf6eaa 100644 --- a/app/Jobs/CreateRecurringTransactions.php +++ b/app/Jobs/CreateRecurringTransactions.php @@ -431,7 +431,7 @@ class CreateRecurringTransactions implements ShouldQueue 'user' => $recurrence->user_id, 'currency_id' => (int)$transaction->transaction_currency_id, 'currency_code' => null, - 'description' => $recurrence->recurrenceTransactions()->first()->description, + 'description' => $transactions->first()->description, 'amount' => $transaction->amount, 'budget_id' => $this->repository->getBudget($transaction), 'budget_name' => null, @@ -452,7 +452,7 @@ class CreateRecurringTransactions implements ShouldQueue 'tags' => $this->repository->getTags($transaction), 'piggy_bank_id' => $this->repository->getPiggyBank($transaction), 'piggy_bank_name' => null, - 'bill_id' => null, + 'bill_id' => $this->repository->getBillId($transaction), 'bill_name' => null, 'recurrence_total' => $total, 'recurrence_count' => $count, diff --git a/app/Repositories/Recurring/RecurringRepository.php b/app/Repositories/Recurring/RecurringRepository.php index c0610fee8d..8e2216d3c4 100644 --- a/app/Repositories/Recurring/RecurringRepository.php +++ b/app/Repositories/Recurring/RecurringRepository.php @@ -613,4 +613,20 @@ class RecurringRepository implements RecurringRepositoryInterface return $filtered; } + + /** + * @inheritDoc + */ + public function getBillId(RecurrenceTransaction $recTransaction): ?int + { + $return = null; + /** @var RecurrenceTransactionMeta $meta */ + foreach ($recTransaction->recurrenceTransactionMeta as $meta) { + if ('bill_id' === $meta->name) { + $return = (int)$meta->value; + } + } + + return $return; + } } diff --git a/app/Repositories/Recurring/RecurringRepositoryInterface.php b/app/Repositories/Recurring/RecurringRepositoryInterface.php index 347bc79448..037791c4a6 100644 --- a/app/Repositories/Recurring/RecurringRepositoryInterface.php +++ b/app/Repositories/Recurring/RecurringRepositoryInterface.php @@ -82,6 +82,15 @@ interface RecurringRepositoryInterface */ public function getCategoryId(RecurrenceTransaction $recTransaction): ?int; + /** + * Get the category from a recurring transaction transaction. + * + * @param RecurrenceTransaction $recTransaction + * + * @return null|int + */ + public function getBillId(RecurrenceTransaction $recTransaction): ?int; + /** * Get the category from a recurring transaction transaction. *