More strict check on transaction journal type.

This commit is contained in:
James Cole
2026-01-10 08:19:10 +01:00
parent 1f75612741
commit 03364d9530
+8 -5
View File
@@ -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])));