Merge pull request #1509 from nazeer1100126/develop_chargesIssue
MIFOSX-2240
This commit is contained in:
+27
-45
@@ -20,12 +20,10 @@ import org.mifosplatform.portfolio.charge.domain.ChargePaymentMode;
|
|||||||
import org.mifosplatform.portfolio.charge.domain.ChargeRepositoryWrapper;
|
import org.mifosplatform.portfolio.charge.domain.ChargeRepositoryWrapper;
|
||||||
import org.mifosplatform.portfolio.charge.domain.ChargeTimeType;
|
import org.mifosplatform.portfolio.charge.domain.ChargeTimeType;
|
||||||
import org.mifosplatform.portfolio.charge.exception.LoanChargeCannotBeAddedException;
|
import org.mifosplatform.portfolio.charge.exception.LoanChargeCannotBeAddedException;
|
||||||
import org.mifosplatform.portfolio.charge.exception.LoanChargeNotFoundException;
|
|
||||||
import org.mifosplatform.portfolio.loanaccount.api.LoanApiConstants;
|
import org.mifosplatform.portfolio.loanaccount.api.LoanApiConstants;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanCharge;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanCharge;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanChargeRepository;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanChargeRepository;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanDisbursementDetails;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanDisbursementDetails;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanTrancheCharge;
|
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanTrancheDisbursementCharge;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanTrancheDisbursementCharge;
|
||||||
import org.mifosplatform.portfolio.loanproduct.domain.LoanProduct;
|
import org.mifosplatform.portfolio.loanproduct.domain.LoanProduct;
|
||||||
import org.mifosplatform.portfolio.loanproduct.domain.LoanProductRepository;
|
import org.mifosplatform.portfolio.loanproduct.domain.LoanProductRepository;
|
||||||
@@ -103,8 +101,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.extractLocalDateNamed("dueDate", loanChargeElement, dateFormat,
|
final LocalDate dueDate = this.fromApiJsonHelper
|
||||||
locale);
|
.extractLocalDateNamed("dueDate", loanChargeElement, dateFormat, 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) {
|
||||||
@@ -133,22 +131,19 @@ public class LoanChargeAssembler {
|
|||||||
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition, principal, amount, chargeTime,
|
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition, principal, amount, chargeTime,
|
||||||
chargeCalculation, dueDate, chargePaymentModeEnum, numberOfRepayments);
|
chargeCalculation, dueDate, chargePaymentModeEnum, numberOfRepayments);
|
||||||
loanCharges.add(loanCharge);
|
loanCharges.add(loanCharge);
|
||||||
}
|
} else {
|
||||||
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();
|
||||||
if (disbursementArray.size() > 0) {
|
if (disbursementArray.size() > 0) {
|
||||||
JsonObject disbursementDataElement = disbursementArray.get(0).getAsJsonObject();
|
JsonObject disbursementDataElement = disbursementArray.get(0).getAsJsonObject();
|
||||||
expectedDisbursementDate = this.fromApiJsonHelper.extractLocalDateNamed(
|
expectedDisbursementDate = this.fromApiJsonHelper.extractLocalDateNamed(
|
||||||
LoanApiConstants.disbursementDateParameterName, disbursementDataElement, dateFormat, locale);
|
LoanApiConstants.disbursementDateParameterName, disbursementDataElement, dateFormat, locale);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ((chargeDefinition.isPercentageOfDisbursementAmount() || chargeDefinition.isPercentageOfApprovedAmount()
|
if (chargeDefinition.getChargeTimeType() == ChargeTimeType.DISBURSEMENT.getValue()) {
|
||||||
|| chargeDefinition.getChargeCalculation() == ChargeCalculationType.FLAT.getValue())
|
for (LoanDisbursementDetails disbursementDetail : disbursementDetails) {
|
||||||
&& disbursementDetails != null) {
|
LoanTrancheDisbursementCharge loanTrancheDisbursementCharge = null;
|
||||||
LoanTrancheDisbursementCharge loanTrancheDisbursementCharge = null;
|
|
||||||
for (LoanDisbursementDetails disbursementDetail : disbursementDetails) {
|
|
||||||
if (chargeDefinition.getChargeTimeType() == ChargeTimeType.DISBURSEMENT.getValue()) {
|
|
||||||
if (chargeDefinition.isPercentageOfApprovedAmount()
|
if (chargeDefinition.isPercentageOfApprovedAmount()
|
||||||
&& disbursementDetail.expectedDisbursementDateAsLocalDate().equals(expectedDisbursementDate)) {
|
&& disbursementDetail.expectedDisbursementDateAsLocalDate().equals(expectedDisbursementDate)) {
|
||||||
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition, principal, amount,
|
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition, principal, amount,
|
||||||
@@ -168,37 +163,24 @@ public class LoanChargeAssembler {
|
|||||||
loanCharge.updateLoanTrancheDisbursementCharge(loanTrancheDisbursementCharge);
|
loanCharge.updateLoanTrancheDisbursementCharge(loanTrancheDisbursementCharge);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (chargeDefinition.getChargeTimeType() == ChargeTimeType.TRANCHE_DISBURSEMENT.getValue()) {
|
|
||||||
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition,
|
|
||||||
disbursementDetail.principal(), amount, chargeTime, chargeCalculation,
|
|
||||||
disbursementDetail.expectedDisbursementDateAsLocalDate(), chargePaymentModeEnum,
|
|
||||||
numberOfRepayments);
|
|
||||||
loanCharges.add(loanCharge);
|
|
||||||
loanTrancheDisbursementCharge = new LoanTrancheDisbursementCharge(loanCharge, disbursementDetail);
|
|
||||||
loanCharge.updateLoanTrancheDisbursementCharge(loanTrancheDisbursementCharge);
|
|
||||||
}
|
}
|
||||||
}
|
} else if (chargeDefinition.getChargeTimeType() == ChargeTimeType.TRANCHE_DISBURSEMENT.getValue()) {
|
||||||
} else {
|
LoanTrancheDisbursementCharge loanTrancheDisbursementCharge = null;
|
||||||
LoanTrancheDisbursementCharge loanTrancheDisbursementCharge = null;
|
|
||||||
if (disbursementDetails != null) {
|
|
||||||
for (LoanDisbursementDetails disbursementDetail : disbursementDetails) {
|
for (LoanDisbursementDetails disbursementDetail : disbursementDetails) {
|
||||||
if (!(disbursementDetail.expectedDisbursementDateAsLocalDate().isAfter(expectedDisbursementDate))) {
|
if (chargeDefinition.getChargeTimeType() == ChargeTimeType.TRANCHE_DISBURSEMENT.getValue()) {
|
||||||
if (chargeDefinition.getChargeCalculation() == ChargeCalculationType.PERCENT_OF_AMOUNT_AND_INTEREST
|
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition,
|
||||||
.getValue()
|
disbursementDetail.principal(), amount, chargeTime, chargeCalculation,
|
||||||
|| chargeDefinition.getChargeTimeType() == ChargeTimeType.SPECIFIED_DUE_DATE.getValue()
|
disbursementDetail.expectedDisbursementDateAsLocalDate(), chargePaymentModeEnum,
|
||||||
|| chargeDefinition.getChargeCalculation() == ChargeCalculationType.PERCENT_OF_INTEREST
|
numberOfRepayments);
|
||||||
.getValue()) {
|
loanCharges.add(loanCharge);
|
||||||
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition, principal,
|
loanTrancheDisbursementCharge = new LoanTrancheDisbursementCharge(loanCharge, disbursementDetail);
|
||||||
amount, chargeTime, chargeCalculation, dueDate, chargePaymentModeEnum,
|
loanCharge.updateLoanTrancheDisbursementCharge(loanTrancheDisbursementCharge);
|
||||||
numberOfRepayments);
|
|
||||||
loanCharges.add(loanCharge);
|
|
||||||
loanTrancheDisbursementCharge = new LoanTrancheDisbursementCharge(loanCharge,
|
|
||||||
disbursementDetail);
|
|
||||||
loanCharge.updateLoanTrancheDisbursementCharge(loanTrancheDisbursementCharge);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
final LoanCharge loanCharge = LoanCharge.createNewWithoutLoan(chargeDefinition, principal, amount,
|
||||||
|
chargeTime, chargeCalculation, dueDate, chargePaymentModeEnum, numberOfRepayments);
|
||||||
|
loanCharges.add(loanCharge);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user