Validating Expected disbursal date for holiday or nonworking day
This commit is contained in:
committed by
Vishwas Babu A J
parent
55af36dec0
commit
ce93ec677e
+2
-2
@@ -15,8 +15,8 @@ import org.springframework.data.repository.query.Param;
|
||||
|
||||
public interface HolidayRepository extends JpaRepository<Holiday, Long>,
|
||||
JpaSpecificationExecutor<Holiday> {
|
||||
@Query("select holiday from Holiday holiday, IN(holiday.offices) office where holiday.fromDate >= :fromDate and office.id = :officeId")
|
||||
List<Holiday> findByOfficeIdAndGreaterThanDate(@Param("officeId") Long officeId, @Param("fromDate") Date fromDate);
|
||||
@Query("select holiday from Holiday holiday, IN(holiday.offices) office where (holiday.fromDate >= :date OR :date <= holiday.toDate) and office.id = :officeId")
|
||||
List<Holiday> findByOfficeIdAndGreaterThanDate(@Param("officeId") Long officeId, @Param("date") Date date);
|
||||
|
||||
@Query("from Holiday holiday where holiday.processed = false")
|
||||
List<Holiday> findUnprocessed();
|
||||
|
||||
+8
@@ -2511,4 +2511,12 @@ public class Loan extends AbstractPersistable<Long> {
|
||||
return this.termPeriodFrequencyType;
|
||||
}
|
||||
|
||||
public void validateExpectedDisbursementForHolidayAndNonWorkingDay(WorkingDays workingDays, boolean isHolidayEnabled,
|
||||
List<Holiday> holidays) {
|
||||
// validate if disbursement date is a holiday or a non-working day
|
||||
validateDisbursementDateIsOnNonWorkingDay(workingDays);
|
||||
validateDisbursementDateIsOnHoliday(isHolidayEnabled, holidays);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+4
-2
@@ -224,6 +224,10 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
||||
final Map<String, Object> changes = existingLoanApplication.loanApplicationModification(command, possiblyModifedLoanCharges,
|
||||
possiblyModifedLoanCollateralItems, this.aprCalculator);
|
||||
|
||||
if (changes.containsKey("expectedDisbursementDate")) {
|
||||
this.loanAssembler.validateExpectedDisbursementForHolidayAndNonWorkingDay(existingLoanApplication);
|
||||
}
|
||||
|
||||
final String clientIdParamName = "clientId";
|
||||
if (changes.containsKey(clientIdParamName)) {
|
||||
final Long clientId = command.longValueOfParameterNamed(clientIdParamName);
|
||||
@@ -245,8 +249,6 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
||||
}
|
||||
|
||||
validateSubmittedOnDate(existingLoanApplication);
|
||||
// validate min and maximum constraints
|
||||
this.fromApiJsonDeserializer.validateForModify(command.json());
|
||||
final LoanProductRelatedDetail productRelatedDetail = existingLoanApplication.repaymentScheduleDetail();
|
||||
this.fromApiJsonDeserializer.validateLoanTermAndRepaidEveryValues(existingLoanApplication.getTermFrequency(), existingLoanApplication.getTermPeriodFrequencyType(),
|
||||
productRelatedDetail.getNumberOfRepayments(), productRelatedDetail.getRepayEvery(),
|
||||
|
||||
+11
-1
@@ -22,8 +22,8 @@ import org.mifosplatform.organisation.staff.domain.Staff;
|
||||
import org.mifosplatform.organisation.staff.domain.StaffRepository;
|
||||
import org.mifosplatform.organisation.staff.exception.StaffNotFoundException;
|
||||
import org.mifosplatform.organisation.staff.exception.StaffRoleException;
|
||||
import org.mifosplatform.organisation.workingdays.domain.WorkingDaysRepositoryWrapper;
|
||||
import org.mifosplatform.organisation.workingdays.domain.WorkingDays;
|
||||
import org.mifosplatform.organisation.workingdays.domain.WorkingDaysRepositoryWrapper;
|
||||
import org.mifosplatform.portfolio.client.domain.Client;
|
||||
import org.mifosplatform.portfolio.client.domain.ClientRepositoryWrapper;
|
||||
import org.mifosplatform.portfolio.collateral.domain.LoanCollateral;
|
||||
@@ -238,4 +238,14 @@ public class LoanAssembler {
|
||||
}
|
||||
return strategy;
|
||||
}
|
||||
|
||||
public void validateExpectedDisbursementForHolidayAndNonWorkingDay(final Loan loanApplication) {
|
||||
|
||||
final boolean isHolidayEnabled = this.configurationDomainService.isRescheduleRepaymentsOnHolidaysEnabled();
|
||||
final List<Holiday> holidays = this.holidayRepository.findByOfficeIdAndGreaterThanDate(loanApplication.getOfficeId(),
|
||||
loanApplication.getExpectedDisbursedOnLocalDate().toDate());
|
||||
final WorkingDays workingDays = this.workingDaysRepository.findOne();
|
||||
|
||||
loanApplication.validateExpectedDisbursementForHolidayAndNonWorkingDay(workingDays,isHolidayEnabled,holidays);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user