From 6f5e79b387ffacde90c68112ba88f98e4918ae20 Mon Sep 17 00:00:00 2001 From: mifoscontributer Date: Mon, 5 Aug 2013 13:03:14 +0530 Subject: [PATCH] MIFOSX-589 check edit transaction transactiondate for holiday or nonworking day --- .../mifosplatform/portfolio/loanaccount/domain/Loan.java | 6 +++++- .../service/LoanWritePlatformServiceJpaRepositoryImpl.java | 7 ++++++- 2 files changed, 11 insertions(+), 2 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 b30e73209..a5beb1e8c 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 @@ -1739,7 +1739,11 @@ public class Loan extends AbstractPersistable { public ChangedTransactionDetail adjustExistingTransaction(final LoanTransaction newTransactionDetail, final LoanLifecycleStateMachine loanLifecycleStateMachine, final LoanTransaction transactionForAdjustment, - final List existingTransactionIds, final List existingReversedTransactionIds) { + final List existingTransactionIds, final List existingReversedTransactionIds, final boolean isHolidayEnabled, + final List holidays, final WorkingDays workingDays) { + + validateRepaymentDateIsOnHoliday(newTransactionDetail.getTransactionDate(), isHolidayEnabled, holidays); + validateRepaymentDateIsOnNonWorkingDay(newTransactionDetail.getTransactionDate(), workingDays); ChangedTransactionDetail changedTransactionDetail = 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 5e594427d..9f7a8ed3b 100644 --- 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 @@ -486,8 +486,13 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf newTransactionDetail = LoanTransaction.waiver(loan, transactionAmountAsMoney, transactionDate); } + final boolean isHolidayEnabled = this.configurationDomainService.isRescheduleRepaymentsOnHolidaysEnabled(); + final List holidays = this.holidayRepository.findByOfficeIdAndGreaterThanDate(loan.getOfficeId(), transactionDate.toDate()); + final WorkingDays workingDays = this.workingDaysRepository.findOne(); + final ChangedTransactionDetail changedTransactionDetail = loan.adjustExistingTransaction(newTransactionDetail, - defaultLoanLifecycleStateMachine(), transactionToAdjust, existingTransactionIds, existingReversedTransactionIds); + defaultLoanLifecycleStateMachine(), transactionToAdjust, existingTransactionIds, existingReversedTransactionIds, + isHolidayEnabled, holidays, workingDays); if (newTransactionDetail.isGreaterThanZero(loan.getPrincpal().getCurrency())) { if (paymentDetail != null) {