From def143704f163ae9c510b41a305a7137412e00b1 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 9 May 2021 11:35:59 +0200 Subject: [PATCH] Fixed #614 - create transaction from template: fallback to default account if template uses hidden/readonly account --- .../budgetmaster/templates/TemplateController.java | 6 +++--- .../deadlocker8/budgetmaster/templates/TemplateService.java | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java index 0779259de..2b280ca9f 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java @@ -139,13 +139,13 @@ public class TemplateController extends BaseController if(newTransaction.getAmount() == null && newTransaction.isExpenditure() == null) { - template.setIsExpenditure(true); + newTransaction.setIsExpenditure(true); } final DateTime date = dateService.getDateTimeFromCookie(cookieDate); - transactionService.prepareModelNewOrEdit(model, false, date, null, template, accountService.getAllActivatedAccountsAsc()); + transactionService.prepareModelNewOrEdit(model, false, date, null, newTransaction, accountService.getAllActivatedAccountsAsc()); - if(template.isTransfer()) + if(newTransaction.isTransfer()) { return "transactions/newTransactionTransfer"; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java index b49351020..f03ee377c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java @@ -91,6 +91,12 @@ public class TemplateService implements Resettable, AccessAllEntities<Template> { template.setAccount(accountService.getRepository().findByIsDefault(true)); } + + final Account transferAccount = template.getTransferAccount(); + if(transferAccount != null && transferAccount.getAccountState() != AccountState.FULL_ACCESS) + { + template.setTransferAccount(accountService.getRepository().findByIsDefault(true)); + } } public void prepareModelNewOrEdit(Model model, boolean isEdit, TransactionBase item, List<Account> accounts) -- GitLab