Fix nullpointer

This commit is contained in:
James Cole
2024-10-27 10:49:55 +01:00
parent d89d46aaec
commit bb4f90d730

View File

@@ -161,7 +161,7 @@ class CreditRecalculateService
app('log')->debug(sprintf('Now processing account #%d ("%s"). All amounts with 2 decimals!', $account->id, $account->name)); app('log')->debug(sprintf('Now processing account #%d ("%s"). All amounts with 2 decimals!', $account->id, $account->name));
// get opening balance (if present) // get opening balance (if present)
$this->repository->setUser($account->user); $this->repository->setUser($account->user);
$direction = (string)$this->repository->getMetaValue($account, 'liability_direction'); $direction = (string) $this->repository->getMetaValue($account, 'liability_direction');
$openingBalance = $this->repository->getOpeningBalance($account); $openingBalance = $this->repository->getOpeningBalance($account);
if (null !== $openingBalance) { if (null !== $openingBalance) {
app('log')->debug(sprintf('Found opening balance transaction journal #%d', $openingBalance->id)); app('log')->debug(sprintf('Found opening balance transaction journal #%d', $openingBalance->id));
@@ -186,8 +186,7 @@ class CreditRecalculateService
$transactions = $account->transactions() $transactions = $account->transactions()
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
->orderBy('transaction_journals.date', 'ASC') ->orderBy('transaction_journals.date', 'ASC')
->get(['transactions.*']) ->get(['transactions.*']);
;
$total = $transactions->count(); $total = $transactions->count();
app('log')->debug(sprintf('Found %d transaction(s) to process.', $total)); app('log')->debug(sprintf('Found %d transaction(s) to process.', $total));
@@ -242,6 +241,14 @@ class CreditRecalculateService
private function processTransaction(Account $account, string $direction, Transaction $transaction, string $leftOfDebt): string private function processTransaction(Account $account, string $direction, Transaction $transaction, string $leftOfDebt): string
{ {
$journal = $transaction->transactionJournal; $journal = $transaction->transactionJournal;
// here be null pointers.
if (null === $journal) {
app('log')->warning(sprintf('Transaction #%d has no journal.', $transaction->id));
return $leftOfDebt;
}
$foreignCurrency = $transaction->foreignCurrency; $foreignCurrency = $transaction->foreignCurrency;
$accountCurrency = $this->repository->getAccountCurrency($account); $accountCurrency = $this->repository->getAccountCurrency($account);
$type = $journal->transactionType->type; $type = $journal->transactionType->type;