diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index b7093dea48..aa53a87ba1 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -136,6 +136,12 @@ class TransactionController extends Controller */ public function edit(AccountRepositoryInterface $repository, TransactionJournal $journal) { + // cannot edit opening balance + if ($journal->transactionType->type == 'Opening balance') { + return view('error')->with('message', 'Cannot edit this transaction. Edit the account instead!'); + } + + $maxFileSize = Steam::phpBytes(ini_get('upload_max_filesize')); $maxPostSize = Steam::phpBytes(ini_get('post_max_size')); $uploadSize = min($maxFileSize, $maxPostSize); @@ -333,6 +339,11 @@ class TransactionController extends Controller public function update(JournalFormRequest $request, JournalRepositoryInterface $repository, AttachmentHelperInterface $att, TransactionJournal $journal) { + // cannot edit opening balance + if ($journal->transactionType->type == 'Opening balance') { + return view('error')->with('message', 'Cannot edit this transaction. Edit the account instead!'); + } + $journalData = $request->getJournalData(); $repository->update($journal, $journalData); diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index e0490c8178..d911cdea8e 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -375,6 +375,7 @@ class AccountRepository implements AccountRepositoryInterface return TransactionJournal ::orderBy('transaction_journals.date', 'ASC') ->accountIs($account) + ->transactionTypes(['Opening balance']) ->orderBy('created_at', 'ASC') ->first(['transaction_journals.*']); } @@ -394,10 +395,9 @@ class AccountRepository implements AccountRepositoryInterface // continue with the opposing account: if ($data['openingBalance'] != 0) { - $type = $data['openingBalance'] < 0 ? 'expense' : 'revenue'; $opposingData = [ 'user' => $data['user'], - 'accountType' => $type, + 'accountType' => 'initial', 'virtualBalance' => 0, 'name' => $data['name'] . ' initial balance', 'active' => false,