FINERACT-1818-Credit-Refund-Payout-Not-Getting-Created

This commit is contained in:
Ruchi Dhamankar
2023-01-10 05:11:56 -08:00
committed by taskain7
parent 61ca7bb0e0
commit 145adaa9fe
@@ -3253,10 +3253,11 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
if (this.loanProduct.isMultiDisburseLoan() && adjustedTransaction == null) { if (this.loanProduct.isMultiDisburseLoan() && adjustedTransaction == null) {
BigDecimal totalDisbursed = getDisbursedAmount(); BigDecimal totalDisbursed = getDisbursedAmount();
if (totalDisbursed.compareTo(this.summary.getTotalPrincipalRepaid()) < 0) { BigDecimal totalPrincipalAdjusted = this.summary.getTotalPrincipalAdjustments();
final String errorMessage = "The transaction cannot be done before the loan disbursement: " BigDecimal totalPrincipalCredited = totalDisbursed.add(totalPrincipalAdjusted);
+ getApprovedOnDate().toString(); if (totalPrincipalCredited.compareTo(this.summary.getTotalPrincipalRepaid()) < 0) {
throw new InvalidLoanStateTransitionException("transaction", "cannot.be.done.before.disbursement", errorMessage); final String errorMessage = "The transaction amount cannot exceed threshold.";
throw new InvalidLoanStateTransitionException("transaction", "amount.exceeds.threshold", errorMessage);
} }
} }
@@ -3318,11 +3319,12 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
if (this.loanProduct.isMultiDisburseLoan()) { if (this.loanProduct.isMultiDisburseLoan()) {
BigDecimal totalDisbursed = getDisbursedAmount(); BigDecimal totalDisbursed = getDisbursedAmount();
if (totalDisbursed.compareTo(this.summary.getTotalPrincipalRepaid()) < 0 BigDecimal totalPrincipalAdjusted = this.summary.getTotalPrincipalAdjustments();
BigDecimal totalPrincipalCredited = totalDisbursed.add(totalPrincipalAdjusted);
if (totalPrincipalCredited.compareTo(this.summary.getTotalPrincipalRepaid()) < 0
&& this.repaymentScheduleDetail().getPrincipal().minus(totalDisbursed).isGreaterThanZero()) { && this.repaymentScheduleDetail().getPrincipal().minus(totalDisbursed).isGreaterThanZero()) {
final String errorMessage = "The transaction cannot be done before the loan disbursement: " final String errorMessage = "The transaction amount cannot exceed threshold.";
+ getApprovedOnDate().toString(); throw new InvalidLoanStateTransitionException("transaction", "amount.exceeds.threshold", errorMessage);
throw new InvalidLoanStateTransitionException("transaction", "cannot.be.done.before.disbursement", errorMessage);
} }
} }
@@ -6197,10 +6199,11 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
if (this.loanProduct.isMultiDisburseLoan() && adjustedTransaction == null) { if (this.loanProduct.isMultiDisburseLoan() && adjustedTransaction == null) {
BigDecimal totalDisbursed = getDisbursedAmount(); BigDecimal totalDisbursed = getDisbursedAmount();
if (totalDisbursed.compareTo(this.summary.getTotalPrincipalRepaid()) < 0) { BigDecimal totalPrincipalAdjusted = this.summary.getTotalPrincipalAdjustments();
final String errorMessage = "The transaction cannot be done before the loan disbursement: " BigDecimal totalPrincipalCredited = totalDisbursed.add(totalPrincipalAdjusted);
+ getApprovedOnDate().toString(); if (totalPrincipalCredited.compareTo(this.summary.getTotalPrincipalRepaid()) < 0) {
throw new InvalidLoanStateTransitionException("transaction", "cannot.be.done.before.disbursement", errorMessage); final String errorMessage = "The transaction amount cannot exceed threshold.";
throw new InvalidLoanStateTransitionException("transaction", "amount.exceeds.threshold", errorMessage);
} }
} }