MIFOSX-2195

This commit is contained in:
Vishwas Babu A J
2015-09-08 17:27:24 +05:30
parent 07f8812957
commit 33d4a48be5
@@ -55,22 +55,22 @@ public class LoanChargeAssembler {
} }
public Set<LoanCharge> fromParsedJson(final JsonElement element, Set<LoanDisbursementDetails> disbursementDetails) { public Set<LoanCharge> fromParsedJson(final JsonElement element, Set<LoanDisbursementDetails> disbursementDetails) {
JsonArray jsonDisbursement = this.fromApiJsonHelper.extractJsonArrayNamed("disbursementData", element) ; JsonArray jsonDisbursement = this.fromApiJsonHelper.extractJsonArrayNamed("disbursementData", element);
List<Long> disbursementChargeIds = new ArrayList<>(); List<Long> disbursementChargeIds = new ArrayList<>();
if(jsonDisbursement != null && jsonDisbursement.size() > 0) { if (jsonDisbursement != null && jsonDisbursement.size() > 0) {
for(int i = 0 ; i < jsonDisbursement.size(); i++) { for (int i = 0; i < jsonDisbursement.size(); i++) {
final JsonObject jsonObject = jsonDisbursement.get(i).getAsJsonObject(); final JsonObject jsonObject = jsonDisbursement.get(i).getAsJsonObject();
if(jsonObject != null && jsonObject.getAsJsonPrimitive(LoanApiConstants.loanChargeIdParameterName) != null){ if (jsonObject != null && jsonObject.getAsJsonPrimitive(LoanApiConstants.loanChargeIdParameterName) != null) {
String chargeIds = jsonObject.getAsJsonPrimitive(LoanApiConstants.loanChargeIdParameterName).getAsString(); String chargeIds = jsonObject.getAsJsonPrimitive(LoanApiConstants.loanChargeIdParameterName).getAsString();
if(chargeIds != null) { if (chargeIds != null) {
if (chargeIds.indexOf(",") != -1) { if (chargeIds.indexOf(",") != -1) {
String[] chargeId = chargeIds.split(","); String[] chargeId = chargeIds.split(",");
for (String loanChargeId : chargeId) { for (String loanChargeId : chargeId) {
disbursementChargeIds.add(Long.parseLong(loanChargeId)); disbursementChargeIds.add(Long.parseLong(loanChargeId));
} }
} else { } else {
disbursementChargeIds.add(Long.parseLong(chargeIds)) ; disbursementChargeIds.add(Long.parseLong(chargeIds));
} }
} }
@@ -103,8 +103,8 @@ public class LoanChargeAssembler {
final Integer chargeTimeType = this.fromApiJsonHelper.extractIntegerNamed("chargeTimeType", loanChargeElement, locale); final Integer chargeTimeType = this.fromApiJsonHelper.extractIntegerNamed("chargeTimeType", loanChargeElement, locale);
final Integer chargeCalculationType = this.fromApiJsonHelper.extractIntegerNamed("chargeCalculationType", final Integer chargeCalculationType = this.fromApiJsonHelper.extractIntegerNamed("chargeCalculationType",
loanChargeElement, locale); loanChargeElement, locale);
final LocalDate dueDate = this.fromApiJsonHelper final LocalDate dueDate = this.fromApiJsonHelper.extractLocalDateNamed("dueDate", loanChargeElement, dateFormat,
.extractLocalDateNamed("dueDate", loanChargeElement, dateFormat, locale); locale);
final Integer chargePaymentMode = this.fromApiJsonHelper.extractIntegerNamed("chargePaymentMode", loanChargeElement, final Integer chargePaymentMode = this.fromApiJsonHelper.extractIntegerNamed("chargePaymentMode", loanChargeElement,
locale); locale);
if (id == null) { if (id == null) {
@@ -136,13 +136,16 @@ public class LoanChargeAssembler {
} }
if (topLevelJsonElement.has("disbursementData") && topLevelJsonElement.get("disbursementData").isJsonArray()) { if (topLevelJsonElement.has("disbursementData") && topLevelJsonElement.get("disbursementData").isJsonArray()) {
final JsonArray disbursementArray = topLevelJsonElement.get("disbursementData").getAsJsonArray(); final JsonArray disbursementArray = topLevelJsonElement.get("disbursementData").getAsJsonArray();
JsonObject disbursementDataElement = disbursementArray.get(0).getAsJsonObject(); if (disbursementArray.size() > 0) {
expectedDisbursementDate = this.fromApiJsonHelper.extractLocalDateNamed( JsonObject disbursementDataElement = disbursementArray.get(0).getAsJsonObject();
LoanApiConstants.disbursementDateParameterName, disbursementDataElement, dateFormat, locale); expectedDisbursementDate = this.fromApiJsonHelper.extractLocalDateNamed(
LoanApiConstants.disbursementDateParameterName, disbursementDataElement, dateFormat, locale);
}
} }
if ((chargeDefinition.isPercentageOfDisbursementAmount() || chargeDefinition.isPercentageOfApprovedAmount() || chargeDefinition if ((chargeDefinition.isPercentageOfDisbursementAmount() || chargeDefinition.isPercentageOfApprovedAmount()
.getChargeCalculation() == ChargeCalculationType.FLAT.getValue()) && disbursementDetails != null) { || chargeDefinition.getChargeCalculation() == ChargeCalculationType.FLAT.getValue())
&& disbursementDetails != null) {
LoanTrancheDisbursementCharge loanTrancheDisbursementCharge = null; LoanTrancheDisbursementCharge loanTrancheDisbursementCharge = null;
for (LoanDisbursementDetails disbursementDetail : disbursementDetails) { for (LoanDisbursementDetails disbursementDetail : disbursementDetails) {
if (chargeDefinition.getChargeTimeType() == ChargeTimeType.DISBURSEMENT.getValue()) { if (chargeDefinition.getChargeTimeType() == ChargeTimeType.DISBURSEMENT.getValue()) {
@@ -201,10 +204,11 @@ public class LoanChargeAssembler {
} else { } else {
final Long loanChargeId = id; final Long loanChargeId = id;
final LoanCharge loanCharge = this.loanChargeRepository.findOne(loanChargeId); final LoanCharge loanCharge = this.loanChargeRepository.findOne(loanChargeId);
if(disbursementChargeIds.contains(loanChargeId) && loanCharge == null) { if (disbursementChargeIds.contains(loanChargeId) && loanCharge == null) {
//throw new LoanChargeNotFoundException(loanChargeId); // throw new
// LoanChargeNotFoundException(loanChargeId);
} }
if(loanCharge != null) { if (loanCharge != null) {
loanCharge.update(amount, dueDate, numberOfRepayments); loanCharge.update(amount, dueDate, numberOfRepayments);
loanCharges.add(loanCharge); loanCharges.add(loanCharge);
} }