From 81b2ba1c311e928b30cc80858ff9828fba591d62 Mon Sep 17 00:00:00 2001 From: avikganguly01 Date: Fri, 22 Sep 2017 22:16:22 +0530 Subject: [PATCH] Fineract-521 Undo Transaction --- .../portfolio/savings/domain/SavingsAccount.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java index e87470193..3f2da48e0 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java @@ -1148,9 +1148,7 @@ public class SavingsAccount extends AbstractPersistableCustom { final List dataValidationErrors = new ArrayList<>(); final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors) .resource(depositAccountType().resourceName() + transactionAction); - if (this.allowOverdraft) { - baseDataValidator.reset().failWithCodeNoParameterAddedToErrorCode("results.in.balance.exceeding.overdraft.limit"); - } else { + if (!this.allowOverdraft) { baseDataValidator.reset().failWithCodeNoParameterAddedToErrorCode("results.in.balance.going.negative"); } if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); } @@ -1160,6 +1158,13 @@ public class SavingsAccount extends AbstractPersistableCustom { lastSavingsDate = transaction.transactionLocalDate(); } + + BigDecimal withdrawalFee = null; + BigDecimal transactionAmount = null; + if(isOverdraft()) { + if (runningBalance.minus(minRequiredBalance).isLessThanZero()) { throw new InsufficientAccountBalanceException( + "transactionAmount", getAccountBalance(), withdrawalFee, transactionAmount); } + } } protected boolean isAccountLocked(final LocalDate transactionDate) {