diff --git a/app/TransactionRules/Actions/LinkToBill.php b/app/TransactionRules/Actions/LinkToBill.php index 4b118f763b..02d691616e 100644 --- a/app/TransactionRules/Actions/LinkToBill.php +++ b/app/TransactionRules/Actions/LinkToBill.php @@ -46,16 +46,19 @@ class LinkToBill implements ActionInterface public function actOnArray(array $journal): bool { /** @var User $user */ - $user = User::find($journal['user_id']); + $user = User::find($journal['user_id']); /** @var BillRepositoryInterface $repository */ $repository = app(BillRepositoryInterface::class); $repository->setUser($user); - $billName = $this->action->getValue($journal); - $bill = $repository->findByName($billName); + $billName = $this->action->getValue($journal); + $bill = $repository->findByName($billName); + /** @var TransactionJournal $object */ + $object = TransactionJournal::with('transactionType')->find($journal['transaction_journal_id']); + $type = $object->transactionType->type; - if (null !== $bill && TransactionTypeEnum::WITHDRAWAL->value === $journal['transaction_type_type']) { - $count = DB::table('transaction_journals')->where('id', '=', $journal['transaction_journal_id'])->where('bill_id', $bill->id)->count(); + if (null !== $bill && TransactionTypeEnum::WITHDRAWAL->value === $type) { + $count = DB::table('transaction_journals')->where('id', '=', $journal['transaction_journal_id'])->where('bill_id', $bill->id)->count(); if (0 !== $count) { Log::error(sprintf('RuleAction LinkToBill could not set the bill of journal #%d to bill "%s": already set.', $journal['transaction_journal_id'], $billName)); // event(new RuleActionFailedOnArray($this->action, $journal, trans('rules.already_linked_to_subscription', ['name' => $billName])));