FINERACT-1694: Add submittedOnDate and externalLoanId to LoanChargeData event
This commit is contained in:
committed by
Arnold Gálovics
parent
3f800ab3ad
commit
e08675ed54
@@ -232,6 +232,22 @@
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
},
|
||||
{
|
||||
"default": null,
|
||||
"name": "externalLoanId",
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
},
|
||||
{
|
||||
"default": null,
|
||||
"name": "submittedOnDate",
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+25
-14
@@ -92,9 +92,11 @@ public class LoanChargeData {
|
||||
|
||||
private final ExternalId externalId;
|
||||
|
||||
private final ExternalId externalLoanId;
|
||||
|
||||
public static LoanChargeData template(final Collection<ChargeData> chargeOptions) {
|
||||
return new LoanChargeData(null, null, null, null, null, null, null, null, chargeOptions, false, null, false, false, null, null,
|
||||
null, null, null, ExternalId.empty());
|
||||
return new LoanChargeData(null, null, null, null, null, null, null, null, chargeOptions, false, null, false, false, null,
|
||||
ExternalId.empty(), null, null, null, null, ExternalId.empty());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -105,7 +107,7 @@ public class LoanChargeData {
|
||||
final EnumOptionData chargeCalculationType, final boolean penalty, final EnumOptionData chargePaymentMode,
|
||||
final BigDecimal minCap, final BigDecimal maxCap, final ExternalId externalId) {
|
||||
return new LoanChargeData(null, chargeId, name, currency, amount, percentage, chargeTimeType, chargeCalculationType, null, penalty,
|
||||
chargePaymentMode, false, false, null, minCap, maxCap, null, null, externalId);
|
||||
chargePaymentMode, false, false, null, ExternalId.empty(), minCap, maxCap, null, null, externalId);
|
||||
}
|
||||
|
||||
public LoanChargeData(final Long id, final Long chargeId, final String name, final CurrencyData currency, final BigDecimal amount,
|
||||
@@ -113,8 +115,8 @@ public class LoanChargeData {
|
||||
final BigDecimal amountOutstanding, final EnumOptionData chargeTimeType, final LocalDate submittedOnDate,
|
||||
final LocalDate dueDate, final EnumOptionData chargeCalculationType, final BigDecimal percentage,
|
||||
final BigDecimal amountPercentageAppliedTo, final boolean penalty, final EnumOptionData chargePaymentMode, final boolean paid,
|
||||
final boolean waived, final Long loanId, final BigDecimal minCap, final BigDecimal maxCap, final BigDecimal amountOrPercentage,
|
||||
Collection<LoanInstallmentChargeData> installmentChargeData, final ExternalId externalId) {
|
||||
final boolean waived, final Long loanId, final ExternalId externalLoanId, final BigDecimal minCap, final BigDecimal maxCap,
|
||||
final BigDecimal amountOrPercentage, Collection<LoanInstallmentChargeData> installmentChargeData, final ExternalId externalId) {
|
||||
this.id = id;
|
||||
this.chargeId = chargeId;
|
||||
this.name = name;
|
||||
@@ -153,13 +155,14 @@ public class LoanChargeData {
|
||||
this.amountAccrued = null;
|
||||
this.amountUnrecognized = null;
|
||||
this.externalId = externalId;
|
||||
this.externalLoanId = externalLoanId;
|
||||
}
|
||||
|
||||
private LoanChargeData(final Long id, final Long chargeId, final String name, final CurrencyData currency, final BigDecimal amount,
|
||||
final BigDecimal percentage, final EnumOptionData chargeTimeType, final EnumOptionData chargeCalculationType,
|
||||
final Collection<ChargeData> chargeOptions, final boolean penalty, final EnumOptionData chargePaymentMode, final boolean paid,
|
||||
final boolean waived, final Long loanId, final BigDecimal minCap, final BigDecimal maxCap, final BigDecimal amountOrPercentage,
|
||||
Collection<LoanInstallmentChargeData> installmentChargeData, final ExternalId externalId) {
|
||||
final boolean waived, final Long loanId, final ExternalId externalLoanId, final BigDecimal minCap, final BigDecimal maxCap,
|
||||
final BigDecimal amountOrPercentage, Collection<LoanInstallmentChargeData> installmentChargeData, final ExternalId externalId) {
|
||||
this.id = id;
|
||||
this.chargeId = chargeId;
|
||||
this.name = name;
|
||||
@@ -193,6 +196,7 @@ public class LoanChargeData {
|
||||
this.chargeOptions = chargeOptions;
|
||||
this.chargePayable = isChargePayable();
|
||||
this.loanId = loanId;
|
||||
this.externalLoanId = externalLoanId;
|
||||
this.minCap = minCap;
|
||||
this.maxCap = maxCap;
|
||||
this.installmentChargeData = installmentChargeData;
|
||||
@@ -201,8 +205,9 @@ public class LoanChargeData {
|
||||
this.externalId = externalId;
|
||||
}
|
||||
|
||||
public LoanChargeData(final Long id, final LocalDate dueAsOfDate, final BigDecimal amountOutstanding, EnumOptionData chargeTimeType,
|
||||
final Long loanId, Collection<LoanInstallmentChargeData> installmentChargeData, final ExternalId externalId) {
|
||||
public LoanChargeData(final Long id, final LocalDate dueAsOfDate, final LocalDate submittedOnDate, final BigDecimal amountOutstanding,
|
||||
EnumOptionData chargeTimeType, final Long loanId, final ExternalId externalLoanId,
|
||||
Collection<LoanInstallmentChargeData> installmentChargeData, final ExternalId externalId) {
|
||||
this.id = id;
|
||||
this.chargeId = null;
|
||||
this.name = null;
|
||||
@@ -213,7 +218,7 @@ public class LoanChargeData {
|
||||
this.amountWrittenOff = null;
|
||||
this.amountOutstanding = amountOutstanding;
|
||||
this.chargeTimeType = chargeTimeType;
|
||||
this.submittedOnDate = null;
|
||||
this.submittedOnDate = submittedOnDate;
|
||||
this.dueDate = dueAsOfDate;
|
||||
this.chargeCalculationType = null;
|
||||
this.percentage = null;
|
||||
@@ -232,11 +237,12 @@ public class LoanChargeData {
|
||||
this.amountAccrued = null;
|
||||
this.amountUnrecognized = null;
|
||||
this.externalId = externalId;
|
||||
this.externalLoanId = externalLoanId;
|
||||
}
|
||||
|
||||
public LoanChargeData(final Long id, final Long chargeId, final LocalDate dueAsOfDate, EnumOptionData chargeTimeType,
|
||||
final BigDecimal amount, final BigDecimal amountAccrued, final BigDecimal amountWaived, final boolean penalty,
|
||||
final ExternalId externalId) {
|
||||
public LoanChargeData(final Long id, final Long chargeId, final LocalDate dueAsOfDate, final LocalDate submittedOnDate,
|
||||
EnumOptionData chargeTimeType, final BigDecimal amount, final BigDecimal amountAccrued, final BigDecimal amountWaived,
|
||||
final boolean penalty, final ExternalId externalId) {
|
||||
this.id = id;
|
||||
this.chargeId = chargeId;
|
||||
this.name = null;
|
||||
@@ -247,7 +253,7 @@ public class LoanChargeData {
|
||||
this.amountWrittenOff = null;
|
||||
this.amountOutstanding = null;
|
||||
this.chargeTimeType = chargeTimeType;
|
||||
this.submittedOnDate = null;
|
||||
this.submittedOnDate = submittedOnDate;
|
||||
this.dueDate = dueAsOfDate;
|
||||
this.chargeCalculationType = null;
|
||||
this.percentage = null;
|
||||
@@ -260,6 +266,7 @@ public class LoanChargeData {
|
||||
this.chargeOptions = null;
|
||||
this.chargePayable = false;
|
||||
this.loanId = null;
|
||||
this.externalLoanId = ExternalId.empty();
|
||||
this.minCap = null;
|
||||
this.maxCap = null;
|
||||
this.installmentChargeData = null;
|
||||
@@ -292,6 +299,7 @@ public class LoanChargeData {
|
||||
this.chargeOptions = null;
|
||||
this.chargePayable = false;
|
||||
this.loanId = null;
|
||||
this.externalLoanId = ExternalId.empty();
|
||||
this.minCap = null;
|
||||
this.maxCap = null;
|
||||
this.installmentChargeData = null;
|
||||
@@ -326,6 +334,7 @@ public class LoanChargeData {
|
||||
this.chargeOptions = chargeData.chargeOptions;
|
||||
this.chargePayable = chargeData.chargePayable;
|
||||
this.loanId = chargeData.loanId;
|
||||
this.externalLoanId = chargeData.externalLoanId;
|
||||
this.installmentChargeData = installmentChargeData;
|
||||
this.amountAccrued = chargeData.amountAccrued;
|
||||
this.amountUnrecognized = chargeData.amountUnrecognized;
|
||||
@@ -357,6 +366,7 @@ public class LoanChargeData {
|
||||
this.chargeOptions = null;
|
||||
this.chargePayable = false;
|
||||
this.loanId = null;
|
||||
this.externalLoanId = ExternalId.empty();
|
||||
this.minCap = null;
|
||||
this.maxCap = null;
|
||||
this.installmentChargeData = null;
|
||||
@@ -389,6 +399,7 @@ public class LoanChargeData {
|
||||
this.chargeOptions = null;
|
||||
this.chargePayable = false;
|
||||
this.loanId = null;
|
||||
this.externalLoanId = ExternalId.empty();
|
||||
this.minCap = null;
|
||||
this.maxCap = null;
|
||||
this.installmentChargeData = null;
|
||||
|
||||
+18
-8
@@ -76,9 +76,10 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
+ "lc.loan_id as loanId, c.currency_code as currencyCode, oc.name as currencyName, " //
|
||||
+ "date(coalesce(dd.disbursedon_date,dd.expected_disburse_date)) as disbursementDate, " //
|
||||
+ "oc.decimal_places as currencyDecimalPlaces, oc.currency_multiplesof as inMultiplesOf, oc.display_symbol as currencyDisplaySymbol, " //
|
||||
+ "oc.internationalized_name_code as currencyNameCode from m_charge c " //
|
||||
+ "oc.internationalized_name_code as currencyNameCode, l.external_id as externalLoanId from m_charge c " //
|
||||
+ "join m_organisation_currency oc on c.currency_code = oc.code join m_loan_charge lc on lc.charge_id = c.id " //
|
||||
+ "left join m_loan_tranche_disbursement_charge dc on dc.loan_charge_id=lc.id left join m_loan_disbursement_detail dd on dd.id=dc.disbursement_detail_id ";
|
||||
+ "left join m_loan_tranche_disbursement_charge dc on dc.loan_charge_id=lc.id left join m_loan_disbursement_detail dd on dd.id=dc.disbursement_detail_id " //
|
||||
+ " join m_loan l on lc.loan_id = l.id";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -130,10 +131,12 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
}
|
||||
final String externalIdStr = rs.getString("externalId");
|
||||
final ExternalId externalId = ExternalIdFactory.produce(externalIdStr);
|
||||
final String externalLoanIdStr = rs.getString("externalLoanId");
|
||||
final ExternalId externalLoanId = ExternalIdFactory.produce(externalLoanIdStr);
|
||||
|
||||
return new LoanChargeData(id, chargeId, name, currency, amount, amountPaid, amountWaived, amountWrittenOff, amountOutstanding,
|
||||
chargeTimeType, submittedOnDate, dueAsOfDate, chargeCalculationType, percentageOf, amountPercentageAppliedTo, penalty,
|
||||
paymentMode, paid, waived, loanId, minCap, maxCap, amountOrPercentage, null, externalId);
|
||||
paymentMode, paid, waived, loanId, externalLoanId, minCap, maxCap, amountOrPercentage, null, externalId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,8 +202,8 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
private static final class LoanChargeMapperWithLoanId implements RowMapper<LoanChargeData> {
|
||||
|
||||
public String schema() {
|
||||
return " lc.id as id, lc.due_for_collection_as_of_date as dueAsOfDate, lc.amount_outstanding_derived as amountOutstanding, "
|
||||
+ " lc.charge_time_enum as chargeTime, loan.id as loanId, lc.external_id as externalId from m_loan_charge lc "
|
||||
return " lc.id as id, lc.due_for_collection_as_of_date as dueAsOfDate, lc.amount_outstanding_derived as amountOutstanding, lc.submitted_on_date as submittedOnDate, "
|
||||
+ " lc.charge_time_enum as chargeTime, loan.id as loanId, loan.external_id as externalLoanId, lc.external_id as externalId from m_loan_charge lc "
|
||||
+ " join m_loan loan on loan.id = lc.loan_id ";
|
||||
}
|
||||
|
||||
@@ -209,14 +212,18 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
|
||||
final Long id = rs.getLong("id");
|
||||
final LocalDate dueAsOfDate = JdbcSupport.getLocalDate(rs, "dueAsOfDate");
|
||||
final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, "submittedOnDate");
|
||||
final Long loanId = rs.getLong("loanId");
|
||||
final BigDecimal amountOutstanding = rs.getBigDecimal("amountOutstanding");
|
||||
final int chargeTime = rs.getInt("chargeTime");
|
||||
final EnumOptionData chargeTimeType = ChargeEnumerations.chargeTimeType(chargeTime);
|
||||
final String externalIdStr = rs.getString("externalId");
|
||||
final ExternalId externalId = ExternalIdFactory.produce(externalIdStr);
|
||||
final String externalLoanIdStr = rs.getString("externalLoanId");
|
||||
final ExternalId externalLoanId = ExternalIdFactory.produce(externalLoanIdStr);
|
||||
|
||||
return new LoanChargeData(id, dueAsOfDate, amountOutstanding, chargeTimeType, loanId, null, externalId);
|
||||
return new LoanChargeData(id, dueAsOfDate, submittedOnDate, amountOutstanding, chargeTimeType, loanId, externalLoanId, null,
|
||||
externalId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,7 +320,8 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
sb.append(" lc.charge_time_enum as chargeTime, ");
|
||||
sb.append(" sum(cp.amount) as amountAccrued, ");
|
||||
sb.append(" lc.is_penalty as penalty, ");
|
||||
sb.append(" lc.due_for_collection_as_of_date as dueAsOfDate ");
|
||||
sb.append(" lc.due_for_collection_as_of_date as dueAsOfDate, ");
|
||||
sb.append(" lc.submitted_on_date as submittedOnDate ");
|
||||
sb.append(" from m_loan_charge lc ");
|
||||
sb.append(" left join ( ");
|
||||
sb.append(" select lcp.loan_charge_id, lcp.amount ");
|
||||
@@ -342,12 +350,14 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
final EnumOptionData chargeTimeType = ChargeEnumerations.chargeTimeType(chargeTime);
|
||||
|
||||
final LocalDate dueAsOfDate = JdbcSupport.getLocalDate(rs, "dueAsOfDate");
|
||||
final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, "submittedOnDate");
|
||||
final boolean penalty = rs.getBoolean("penalty");
|
||||
|
||||
final String externalIdStr = rs.getString("externalId");
|
||||
final ExternalId externalId = ExternalIdFactory.produce(externalIdStr);
|
||||
|
||||
return new LoanChargeData(id, chargeId, dueAsOfDate, chargeTimeType, amount, amountAccrued, amountWaived, penalty, externalId);
|
||||
return new LoanChargeData(id, chargeId, dueAsOfDate, submittedOnDate, chargeTimeType, amount, amountAccrued, amountWaived,
|
||||
penalty, externalId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user