FINERACT-2075: (chore) introduce lombok annotations to LoanProduct class.
- remove the redundant getters/setters methods from LoanProduct class. - replace the non-standard methods with the convenient ones. - modify other files that were depending on the old naming.
This commit is contained in:
+3
-3
@@ -1699,7 +1699,7 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
|
|||||||
this.disbursementDetails.clear();
|
this.disbursementDetails.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loanProduct.isMultiDisburseLoan() || loanProduct.canDefineInstallmentAmount()) {
|
if (loanProduct.isMultiDisburseLoan() || loanProduct.isCanDefineInstallmentAmount()) {
|
||||||
if (command.isChangeInBigDecimalParameterNamed(LoanApiConstants.emiAmountParameterName, this.fixedEmiAmount)) {
|
if (command.isChangeInBigDecimalParameterNamed(LoanApiConstants.emiAmountParameterName, this.fixedEmiAmount)) {
|
||||||
this.fixedEmiAmount = command.bigDecimalValueOfParameterNamed(LoanApiConstants.emiAmountParameterName);
|
this.fixedEmiAmount = command.bigDecimalValueOfParameterNamed(LoanApiConstants.emiAmountParameterName);
|
||||||
actualChanges.put(LoanApiConstants.emiAmountParameterName, this.fixedEmiAmount);
|
actualChanges.put(LoanApiConstants.emiAmountParameterName, this.fixedEmiAmount);
|
||||||
@@ -2561,7 +2561,7 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
|
|||||||
final LocalDate actualDisbursementDate, BigDecimal emiAmount, LocalDate nextPossibleRepaymentDate,
|
final LocalDate actualDisbursementDate, BigDecimal emiAmount, LocalDate nextPossibleRepaymentDate,
|
||||||
LocalDate rescheduledRepaymentDate) {
|
LocalDate rescheduledRepaymentDate) {
|
||||||
boolean isEmiAmountChanged = false;
|
boolean isEmiAmountChanged = false;
|
||||||
if ((this.loanProduct.isMultiDisburseLoan() || this.loanProduct.canDefineInstallmentAmount()) && emiAmount != null
|
if ((this.loanProduct.isMultiDisburseLoan() || this.loanProduct.isCanDefineInstallmentAmount()) && emiAmount != null
|
||||||
&& emiAmount.compareTo(retriveLastEmiAmount()) != 0) {
|
&& emiAmount.compareTo(retriveLastEmiAmount()) != 0) {
|
||||||
if (this.loanProduct.isMultiDisburseLoan()) {
|
if (this.loanProduct.isMultiDisburseLoan()) {
|
||||||
final LocalDate dateValue = null;
|
final LocalDate dateValue = null;
|
||||||
@@ -5057,7 +5057,7 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void validateActivityNotBeforeLastTransactionDate(final LoanEvent event, final LocalDate activityDate) {
|
private void validateActivityNotBeforeLastTransactionDate(final LoanEvent event, final LocalDate activityDate) {
|
||||||
if (!(this.repaymentScheduleDetail().isInterestRecalculationEnabled() || this.loanProduct().isHoldGuaranteeFundsEnabled())) {
|
if (!(this.repaymentScheduleDetail().isInterestRecalculationEnabled() || this.loanProduct().isHoldGuaranteeFunds())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LocalDate lastTransactionDate = getLastUserTransactionDate();
|
LocalDate lastTransactionDate = getLastUserTransactionDate();
|
||||||
|
|||||||
+4
-197
@@ -44,6 +44,8 @@ import java.util.LinkedHashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.fineract.accounting.common.AccountingRuleType;
|
import org.apache.fineract.accounting.common.AccountingRuleType;
|
||||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||||
@@ -77,6 +79,8 @@ import org.apache.fineract.portfolio.rate.domain.Rate;
|
|||||||
* They allow for constraints to be added at product level.
|
* They allow for constraints to be added at product level.
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
@Table(name = "m_product_loan", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name"),
|
@Table(name = "m_product_loan", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name"),
|
||||||
@UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE"),
|
@UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE"),
|
||||||
@UniqueConstraint(columnNames = { "short_name" }, name = "unq_short_name") })
|
@UniqueConstraint(columnNames = { "short_name" }, name = "unq_short_name") })
|
||||||
@@ -844,26 +848,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return this.loanProductRelatedDetail.getCurrency();
|
return this.loanProductRelatedDetail.getCurrency();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(final Fund fund) {
|
|
||||||
this.fund = fund;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTransactionProcessingStrategyCode(final String transactionProcessingStrategyCode) {
|
|
||||||
this.transactionProcessingStrategyCode = transactionProcessingStrategyCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTransactionProcessingStrategyCode() {
|
|
||||||
return this.transactionProcessingStrategyCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTransactionProcessingStrategyName(final String transactionProcessingStrategyName) {
|
|
||||||
this.transactionProcessingStrategyName = transactionProcessingStrategyName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRepaymentStrategy() {
|
|
||||||
return this.transactionProcessingStrategyCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasCurrencyCodeOf(final String currencyCode) {
|
public boolean hasCurrencyCodeOf(final String currencyCode) {
|
||||||
return this.loanProductRelatedDetail.hasCurrencyCodeOf(currencyCode);
|
return this.loanProductRelatedDetail.hasCurrencyCodeOf(currencyCode);
|
||||||
}
|
}
|
||||||
@@ -910,30 +894,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return updated;
|
return updated;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getAccountingType() {
|
|
||||||
return this.accountingRule;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Charge> getLoanProductCharges() {
|
|
||||||
return this.charges;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<LoanProductPaymentAllocationRule> getPaymentAllocationRules() {
|
|
||||||
return this.paymentAllocationRules;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<LoanProductCreditAllocationRule> getCreditAllocationRules() {
|
|
||||||
return this.creditAllocationRules;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void update(final LoanProductConfigurableAttributes loanConfigurableAttributes) {
|
|
||||||
this.loanConfigurableAttributes = loanConfigurableAttributes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoanProductConfigurableAttributes getLoanProductConfigurableAttributes() {
|
|
||||||
return this.loanConfigurableAttributes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> update(final JsonCommand command, final AprCalculator aprCalculator, FloatingRate floatingRate) {
|
public Map<String, Object> update(final JsonCommand command, final AprCalculator aprCalculator, FloatingRate floatingRate) {
|
||||||
|
|
||||||
final Map<String, Object> actualChanges = this.loanProductRelatedDetail.update(command, aprCalculator);
|
final Map<String, Object> actualChanges = this.loanProductRelatedDetail.update(command, aprCalculator);
|
||||||
@@ -1395,10 +1355,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return AccountingRuleType.CASH_BASED.getValue().equals(this.accountingRule);
|
return AccountingRuleType.CASH_BASED.getValue().equals(this.accountingRule);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAccrualBasedAccountingEnabled() {
|
|
||||||
return isUpfrontAccrualAccountingEnabled() || isPeriodicAccrualAccountingEnabled();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isUpfrontAccrualAccountingEnabled() {
|
public boolean isUpfrontAccrualAccountingEnabled() {
|
||||||
return AccountingRuleType.ACCRUAL_UPFRONT.getValue().equals(this.accountingRule);
|
return AccountingRuleType.ACCRUAL_UPFRONT.getValue().equals(this.accountingRule);
|
||||||
}
|
}
|
||||||
@@ -1457,30 +1413,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return this.loanProductMinMaxConstraints;
|
return this.loanProductMinMaxConstraints;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isIncludeInBorrowerCycle() {
|
|
||||||
return this.includeInBorrowerCycle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDate getStartDate() {
|
|
||||||
return this.startDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDate getCloseDate() {
|
|
||||||
return this.closeDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String productName() {
|
|
||||||
return this.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExternalId getExternalId() {
|
|
||||||
return this.externalId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean useBorrowerCycle() {
|
|
||||||
return this.useBorrowerCycle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isMultiDisburseLoan() {
|
public boolean isMultiDisburseLoan() {
|
||||||
return this.loanProductTrancheDetails.isMultiDisburseLoan();
|
return this.loanProductTrancheDetails.isMultiDisburseLoan();
|
||||||
}
|
}
|
||||||
@@ -1512,14 +1444,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return borrowerCycleVariation;
|
return borrowerCycleVariation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean syncExpectedWithDisbursementDate() {
|
|
||||||
return syncExpectedWithDisbursementDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSyncExpectedWithDisbursementDate(boolean syncExpectedWithDisbursementDate) {
|
|
||||||
this.syncExpectedWithDisbursementDate = syncExpectedWithDisbursementDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, BigDecimal> fetchBorrowerCycleVariationsForCycleNumber(final Integer cycleNumber) {
|
public Map<String, BigDecimal> fetchBorrowerCycleVariationsForCycleNumber(final Integer cycleNumber) {
|
||||||
Map<String, BigDecimal> borrowerCycleVariations = new HashMap<>();
|
Map<String, BigDecimal> borrowerCycleVariations = new HashMap<>();
|
||||||
borrowerCycleVariations.put(LoanProductConstants.PRINCIPAL, this.loanProductRelatedDetail.getPrincipal().getAmount());
|
borrowerCycleVariations.put(LoanProductConstants.PRINCIPAL, this.loanProductRelatedDetail.getPrincipal().getAmount());
|
||||||
@@ -1627,26 +1551,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return this.loanProductRelatedDetail.fetchDaysInYearType();
|
return this.loanProductRelatedDetail.fetchDaysInYearType();
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoanProductInterestRecalculationDetails getProductInterestRecalculationDetails() {
|
|
||||||
return this.productInterestRecalculationDetails;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isHoldGuaranteeFundsEnabled() {
|
|
||||||
return this.holdGuaranteeFunds;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoanProductGuaranteeDetails getLoanProductGuaranteeDetails() {
|
|
||||||
return this.loanProductGuaranteeDetails;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getShortName() {
|
|
||||||
return this.shortName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getPrincipalThresholdForLastInstallment() {
|
|
||||||
return this.principalThresholdForLastInstallment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isArrearsBasedOnOriginalSchedule() {
|
public boolean isArrearsBasedOnOriginalSchedule() {
|
||||||
boolean isBasedOnOriginalSchedule = false;
|
boolean isBasedOnOriginalSchedule = false;
|
||||||
if (getProductInterestRecalculationDetails() != null) {
|
if (getProductInterestRecalculationDetails() != null) {
|
||||||
@@ -1655,14 +1559,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return isBasedOnOriginalSchedule;
|
return isBasedOnOriginalSchedule;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canDefineInstallmentAmount() {
|
|
||||||
return this.canDefineInstallmentAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getInstallmentAmountInMultiplesOf() {
|
|
||||||
return this.installmentAmountInMultiplesOf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoanPreClosureInterestCalculationStrategy preCloseInterestCalculationStrategy() {
|
public LoanPreClosureInterestCalculationStrategy preCloseInterestCalculationStrategy() {
|
||||||
LoanPreClosureInterestCalculationStrategy preCloseInterestCalculationStrategy = LoanPreClosureInterestCalculationStrategy.NONE;
|
LoanPreClosureInterestCalculationStrategy preCloseInterestCalculationStrategy = LoanPreClosureInterestCalculationStrategy.NONE;
|
||||||
if (this.isInterestRecalculationEnabled()) {
|
if (this.isInterestRecalculationEnabled()) {
|
||||||
@@ -1671,18 +1567,6 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return preCloseInterestCalculationStrategy;
|
return preCloseInterestCalculationStrategy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoanProductRelatedDetail getLoanProductRelatedDetail() {
|
|
||||||
return loanProductRelatedDetail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isLinkedToFloatingInterestRate() {
|
|
||||||
return this.isLinkedToFloatingInterestRate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoanProductFloatingRates getFloatingRates() {
|
|
||||||
return this.floatingRates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Collection<FloatingRatePeriodData> fetchInterestRates(final FloatingRateDTO floatingRateDTO) {
|
public Collection<FloatingRatePeriodData> fetchInterestRates(final FloatingRateDTO floatingRateDTO) {
|
||||||
Collection<FloatingRatePeriodData> applicableRates = new ArrayList<>(1);
|
Collection<FloatingRatePeriodData> applicableRates = new ArrayList<>(1);
|
||||||
if (isLinkedToFloatingInterestRate()) {
|
if (isLinkedToFloatingInterestRate()) {
|
||||||
@@ -1691,92 +1575,15 @@ public class LoanProduct extends AbstractPersistableCustom {
|
|||||||
return applicableRates;
|
return applicableRates;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean allowVariabeInstallments() {
|
|
||||||
return this.allowVariabeInstallments;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean canUseForTopup() {
|
|
||||||
return this.canUseForTopup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isEqualAmortization() {
|
public boolean isEqualAmortization() {
|
||||||
return loanProductRelatedDetail.isEqualAmortization();
|
return loanProductRelatedDetail.isEqualAmortization();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Rate> getRates() {
|
|
||||||
return rates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRates(List<Rate> rates) {
|
|
||||||
this.rates = rates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getFixedPrincipalPercentagePerInstallment() {
|
|
||||||
return fixedPrincipalPercentagePerInstallment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isDisallowExpectedDisbursements() {
|
|
||||||
return disallowExpectedDisbursements;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAllowApprovedDisbursedAmountsOverApplied() {
|
|
||||||
return allowApprovedDisbursedAmountsOverApplied;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOverAppliedCalculationType() {
|
|
||||||
return overAppliedCalculationType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getOverAppliedNumber() {
|
|
||||||
return overAppliedNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDisallowExpectedDisbursements(boolean disallowExpectedDisbursements) {
|
|
||||||
this.disallowExpectedDisbursements = disallowExpectedDisbursements;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAllowApprovedDisbursedAmountsOverApplied(boolean allowApprovedDisbursedAmountsOverApplied) {
|
|
||||||
this.allowApprovedDisbursedAmountsOverApplied = allowApprovedDisbursedAmountsOverApplied;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOverAppliedCalculationType(String overAppliedCalculationType) {
|
|
||||||
this.overAppliedCalculationType = overAppliedCalculationType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOverAppliedNumber(Integer overAppliedNumber) {
|
|
||||||
this.overAppliedNumber = overAppliedNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLoanProductTrancheDetails(LoanProductTrancheDetails loanProducTrancheDetails) {
|
|
||||||
this.loanProductTrancheDetails = loanProducTrancheDetails;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DelinquencyBucket getDelinquencyBucket() {
|
|
||||||
return delinquencyBucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDelinquencyBucket(DelinquencyBucket delinquencyBucket) {
|
|
||||||
this.delinquencyBucket = delinquencyBucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getDueDaysForRepaymentEvent() {
|
|
||||||
return this.dueDaysForRepaymentEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getOverDueDaysForRepaymentEvent() {
|
|
||||||
return this.overDueDaysForRepaymentEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RepaymentStartDateType getRepaymentStartDateType() {
|
public RepaymentStartDateType getRepaymentStartDateType() {
|
||||||
return this.repaymentStartDateType == null ? RepaymentStartDateType.INVALID : this.repaymentStartDateType;
|
return this.repaymentStartDateType == null ? RepaymentStartDateType.INVALID : this.repaymentStartDateType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEnableInstallmentLevelDelinquency() {
|
|
||||||
return enableInstallmentLevelDelinquency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateEnableInstallmentLevelDelinquency(boolean enableInstallmentLevelDelinquency) {
|
public void updateEnableInstallmentLevelDelinquency(boolean enableInstallmentLevelDelinquency) {
|
||||||
this.enableInstallmentLevelDelinquency = enableInstallmentLevelDelinquency;
|
this.enableInstallmentLevelDelinquency = enableInstallmentLevelDelinquency;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -107,7 +107,7 @@ public class GuarantorDomainServiceImpl implements GuarantorDomainService {
|
|||||||
public void validateGuarantorBusinessRules(Loan loan) {
|
public void validateGuarantorBusinessRules(Loan loan) {
|
||||||
LoanProduct loanProduct = loan.loanProduct();
|
LoanProduct loanProduct = loan.loanProduct();
|
||||||
BigDecimal principal = loan.getPrincipal().getAmount();
|
BigDecimal principal = loan.getPrincipal().getAmount();
|
||||||
if (loanProduct.isHoldGuaranteeFundsEnabled()) {
|
if (loanProduct.isHoldGuaranteeFunds()) {
|
||||||
LoanProductGuaranteeDetails guaranteeData = loanProduct.getLoanProductGuaranteeDetails();
|
LoanProductGuaranteeDetails guaranteeData = loanProduct.getLoanProductGuaranteeDetails();
|
||||||
final List<Guarantor> existGuarantorList = this.guarantorRepository.findByLoan(loan);
|
final List<Guarantor> existGuarantorList = this.guarantorRepository.findByLoan(loan);
|
||||||
BigDecimal mandatoryAmount = principal.multiply(guaranteeData.getMandatoryGuarantee()).divide(BigDecimal.valueOf(100));
|
BigDecimal mandatoryAmount = principal.multiply(guaranteeData.getMandatoryGuarantee()).divide(BigDecimal.valueOf(100));
|
||||||
@@ -313,7 +313,7 @@ public class GuarantorDomainServiceImpl implements GuarantorDomainService {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private void holdGuarantorFunds(final Loan loan) {
|
private void holdGuarantorFunds(final Loan loan) {
|
||||||
if (loan.loanProduct().isHoldGuaranteeFundsEnabled()) {
|
if (loan.loanProduct().isHoldGuaranteeFunds()) {
|
||||||
final List<Guarantor> existGuarantorList = this.guarantorRepository.findByLoan(loan);
|
final List<Guarantor> existGuarantorList = this.guarantorRepository.findByLoan(loan);
|
||||||
List<GuarantorFundingDetails> guarantorFundingDetailList = new ArrayList<>();
|
List<GuarantorFundingDetails> guarantorFundingDetailList = new ArrayList<>();
|
||||||
List<DepositAccountOnHoldTransaction> onHoldTransactions = new ArrayList<>();
|
List<DepositAccountOnHoldTransaction> onHoldTransactions = new ArrayList<>();
|
||||||
|
|||||||
+1
-1
@@ -123,7 +123,7 @@ public class GuarantorWritePlatformServiceJpaRepositoryIImpl implements Guaranto
|
|||||||
GuarantorFundStatusType.ACTIVE.getValue(), guarantorCommand.getAmount());
|
GuarantorFundStatusType.ACTIVE.getValue(), guarantorCommand.getAmount());
|
||||||
guarantorFundingDetails.add(fundingDetails);
|
guarantorFundingDetails.add(fundingDetails);
|
||||||
if (loan.isDisbursed()
|
if (loan.isDisbursed()
|
||||||
|| (loan.isApproved() && (loan.getGuaranteeAmount() != null || loan.loanProduct().isHoldGuaranteeFundsEnabled()))) {
|
|| (loan.isApproved() && (loan.getGuaranteeAmount() != null || loan.loanProduct().isHoldGuaranteeFunds()))) {
|
||||||
this.guarantorDomainService.assignGuarantor(fundingDetails, DateUtils.getBusinessLocalDate());
|
this.guarantorDomainService.assignGuarantor(fundingDetails, DateUtils.getBusinessLocalDate());
|
||||||
loan.updateGuaranteeAmount(fundingDetails.getAmount());
|
loan.updateGuaranteeAmount(fundingDetails.getAmount());
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1004,7 +1004,7 @@ public class LoanScheduleAssembler {
|
|||||||
|
|
||||||
private void extractLoanTermVariations(final Loan loan, final String json, final List<LoanTermVariations> loanTermVariations) {
|
private void extractLoanTermVariations(final Loan loan, final String json, final List<LoanTermVariations> loanTermVariations) {
|
||||||
final JsonElement element = this.fromApiJsonHelper.parse(json);
|
final JsonElement element = this.fromApiJsonHelper.parse(json);
|
||||||
if (loan.loanProduct().allowVariabeInstallments()) {
|
if (loan.loanProduct().isAllowVariabeInstallments()) {
|
||||||
if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.exceptionParamName, element)) {
|
if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.exceptionParamName, element)) {
|
||||||
final JsonObject topLevelJsonElement = element.getAsJsonObject();
|
final JsonObject topLevelJsonElement = element.getAsJsonObject();
|
||||||
final String dateFormat = this.fromApiJsonHelper.extractDateFormatParameter(topLevelJsonElement);
|
final String dateFormat = this.fromApiJsonHelper.extractDateFormatParameter(topLevelJsonElement);
|
||||||
|
|||||||
+1
-1
@@ -118,7 +118,7 @@ public class LoanScheduleCalculationPlatformServiceImpl implements LoanScheduleC
|
|||||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||||
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
||||||
|
|
||||||
if (loanProduct.useBorrowerCycle()) {
|
if (loanProduct.isUseBorrowerCycle()) {
|
||||||
final Long clientId = this.fromJsonHelper.extractLongNamed("clientId", query.parsedJson());
|
final Long clientId = this.fromJsonHelper.extractLongNamed("clientId", query.parsedJson());
|
||||||
final Long groupId = this.fromJsonHelper.extractLongNamed("groupId", query.parsedJson());
|
final Long groupId = this.fromJsonHelper.extractLongNamed("groupId", query.parsedJson());
|
||||||
Integer cycleNumber = 0;
|
Integer cycleNumber = 0;
|
||||||
|
|||||||
+5
-5
@@ -517,7 +517,7 @@ public final class LoanApplicationCommandFromApiJsonHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.fromApiJsonHelper.parameterExists(LoanApiConstants.emiAmountParameterName, element)) {
|
if (this.fromApiJsonHelper.parameterExists(LoanApiConstants.emiAmountParameterName, element)) {
|
||||||
if (!(loanProduct.canDefineInstallmentAmount() || loanProduct.isMultiDisburseLoan())) {
|
if (!(loanProduct.isCanDefineInstallmentAmount() || loanProduct.isMultiDisburseLoan())) {
|
||||||
List<String> unsupportedParameterList = new ArrayList<>();
|
List<String> unsupportedParameterList = new ArrayList<>();
|
||||||
unsupportedParameterList.add(LoanApiConstants.emiAmountParameterName);
|
unsupportedParameterList.add(LoanApiConstants.emiAmountParameterName);
|
||||||
throw new UnsupportedParameterException(unsupportedParameterList);
|
throw new UnsupportedParameterException(unsupportedParameterList);
|
||||||
@@ -536,7 +536,7 @@ public final class LoanApplicationCommandFromApiJsonHelper {
|
|||||||
.ignoreIfNull().positiveAmount();
|
.ignoreIfNull().positiveAmount();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loanProduct.canUseForTopup() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.isTopup, element)) {
|
if (loanProduct.isCanUseForTopup() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.isTopup, element)) {
|
||||||
final Boolean isTopup = this.fromApiJsonHelper.extractBooleanNamed(LoanApiConstants.isTopup, element);
|
final Boolean isTopup = this.fromApiJsonHelper.extractBooleanNamed(LoanApiConstants.isTopup, element);
|
||||||
baseDataValidator.reset().parameter(LoanApiConstants.isTopup).value(isTopup).validateForBooleanValue();
|
baseDataValidator.reset().parameter(LoanApiConstants.isTopup).value(isTopup).validateForBooleanValue();
|
||||||
|
|
||||||
@@ -1079,7 +1079,7 @@ public final class LoanApplicationCommandFromApiJsonHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.fromApiJsonHelper.parameterExists(LoanApiConstants.emiAmountParameterName, element)) {
|
if (this.fromApiJsonHelper.parameterExists(LoanApiConstants.emiAmountParameterName, element)) {
|
||||||
if (!(loanProduct.canDefineInstallmentAmount() || loanProduct.isMultiDisburseLoan())) {
|
if (!(loanProduct.isCanDefineInstallmentAmount() || loanProduct.isMultiDisburseLoan())) {
|
||||||
List<String> unsupportedParameterList = new ArrayList<>();
|
List<String> unsupportedParameterList = new ArrayList<>();
|
||||||
unsupportedParameterList.add(LoanApiConstants.emiAmountParameterName);
|
unsupportedParameterList.add(LoanApiConstants.emiAmountParameterName);
|
||||||
throw new UnsupportedParameterException(unsupportedParameterList);
|
throw new UnsupportedParameterException(unsupportedParameterList);
|
||||||
@@ -1099,7 +1099,7 @@ public final class LoanApplicationCommandFromApiJsonHelper {
|
|||||||
.ignoreIfNull().positiveAmount();
|
.ignoreIfNull().positiveAmount();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loanProduct.canUseForTopup() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.isTopup, element)) {
|
if (loanProduct.isCanUseForTopup() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.isTopup, element)) {
|
||||||
final Boolean isTopup = this.fromApiJsonHelper.extractBooleanNamed(LoanApiConstants.isTopup, element);
|
final Boolean isTopup = this.fromApiJsonHelper.extractBooleanNamed(LoanApiConstants.isTopup, element);
|
||||||
baseDataValidator.reset().parameter(LoanApiConstants.isTopup).value(isTopup).ignoreIfNull().validateForBooleanValue();
|
baseDataValidator.reset().parameter(LoanApiConstants.isTopup).value(isTopup).ignoreIfNull().validateForBooleanValue();
|
||||||
|
|
||||||
@@ -1422,7 +1422,7 @@ public final class LoanApplicationCommandFromApiJsonHelper {
|
|||||||
.failWithCode("not.supported.for.selected.interest.calcualtion.type");
|
.failWithCode("not.supported.for.selected.interest.calcualtion.type");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loanProduct.allowVariabeInstallments()) {
|
if (loanProduct.isAllowVariabeInstallments()) {
|
||||||
baseDataValidator.reset().parameter(LoanProductConstants.allowVariableInstallmentsParamName)
|
baseDataValidator.reset().parameter(LoanProductConstants.allowVariableInstallmentsParamName)
|
||||||
.failWithCode("not.supported.for.selected.interest.calcualtion.type");
|
.failWithCode("not.supported.for.selected.interest.calcualtion.type");
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -85,7 +85,7 @@ public class VariableLoanScheduleFromApiJsonValidator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final JsonElement element = this.fromApiJsonHelper.parse(json);
|
final JsonElement element = this.fromApiJsonHelper.parse(json);
|
||||||
if (loan.loanProduct().allowVariabeInstallments()) {
|
if (loan.loanProduct().isAllowVariabeInstallments()) {
|
||||||
if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.exceptionParamName, element)) {
|
if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(LoanApiConstants.exceptionParamName, element)) {
|
||||||
final JsonObject topLevelJsonElement = element.getAsJsonObject();
|
final JsonObject topLevelJsonElement = element.getAsJsonObject();
|
||||||
final String dateFormat = this.fromApiJsonHelper.extractDateFormatParameter(topLevelJsonElement);
|
final String dateFormat = this.fromApiJsonHelper.extractDateFormatParameter(topLevelJsonElement);
|
||||||
|
|||||||
+18
-18
@@ -235,7 +235,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||||
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
||||||
|
|
||||||
if (loanProduct.useBorrowerCycle()) {
|
if (loanProduct.isUseBorrowerCycle()) {
|
||||||
Integer cycleNumber = 0;
|
Integer cycleNumber = 0;
|
||||||
if (clientId != null) {
|
if (clientId != null) {
|
||||||
cycleNumber = this.loanReadPlatformService.retriveLoanCounter(clientId, loanProduct.getId());
|
cycleNumber = this.loanReadPlatformService.retriveLoanCounter(clientId, loanProduct.getId());
|
||||||
@@ -264,7 +264,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
|
|
||||||
final LoanProductRelatedDetail productRelatedDetail = newLoanApplication.repaymentScheduleDetail();
|
final LoanProductRelatedDetail productRelatedDetail = newLoanApplication.repaymentScheduleDetail();
|
||||||
|
|
||||||
if (loanProduct.getLoanProductConfigurableAttributes() != null) {
|
if (loanProduct.getLoanConfigurableAttributes() != null) {
|
||||||
updateProductRelatedDetails(productRelatedDetail, newLoanApplication);
|
updateProductRelatedDetails(productRelatedDetail, newLoanApplication);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +273,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
productRelatedDetail.getRepayEvery(), productRelatedDetail.getRepaymentPeriodFrequencyType().getValue(),
|
productRelatedDetail.getRepayEvery(), productRelatedDetail.getRepaymentPeriodFrequencyType().getValue(),
|
||||||
newLoanApplication);
|
newLoanApplication);
|
||||||
|
|
||||||
if (loanProduct.canUseForTopup() && clientId != null) {
|
if (loanProduct.isCanUseForTopup() && clientId != null) {
|
||||||
final Boolean isTopup = command.booleanObjectValueOfParameterNamed(LoanApiConstants.isTopup);
|
final Boolean isTopup = command.booleanObjectValueOfParameterNamed(LoanApiConstants.isTopup);
|
||||||
if (null == isTopup) {
|
if (null == isTopup) {
|
||||||
newLoanApplication.setIsTopup(false);
|
newLoanApplication.setIsTopup(false);
|
||||||
@@ -553,7 +553,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
activeLoansLoanProductIds = this.loanRepositoryWrapper.findActiveLoansLoanProductIdsByClient(loan.getClientId(),
|
activeLoansLoanProductIds = this.loanRepositoryWrapper.findActiveLoansLoanProductIdsByClient(loan.getClientId(),
|
||||||
LoanStatus.ACTIVE.getValue());
|
LoanStatus.ACTIVE.getValue());
|
||||||
}
|
}
|
||||||
checkForProductMixRestrictions(activeLoansLoanProductIds, productId, loan.loanProduct().productName());
|
checkForProductMixRestrictions(activeLoansLoanProductIds, productId, loan.loanProduct().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkForProductMixRestrictions(final List<Long> activeLoansLoanProductIds, final Long productId,
|
private void checkForProductMixRestrictions(final List<Long> activeLoansLoanProductIds, final Long productId,
|
||||||
@@ -574,15 +574,15 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateProductRelatedDetails(LoanProductRelatedDetail productRelatedDetail, Loan loan) {
|
private void updateProductRelatedDetails(LoanProductRelatedDetail productRelatedDetail, Loan loan) {
|
||||||
final Boolean amortization = loan.loanProduct().getLoanProductConfigurableAttributes().getAmortizationBoolean();
|
final Boolean amortization = loan.loanProduct().getLoanConfigurableAttributes().getAmortizationBoolean();
|
||||||
final Boolean arrearsTolerance = loan.loanProduct().getLoanProductConfigurableAttributes().getArrearsToleranceBoolean();
|
final Boolean arrearsTolerance = loan.loanProduct().getLoanConfigurableAttributes().getArrearsToleranceBoolean();
|
||||||
final Boolean graceOnArrearsAging = loan.loanProduct().getLoanProductConfigurableAttributes().getGraceOnArrearsAgingBoolean();
|
final Boolean graceOnArrearsAging = loan.loanProduct().getLoanConfigurableAttributes().getGraceOnArrearsAgingBoolean();
|
||||||
final Boolean interestCalcPeriod = loan.loanProduct().getLoanProductConfigurableAttributes().getInterestCalcPeriodBoolean();
|
final Boolean interestCalcPeriod = loan.loanProduct().getLoanConfigurableAttributes().getInterestCalcPeriodBoolean();
|
||||||
final Boolean interestMethod = loan.loanProduct().getLoanProductConfigurableAttributes().getInterestMethodBoolean();
|
final Boolean interestMethod = loan.loanProduct().getLoanConfigurableAttributes().getInterestMethodBoolean();
|
||||||
final Boolean graceOnPrincipalAndInterestPayment = loan.loanProduct().getLoanProductConfigurableAttributes()
|
final Boolean graceOnPrincipalAndInterestPayment = loan.loanProduct().getLoanConfigurableAttributes()
|
||||||
.getGraceOnPrincipalAndInterestPaymentBoolean();
|
.getGraceOnPrincipalAndInterestPaymentBoolean();
|
||||||
final Boolean repaymentEvery = loan.loanProduct().getLoanProductConfigurableAttributes().getRepaymentEveryBoolean();
|
final Boolean repaymentEvery = loan.loanProduct().getLoanConfigurableAttributes().getRepaymentEveryBoolean();
|
||||||
final Boolean transactionProcessingStrategy = loan.loanProduct().getLoanProductConfigurableAttributes()
|
final Boolean transactionProcessingStrategy = loan.loanProduct().getLoanConfigurableAttributes()
|
||||||
.getTransactionProcessingStrategyBoolean();
|
.getTransactionProcessingStrategyBoolean();
|
||||||
|
|
||||||
if (!amortization) {
|
if (!amortization) {
|
||||||
@@ -609,9 +609,9 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
productRelatedDetail.setRepayEvery(loan.loanProduct().getLoanProductRelatedDetail().getRepayEvery());
|
productRelatedDetail.setRepayEvery(loan.loanProduct().getLoanProductRelatedDetail().getRepayEvery());
|
||||||
}
|
}
|
||||||
if (!transactionProcessingStrategy) {
|
if (!transactionProcessingStrategy) {
|
||||||
loan.updateTransactionProcessingStrategy(loan.loanProduct().getRepaymentStrategy(),
|
loan.updateTransactionProcessingStrategy(loan.loanProduct().getTransactionProcessingStrategyCode(),
|
||||||
this.loanRepaymentScheduleTransactionProcessorFactory.determineProcessor(loan.loanProduct().getRepaymentStrategy())
|
this.loanRepaymentScheduleTransactionProcessorFactory
|
||||||
.getName());
|
.determineProcessor(loan.loanProduct().getTransactionProcessingStrategyCode()).getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -807,7 +807,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
}
|
}
|
||||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||||
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
||||||
if (newLoanProduct.useBorrowerCycle()) {
|
if (newLoanProduct.isUseBorrowerCycle()) {
|
||||||
final Long clientId = this.fromJsonHelper.extractLongNamed("clientId", command.parsedJson());
|
final Long clientId = this.fromJsonHelper.extractLongNamed("clientId", command.parsedJson());
|
||||||
final Long groupId = this.fromJsonHelper.extractLongNamed("groupId", command.parsedJson());
|
final Long groupId = this.fromJsonHelper.extractLongNamed("groupId", command.parsedJson());
|
||||||
Integer cycleNumber = 0;
|
Integer cycleNumber = 0;
|
||||||
@@ -838,11 +838,11 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
|||||||
validateSubmittedOnDate(existingLoanApplication);
|
validateSubmittedOnDate(existingLoanApplication);
|
||||||
|
|
||||||
final LoanProductRelatedDetail productRelatedDetail = existingLoanApplication.repaymentScheduleDetail();
|
final LoanProductRelatedDetail productRelatedDetail = existingLoanApplication.repaymentScheduleDetail();
|
||||||
if (existingLoanApplication.loanProduct().getLoanProductConfigurableAttributes() != null) {
|
if (existingLoanApplication.loanProduct().getLoanConfigurableAttributes() != null) {
|
||||||
updateProductRelatedDetails(productRelatedDetail, existingLoanApplication);
|
updateProductRelatedDetails(productRelatedDetail, existingLoanApplication);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existingLoanApplication.getLoanProduct().canUseForTopup() && existingLoanApplication.getClientId() != null) {
|
if (existingLoanApplication.getLoanProduct().isCanUseForTopup() && existingLoanApplication.getClientId() != null) {
|
||||||
final Boolean isTopup = command.booleanObjectValueOfParameterNamed(LoanApiConstants.isTopup);
|
final Boolean isTopup = command.booleanObjectValueOfParameterNamed(LoanApiConstants.isTopup);
|
||||||
if (command.isChangeInBooleanParameterNamed(LoanApiConstants.isTopup, existingLoanApplication.isTopup())) {
|
if (command.isChangeInBooleanParameterNamed(LoanApiConstants.isTopup, existingLoanApplication.isTopup())) {
|
||||||
existingLoanApplication.setIsTopup(isTopup);
|
existingLoanApplication.setIsTopup(isTopup);
|
||||||
|
|||||||
+1
-1
@@ -164,7 +164,7 @@ public class LoanAssembler {
|
|||||||
}
|
}
|
||||||
List<LoanDisbursementDetails> disbursementDetails = new ArrayList<>();
|
List<LoanDisbursementDetails> disbursementDetails = new ArrayList<>();
|
||||||
BigDecimal fixedEmiAmount = null;
|
BigDecimal fixedEmiAmount = null;
|
||||||
if (loanProduct.isMultiDisburseLoan() || loanProduct.canDefineInstallmentAmount()) {
|
if (loanProduct.isMultiDisburseLoan() || loanProduct.isCanDefineInstallmentAmount()) {
|
||||||
fixedEmiAmount = this.fromApiJsonHelper.extractBigDecimalWithLocaleNamed(LoanApiConstants.emiAmountParameterName, element);
|
fixedEmiAmount = this.fromApiJsonHelper.extractBigDecimalWithLocaleNamed(LoanApiConstants.emiAmountParameterName, element);
|
||||||
}
|
}
|
||||||
BigDecimal maxOutstandingLoanBalance = null;
|
BigDecimal maxOutstandingLoanBalance = null;
|
||||||
|
|||||||
+1
-1
@@ -1676,7 +1676,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa
|
|||||||
if (!backdatePenalties && !isDueToday) {
|
if (!backdatePenalties && !isDueToday) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Optional<Charge> penaltyCharge = loan.getLoanProduct().getLoanProductCharges().stream()
|
Optional<Charge> penaltyCharge = loan.getLoanProduct().getCharges().stream()
|
||||||
.filter((e) -> ChargeTimeType.OVERDUE_INSTALLMENT.getValue().equals(e.getChargeTimeType()) && e.isLoanCharge())
|
.filter((e) -> ChargeTimeType.OVERDUE_INSTALLMENT.getValue().equals(e.getChargeTimeType()) && e.isLoanCharge())
|
||||||
.findFirst();
|
.findFirst();
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -347,7 +347,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
|
|
||||||
// validate ActualDisbursement Date Against Expected Disbursement Date
|
// validate ActualDisbursement Date Against Expected Disbursement Date
|
||||||
LoanProduct loanProduct = loan.loanProduct();
|
LoanProduct loanProduct = loan.loanProduct();
|
||||||
if (loanProduct.syncExpectedWithDisbursementDate()) {
|
if (loanProduct.isSyncExpectedWithDisbursementDate()) {
|
||||||
syncExpectedDateWithActualDisbursementDate(loan, actualDisbursementDate);
|
syncExpectedDateWithActualDisbursementDate(loan, actualDisbursementDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -725,7 +725,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
// validate ActualDisbursement Date Against Expected Disbursement
|
// validate ActualDisbursement Date Against Expected Disbursement
|
||||||
// Date
|
// Date
|
||||||
LoanProduct loanProduct = loan.loanProduct();
|
LoanProduct loanProduct = loan.loanProduct();
|
||||||
if (loanProduct.syncExpectedWithDisbursementDate()) {
|
if (loanProduct.isSyncExpectedWithDisbursementDate()) {
|
||||||
syncExpectedDateWithActualDisbursementDate(loan, actualDisbursementDate);
|
syncExpectedDateWithActualDisbursementDate(loan, actualDisbursementDate);
|
||||||
}
|
}
|
||||||
checkClientOrGroupActive(loan);
|
checkClientOrGroupActive(loan);
|
||||||
|
|||||||
+2
-2
@@ -1556,7 +1556,7 @@ public final class LoanProductDataValidator {
|
|||||||
baseDataValidator);
|
baseDataValidator);
|
||||||
|
|
||||||
// Guarantee Funds
|
// Guarantee Funds
|
||||||
Boolean holdGuaranteeFunds = loanProduct.isHoldGuaranteeFundsEnabled();
|
Boolean holdGuaranteeFunds = loanProduct.isHoldGuaranteeFunds();
|
||||||
if (this.fromApiJsonHelper.parameterExists(LoanProductConstants.holdGuaranteeFundsParamName, element)) {
|
if (this.fromApiJsonHelper.parameterExists(LoanProductConstants.holdGuaranteeFundsParamName, element)) {
|
||||||
holdGuaranteeFunds = this.fromApiJsonHelper.extractBooleanNamed(LoanProductConstants.holdGuaranteeFundsParamName, element);
|
holdGuaranteeFunds = this.fromApiJsonHelper.extractBooleanNamed(LoanProductConstants.holdGuaranteeFundsParamName, element);
|
||||||
baseDataValidator.reset().parameter(LoanProductConstants.holdGuaranteeFundsParamName).value(holdGuaranteeFunds).notNull()
|
baseDataValidator.reset().parameter(LoanProductConstants.holdGuaranteeFundsParamName).value(holdGuaranteeFunds).notNull()
|
||||||
@@ -2378,7 +2378,7 @@ public final class LoanProductDataValidator {
|
|||||||
variableInstallments = this.fromApiJsonHelper
|
variableInstallments = this.fromApiJsonHelper
|
||||||
.extractBooleanNamed(LoanProductConstants.allowVariableInstallmentsParamName, element);
|
.extractBooleanNamed(LoanProductConstants.allowVariableInstallmentsParamName, element);
|
||||||
} else if (loanProduct != null) {
|
} else if (loanProduct != null) {
|
||||||
variableInstallments = loanProduct.allowVariabeInstallments();
|
variableInstallments = loanProduct.isAllowVariabeInstallments();
|
||||||
}
|
}
|
||||||
if (variableInstallments != null && variableInstallments) {
|
if (variableInstallments != null && variableInstallments) {
|
||||||
baseDataValidator.reset().parameter(LoanProductConstants.allowVariableInstallmentsParamName)
|
baseDataValidator.reset().parameter(LoanProductConstants.allowVariableInstallmentsParamName)
|
||||||
|
|||||||
+2
-2
@@ -205,7 +205,7 @@ public class LoanProductWritePlatformServiceJpaRepositoryImpl implements LoanPro
|
|||||||
if (changes.containsKey("fundId")) {
|
if (changes.containsKey("fundId")) {
|
||||||
final Long fundId = (Long) changes.get("fundId");
|
final Long fundId = (Long) changes.get("fundId");
|
||||||
final Fund fund = findFundByIdIfProvided(fundId);
|
final Fund fund = findFundByIdIfProvided(fundId);
|
||||||
product.update(fund);
|
product.setFund(fund);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changes.containsKey("delinquencyBucketId")) {
|
if (changes.containsKey("delinquencyBucketId")) {
|
||||||
@@ -253,7 +253,7 @@ public class LoanProductWritePlatformServiceJpaRepositoryImpl implements LoanPro
|
|||||||
// accounting related changes
|
// accounting related changes
|
||||||
final boolean accountingTypeChanged = changes.containsKey("accountingRule");
|
final boolean accountingTypeChanged = changes.containsKey("accountingRule");
|
||||||
final Map<String, Object> accountingMappingChanges = this.accountMappingWritePlatformService
|
final Map<String, Object> accountingMappingChanges = this.accountMappingWritePlatformService
|
||||||
.updateLoanProductToGLAccountMapping(product.getId(), command, accountingTypeChanged, product.getAccountingType());
|
.updateLoanProductToGLAccountMapping(product.getId(), command, accountingTypeChanged, product.getAccountingRule());
|
||||||
changes.putAll(accountingMappingChanges);
|
changes.putAll(accountingMappingChanges);
|
||||||
|
|
||||||
if (changes.containsKey(LoanProductConstants.RATES_PARAM_NAME)) {
|
if (changes.containsKey(LoanProductConstants.RATES_PARAM_NAME)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user