From 0943830da5c8ca97c9691c3c066ee7d4d363eb52 Mon Sep 17 00:00:00 2001 From: goutham-M Date: Fri, 26 Jul 2013 17:14:04 +0530 Subject: [PATCH] validation on submit date --- .../portfolio/loanaccount/domain/Loan.java | 2 +- ...onWritePlatformServiceJpaRepositoryImpl.java | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java index f2699c4b5..366baf401 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java @@ -2020,7 +2020,7 @@ public class Loan extends AbstractPersistable { return this.submittedOnDate == null ? false : (new LocalDate(submittedOnDate)).isAfter(compareDate); } - private LocalDate getSubmittedOnDate() { + public LocalDate getSubmittedOnDate() { return (LocalDate) ObjectUtils.defaultIfNull(new LocalDate(this.submittedOnDate), null); } 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 55ce8db3d..2a9024112 100644 --- 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 @@ -151,14 +151,14 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa final LoanProduct loanProduct = this.loanProductRepository.findOne(productId); if (loanProduct == null) { throw new LoanProductNotFoundException(productId); } - validateSubmittedOnDate(command, loanProduct); - this.loanProductCommandFromApiJsonDeserializer.validateMinMaxConstraints(command.parsedJson(), baseDataValidator, loanProduct); if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); } final Loan newLoanApplication = loanAssembler.assembleFrom(command, currentUser); + validateSubmittedOnDate(newLoanApplication); + final LoanProductRelatedDetail productRelatedDetail = newLoanApplication.repaymentScheduleDetail(); this.fromApiJsonDeserializer.validateLoanTermAndRepaidEveryValues(newLoanApplication.getTermFrequency(), newLoanApplication.getTermPeriodFrequencyType(), productRelatedDetail.getNumberOfRepayments(), productRelatedDetail.getRepayEvery(), @@ -214,8 +214,6 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa final Loan existingLoanApplication = retrieveLoanBy(loanId); - validateSubmittedOnDate(command, existingLoanApplication.loanProduct()); - if (!existingLoanApplication.isSubmittedAndPendingApproval()) { throw new LoanApplicationNotInSubmittedAndPendingApprovalStateCannotBeModified( loanId); } @@ -245,7 +243,8 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa existingLoanApplication.updateInterestRateFrequencyType(); } } - + + validateSubmittedOnDate(existingLoanApplication); // validate min and maximum constraints this.fromApiJsonDeserializer.validateForModify(command.json()); final LoanProductRelatedDetail productRelatedDetail = existingLoanApplication.repaymentScheduleDetail(); @@ -545,10 +544,10 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa return loan; } - private void validateSubmittedOnDate(final JsonCommand command, final LoanProduct loanProduct) { - final LocalDate startDate = loanProduct.getStartDate(); - final LocalDate closeDate = loanProduct.getCloseDate(); - final LocalDate submittedOnDate = command.localDateValueOfParameterNamed("submittedOnDate"); + private void validateSubmittedOnDate(final Loan loan) { + final LocalDate startDate = loan.loanProduct().getStartDate(); + final LocalDate closeDate = loan.loanProduct().getCloseDate(); + final LocalDate submittedOnDate = loan.getSubmittedOnDate(); String defaultUserMessage = ""; if (startDate != null && submittedOnDate.isBefore(startDate)) {