diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index 5781b9a5c4..f30e33b188 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Journal; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\Note; use FireflyIII\Models\Transaction; @@ -386,6 +387,9 @@ class JournalRepository implements JournalRepositoryInterface { /** @var Transaction $transaction */ $transaction = $journal->transactions()->with('account')->where('amount', '<', 0)->first(); + if (null === $transaction) { + throw new FireflyException(sprintf('Your administration is broken. Transaction journal #%d has no source transaction.', $journal->id)); + } return $transaction->account; } @@ -397,6 +401,9 @@ class JournalRepository implements JournalRepositoryInterface { /** @var Transaction $transaction */ $transaction = $journal->transactions()->with('account')->where('amount', '>', 0)->first(); + if (null === $transaction) { + throw new FireflyException(sprintf('Your administration is broken. Transaction journal #%d has no destination transaction.', $journal->id)); + } return $transaction->account; } diff --git a/app/Repositories/Journal/JournalRepositoryInterface.php b/app/Repositories/Journal/JournalRepositoryInterface.php index 622b46f4c1..df05ba2b6e 100644 --- a/app/Repositories/Journal/JournalRepositoryInterface.php +++ b/app/Repositories/Journal/JournalRepositoryInterface.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Journal; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionJournal; @@ -114,7 +115,9 @@ interface JournalRepositoryInterface * Returns the source account of the journal. * * @param TransactionJournal $journal + * * @return Account + * @throws FireflyException */ public function getSourceAccount(TransactionJournal $journal): Account; @@ -123,6 +126,7 @@ interface JournalRepositoryInterface * * @param TransactionJournal $journal * @return Account + * @throws FireflyException */ public function getDestinationAccount(TransactionJournal $journal): Account;