diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm
index 06003c97c..93ed9ff9f 100644
--- a/api-docs/apiLive.htm
+++ b/api-docs/apiLive.htm
@@ -11566,6 +11566,13 @@ An enumeration that indicates the type of transaction processing strategy to be
Specifies rest frequency start date for interest recalculation.
|
+
+ | preCloseInterestCalculationStrategy |
+
+
+ Specifies applicable days for interest calculation on pre close of a loan.
+ Example Values:1=Calculate till pre closure date, 2=Calculate till rest frequency date |
+
| isArrearsBasedOnOriginalSchedule |
@@ -11687,6 +11694,11 @@ GET https://DomainName/api/v1/loanproducts
"code":"interestRecalculationFrequencyType.same.as.repayment.period",
"value":"Same as repayment period"
},
+ "preCloseInterestCalculationStrategy": {
+ "id":1,
+ "code":"loanPreCloseInterestCalculationStrategy.tillPreClosureDate",
+ "value":"Till preclose Date"
+ },
"isArrearsBasedOnOriginalSchedule" : true
},
"accountingRule": {
@@ -11789,7 +11801,11 @@ GET https://DomainName/api/v1/loanproducts/template
"id": 3,
"code": "loanRescheduleStrategyMethod.reduce.emi.amount",
"value": "Reduce EMI amount"
- }
+ },"preCloseInterestCalculationStrategy": {
+ "id":1,
+ "code":"loanPreCloseInterestCalculationStrategy.tillPreClosureDate",
+ "value":"Till preclose Date"
+ }
},
"paymentTypeOptions": [
{
@@ -11825,6 +11841,18 @@ GET https://DomainName/api/v1/loanproducts/template
"value": "Months"
}
],
+ "preCloseInterestCalculationStrategyOptions": [
+ {
+ "id":1,
+ "code":"loanPreCloseInterestCalculationStrategy.tillPreClosureDate",
+ "value":"Till preclose Date"
+ },
+ {
+ "id":2,
+ "code":"loanPreCloseInterestCalculationStrategy.tillRestFrequencyDate",
+ "value":"Till rest Frequency Date"
+ }
+ ],
"interestRateFrequencyTypeOptions": [
{
"id": 2,
@@ -12855,7 +12883,7 @@ GET https://DomainName/api/v1/loanproducts/{productId}
Additional Optional Fields if interest recalculation is enabled(true) |
- | isArrearsBasedOnOriginalSchedule |
+ isArrearsBasedOnOriginalSchedule, preCloseInterestCalculationStrategy |
@@ -12981,6 +13009,7 @@ Request Body:
"interestRecalculationCompoundingMethod":"0",
"rescheduleStrategyMethod":"3",
"recalculationRestFrequencyType":"1",
+ "preCloseInterestCalculationStrategy":1,
"accountingRule":"2",
"fundSourceAccountId":"4",
"loanPortfolioAccountId":"8",
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java
index bade7d93c..7e147ed64 100644
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java
@@ -1722,9 +1722,8 @@ public class ClientLoanIntegrationTest {
System.out.println("----------Make repayment 3 advance------------");
this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3303"), loanID);
- this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
- new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3149.11"),
- JournalEntry.TransactionType.CREDIT));
+ this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("3303"),
+ JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3149.11"), JournalEntry.TransactionType.CREDIT));
this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("122.38"),
JournalEntry.TransactionType.CREDIT));
@@ -2327,9 +2326,8 @@ public class ClientLoanIntegrationTest {
System.out.println("----------Make repayment 3 advance------------");
this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3303"), loanID);
- this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
- new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("31.51"),
- JournalEntry.TransactionType.CREDIT),
+ this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("3303"),
+ JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT),
new JournalEntry(Float.valueOf("122.38"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("3149.11"),
JournalEntry.TransactionType.CREDIT));
this.loanTransactionHelper.addChargesForLoan(
@@ -2948,9 +2946,8 @@ public class ClientLoanIntegrationTest {
System.out.println("----------Make repayment 3 advance------------");
this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3303"), loanID);
- this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
- new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("31.51"),
- JournalEntry.TransactionType.CREDIT),
+ this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("3303"),
+ JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT),
new JournalEntry(Float.valueOf("122.38"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("3149.11"),
JournalEntry.TransactionType.CREDIT));
@@ -3173,7 +3170,8 @@ public class ClientLoanIntegrationTest {
final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.MIFOS_STANDARD_STRATEGY,
LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_EMI_AMOUN,
- LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null, null);
+ LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null,
+ LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null);
final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE, null,
LoanApplicationTestBuilder.MIFOS_STANDARD_STRATEGY, new ArrayList(0));
@@ -3185,10 +3183,10 @@ public class ClientLoanIntegrationTest {
ArrayList loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
List