diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 330c116ae..bbaaf0756 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -31104,7 +31104,7 @@ Content-Type: application/json
-POST https://DomainName/api/v1/accrualaccounting
+POST https://DomainName/api/v1/runaccruals
POST financialactivityaccounts
@@ -31145,7 +31145,7 @@ Request Body:
{
"locale": "en",
"dateFormat": "dd MMMM yyyy",
- "accrueTill":"04 June 2014"
+ "tillDate":"04 June 2014"
}
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/accounting/PeriodicAccrualAccountingHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/accounting/PeriodicAccrualAccountingHelper.java
index acf88cf35..307f65bf2 100755
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/accounting/PeriodicAccrualAccountingHelper.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/accounting/PeriodicAccrualAccountingHelper.java
@@ -15,7 +15,7 @@ import com.jayway.restassured.specification.ResponseSpecification;
public class PeriodicAccrualAccountingHelper {
- private static final String PERIODIC_ACCRUAL_URL = "/mifosng-provider/api/v1/accrualaccounting";
+ private static final String PERIODIC_ACCRUAL_URL = "/mifosng-provider/api/v1/runaccruals";
private final RequestSpecification requestSpec;
private final ResponseSpecification responseSpec;
@@ -33,7 +33,7 @@ public class PeriodicAccrualAccountingHelper {
final HashMap map = new HashMap<>();
map.put("dateFormat", "dd MMMM yyyy");
map.put("locale", "en_GB");
- map.put("accrueTill", date);
+ map.put("tillDate", date);
return new Gson().toJson(map);
}
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingApiResource.java
index e7e558b2c..e70f71853 100755
--- a/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingApiResource.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingApiResource.java
@@ -20,7 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
-@Path("/accrualaccounting")
+@Path("/runaccruals")
@Component
@Scope("singleton")
public class AccrualAccountingApiResource {
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingConstants.java b/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingConstants.java
index 4dee52804..c425ce0ee 100755
--- a/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingConstants.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/accounting/accrual/api/AccrualAccountingConstants.java
@@ -11,7 +11,7 @@ import java.util.Set;
public class AccrualAccountingConstants {
- public static final String accrueTillParamName = "accrueTill";
+ public static final String accrueTillParamName = "tillDate";
public static final String localeParamName = "locale";
public static final String dateFormatParamName = "dateFormat";
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java
index b330eab08..11bead0fd 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java
@@ -231,7 +231,9 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener
if (reducePrincipal.isGreaterThanZero()) {
switch (loanApplicationTerms.getRescheduleStrategyMethod()) {
case REDUCE_EMI_AMOUNT:
- loanApplicationTerms.setFixedEmiAmount(null);
+ if (!loanApplicationTerms.isMultiDisburseLoan()) {
+ loanApplicationTerms.setFixedEmiAmount(null);
+ }
fixedEmiAmount = fixedEmiAmount.zero();
outstandingBalance = outstandingBalance.minus(reducePrincipal);
balanceForcalculation = balanceForcalculation.minus(reducePrincipal);
@@ -1659,13 +1661,14 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener
.getId() != null && loanTransaction.getId().compareTo(precloseTransaction.getId()) == 1)))) {
precloseTransaction = loanTransaction;
}
- collectedPrincipal = collectedPrincipal.plus(loanTransaction.getPrincipalPortion());
+ collectedPrincipal = collectedPrincipal.plus(loanTransaction.getPrincipalPortion());
}
if (precloseTransaction != null) {
LoanRepaymentScheduleInstallment loanRepaymentScheduleInstallment = calculatePrepaymentAmount(installments, currency,
precloseTransaction.getTransactionDate(), applicationTerms.getInterestChargedFromLocalDate(), applicationTerms, mc,
loanCharges);
- Money pendingPrinciapl = applicationTerms.getPrincipal().minus(collectedPrincipal).plus(precloseTransaction.getPrincipalPortion());
+ Money pendingPrinciapl = applicationTerms.getPrincipal().minus(collectedPrincipal)
+ .plus(precloseTransaction.getPrincipalPortion());
if (pendingPrinciapl.isGreaterThan(loanRepaymentScheduleInstallment.getPrincipal(currency))
|| precloseTransaction.getAmount(currency).isLessThan(loanRepaymentScheduleInstallment.getTotalOutstanding(currency))) {
precloseTransaction = null;
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 da809b704..774b07f9b 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
@@ -61,6 +61,7 @@ import org.mifosplatform.portfolio.calendar.domain.CalendarInstance;
import org.mifosplatform.portfolio.calendar.domain.CalendarInstanceRepository;
import org.mifosplatform.portfolio.calendar.domain.CalendarRepository;
import org.mifosplatform.portfolio.calendar.domain.CalendarType;
+import org.mifosplatform.portfolio.calendar.exception.CalendarParameterUpdateNotSupportedException;
import org.mifosplatform.portfolio.charge.domain.Charge;
import org.mifosplatform.portfolio.charge.domain.ChargePaymentMode;
import org.mifosplatform.portfolio.charge.domain.ChargeRepositoryWrapper;
@@ -1732,6 +1733,10 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
// loop through each loan to reschedule the repayment dates
for (final Loan loan : loans) {
if (loan != null) {
+ if(loan.repaymentScheduleDetail().isInterestRecalculationEnabled()){
+ final String defaultUserMessage = "Meeting calendar type update is not supported";
+ throw new CalendarParameterUpdateNotSupportedException("jlg.loan.recalculation", defaultUserMessage);
+ }
holidays = this.holidayRepository.findByOfficeIdAndGreaterThanDate(loan.getOfficeId(), loan.getDisbursementDate().toDate());
loan.updateLoanRepaymentScheduleDates(calendar.getStartDateLocalDate(), calendar.getRecurrence(), isHolidayEnabled,
holidays, workingDays);