From d45b3a504e997b1fcdb6dbda5d5be761e3fc0594 Mon Sep 17 00:00:00 2001 From: Chandrika Date: Tue, 14 Apr 2015 13:44:50 -0400 Subject: [PATCH] MIFOSX-1842 Adding validation for add/delete tranche based on loan status. --- ...LoanApplicationWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../service/LoanWritePlatformServiceJpaRepositoryImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java index 6d475a428..12991be43 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java @@ -885,7 +885,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa loan.regenerateRepaymentSchedule(scheduleGeneratorDTO, currentUser); } - this.loanRepository.save(loan); + saveAndFlushLoanWithDataIntegrityViolationChecks(loan); final String noteText = command.stringValueOfParameterNamed("note"); if (StringUtils.isNotBlank(noteText)) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index eefca8f9f..85df6e395 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -2612,8 +2612,9 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final String errorMessage = "loan.product.does.not.support.multiple.disbursals"; throw new LoanMultiDisbursementException(LoanApiConstants.disbursementDataParameterName, errorMessage); } - if(loan.isSubmittedAndPendingApproval()){ - final String errorMessage = "loan.account.should.be.approved"; + if(loan.isSubmittedAndPendingApproval() || loan.isClosed() || loan.isClosedWrittenOff() || loan.status().isClosedObligationsMet() || + loan.status().isOverpaid()){ + final String errorMessage = "cannot.modify.tranches.if.loan.is.pendingapproval.closed.overpaid.writtenoff"; throw new LoanMultiDisbursementException(LoanApiConstants.disbursementDataParameterName, errorMessage); } validateMultiDisbursementData(command, expectedDisbursementDate);