From e92b6b171218ff7113248583beedddf4ac43512d Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Mon, 23 Jan 2017 18:48:28 +0530 Subject: [PATCH] FINERACT-221-After submitting the modify application the currency is not getting updated as per the new product --- .../apache/fineract/portfolio/loanaccount/domain/Loan.java | 7 ++++++- ...anApplicationWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../loanproduct/domain/LoanProductRelatedDetail.java | 4 ++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java index f6f5153a7cd..b7149977899 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java @@ -1268,9 +1268,14 @@ public void updateLoanSummarAndStatus() { } public Map loanApplicationModification(final JsonCommand command, final Set possiblyModifedLoanCharges, - final Set possiblyModifedLoanCollateralItems, final AprCalculator aprCalculator, boolean isChargesModified) { + final Set possiblyModifedLoanCollateralItems, final AprCalculator aprCalculator, boolean isChargesModified, + final LoanProduct loanProduct) { final Map actualChanges = this.loanRepaymentScheduleDetail.updateLoanApplicationAttributes(command, aprCalculator); + final MonetaryCurrency currency = new MonetaryCurrency(loanProduct.getCurrency().getCode(), loanProduct.getCurrency().getDigitsAfterDecimal(), + loanProduct.getCurrency().getCurrencyInMultiplesOf()); + this.loanRepaymentScheduleDetail.updateCurrency(currency); + if (!actualChanges.isEmpty()) { final boolean recalculateLoanSchedule = !(actualChanges.size() == 1 && actualChanges.containsKey("inArrearsTolerance")); actualChanges.put("recalculateLoanSchedule", recalculateLoanSchedule); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java index 823a87393ea..f46c8e19103 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java @@ -605,7 +605,7 @@ public CommandProcessingResult modifyApplication(final Long loanId, final JsonCo final Map changes = existingLoanApplication.loanApplicationModification(command, possiblyModifedLoanCharges, - possiblyModifedLoanCollateralItems, this.aprCalculator, isChargeModified); + possiblyModifedLoanCollateralItems, this.aprCalculator, isChargeModified, loanProductForValidations); if (changes.containsKey("expectedDisbursementDate")) { this.loanAssembler.validateExpectedDisbursementForHolidayAndNonWorkingDay(existingLoanApplication); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductRelatedDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductRelatedDetail.java index b7dbc8a9ddd..901967ee88b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductRelatedDetail.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductRelatedDetail.java @@ -499,6 +499,10 @@ public Map updateLoanApplicationAttributes(final JsonCommand com return actualChanges; } + public void updateCurrency(final MonetaryCurrency currency) { + this.currency = currency ; + } + public void validateRepaymentPeriodWithGraceSettings() { final List dataValidationErrors = new ArrayList<>(); final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loanproduct");