MIFOSX-175: make relationship to arrears aging summary table optional.
This commit is contained in:
+8
-4
@@ -243,7 +243,7 @@ public class Loan extends AbstractPersistable<Long> {
|
||||
@Embedded
|
||||
private LoanSummary summary;
|
||||
|
||||
@OneToOne(mappedBy = "loan", cascade = CascadeType.ALL)
|
||||
@OneToOne(mappedBy = "loan", cascade = CascadeType.ALL, optional = true, orphanRemoval = true)
|
||||
private LoanSummaryArrearsAging summaryArrearsAging;
|
||||
|
||||
@Transient
|
||||
@@ -319,11 +319,9 @@ public class Loan extends AbstractPersistable<Long> {
|
||||
if (loanCharges != null && !loanCharges.isEmpty()) {
|
||||
this.charges = associateChargesWithThisLoan(loanCharges);
|
||||
this.summary = updateSummaryWithTotalFeeChargesDueAtDisbursement(deriveSumTotalOfChargesDueAtDisbursement());
|
||||
this.summaryArrearsAging = new LoanSummaryArrearsAging(this);
|
||||
} else {
|
||||
this.charges = null;
|
||||
this.summary = new LoanSummary();
|
||||
this.summaryArrearsAging = new LoanSummaryArrearsAging(this);
|
||||
}
|
||||
if (collateral != null && !collateral.isEmpty()) {
|
||||
this.collateral = associateWithThisLoan(collateral);
|
||||
@@ -674,11 +672,17 @@ public class Loan extends AbstractPersistable<Long> {
|
||||
|
||||
if (isNotDisbursed()) {
|
||||
this.summary.zeroFields();
|
||||
this.summaryArrearsAging.zeroFields();
|
||||
this.summaryArrearsAging = null;
|
||||
} else {
|
||||
final Money principal = this.loanRepaymentScheduleDetail.getPrincipal();
|
||||
this.summary.updateSummary(loanCurrency(), principal, this.repaymentScheduleInstallments, this.loanSummaryWrapper);
|
||||
if (this.summaryArrearsAging == null) {
|
||||
this.summaryArrearsAging = new LoanSummaryArrearsAging(this);
|
||||
}
|
||||
this.summaryArrearsAging.updateSummary(loanCurrency(), this.repaymentScheduleInstallments, this.loanSummaryWrapper);
|
||||
if (this.summaryArrearsAging.isNotInArrears(loanCurrency())) {
|
||||
this.summaryArrearsAging = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -55,7 +55,6 @@ public final class LoanSummaryArrearsAging implements Persistable<Long> {
|
||||
@Column(name = "penalty_charges_overdue_derived", scale = 6, precision = 19)
|
||||
private BigDecimal totalPenaltyChargesOverdue;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@Column(name = "total_overdue_derived", scale = 6, precision = 19)
|
||||
private BigDecimal totalOverdue;
|
||||
|
||||
@@ -64,6 +63,7 @@ public final class LoanSummaryArrearsAging implements Persistable<Long> {
|
||||
@Column(name = "overdue_since_date_derived")
|
||||
private Date overdueSinceDate;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@OneToOne
|
||||
@PrimaryKeyJoinColumn
|
||||
private Loan loan;
|
||||
@@ -120,4 +120,8 @@ public final class LoanSummaryArrearsAging implements Persistable<Long> {
|
||||
this.overdueSinceDate = null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isNotInArrears(final MonetaryCurrency currency) {
|
||||
return Money.of(currency, this.totalOverdue).isZero();
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -313,11 +313,11 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
||||
+ " la.total_overdue_derived as totalOverdue,"
|
||||
+ " la.overdue_since_date_derived as overdueSinceDate"
|
||||
+ " from m_loan l" //
|
||||
+ " left join m_client c on c.id = l.client_id" //
|
||||
+ " left join m_group g on g.id = l.group_id" //
|
||||
+ " join m_product_loan lp on lp.id = l.product_id" //
|
||||
+ " join m_currency rc on rc.`code` = l.currency_code" //
|
||||
+ " join m_loan_arrears_aging la on la.loan_id = l.id" //
|
||||
+ " left join m_client c on c.id = l.client_id" //
|
||||
+ " left join m_group g on g.id = l.group_id" //
|
||||
+ " left join m_loan_arrears_aging la on la.loan_id = l.id" //
|
||||
+ " left join m_fund f on f.id = l.fund_id" //
|
||||
+ " left join m_staff s on s.id = l.loan_officer_id" //
|
||||
+ " left join m_appuser sbu on sbu.id = l.submittedon_userid"
|
||||
|
||||
Reference in New Issue
Block a user