added validation for installment charge update
This commit is contained in:
+12
-3
@@ -11,14 +11,19 @@ public class LoanChargeCannotBeUpdatedException extends AbstractPlatformDomainRu
|
|||||||
|
|
||||||
/*** enum of reasons of why Loan Charge cannot be waived **/
|
/*** enum of reasons of why Loan Charge cannot be waived **/
|
||||||
public static enum LOAN_CHARGE_CANNOT_BE_UPDATED_REASON {
|
public static enum LOAN_CHARGE_CANNOT_BE_UPDATED_REASON {
|
||||||
ALREADY_PAID, ALREADY_WAIVED, LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE;
|
ALREADY_PAID, ALREADY_WAIVED, LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE,CHARGE_INSTALLMENT_FEE;
|
||||||
|
|
||||||
public String errorMessage() {
|
public String errorMessage() {
|
||||||
if (name().toString().equalsIgnoreCase("ALREADY_PAID")) {
|
if (name().toString().equalsIgnoreCase("ALREADY_PAID")) {
|
||||||
return "This loan charge has been partially/completely paid";
|
return "This loan charge has been partially/completely paid";
|
||||||
} else if (name().toString().equalsIgnoreCase("ALREADY_WAIVED")) {
|
} else if (name().toString().equalsIgnoreCase("ALREADY_WAIVED")) {
|
||||||
return "This loan charge has already been waived";
|
return "This loan charge has already been waived";
|
||||||
} else if (name().toString().equalsIgnoreCase("LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE")) { return "This charge cannot be updated as the loan it is associated with is not in submitted and pending approval stage"; }
|
} else if (name().toString().equalsIgnoreCase("LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE")) {
|
||||||
|
return "This charge cannot be updated as the loan it is associated with is not in submitted and pending approval stage";
|
||||||
|
} else if(name().toString().equalsIgnoreCase("CHARGE_INSTALLMENT_FEE")){
|
||||||
|
return "Installment charge update is not allowed";
|
||||||
|
}
|
||||||
|
|
||||||
return name().toString();
|
return name().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,7 +32,11 @@ public class LoanChargeCannotBeUpdatedException extends AbstractPlatformDomainRu
|
|||||||
return "error.msg.loan.charge.already.paid";
|
return "error.msg.loan.charge.already.paid";
|
||||||
} else if (name().toString().equalsIgnoreCase("ALREADY_WAIVED")) {
|
} else if (name().toString().equalsIgnoreCase("ALREADY_WAIVED")) {
|
||||||
return "error.msg.loan.charge.already.waived";
|
return "error.msg.loan.charge.already.waived";
|
||||||
} else if (name().toString().equalsIgnoreCase("LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE")) { return "error.msg.loan.charge.associated.loan.not.in.submitted.and.pending.approval.stage"; }
|
} else if (name().toString().equalsIgnoreCase("LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE")) {
|
||||||
|
return "error.msg.loan.charge.associated.loan.not.in.submitted.and.pending.approval.stage";
|
||||||
|
} else if(name().toString().equalsIgnoreCase("CHARGE_INSTALLMENT_FEE")){
|
||||||
|
return "error.msg.loan.charge.installment.fee.update.not.allowed";
|
||||||
|
}
|
||||||
return name().toString();
|
return name().toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -891,6 +891,11 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
if (!loan.status().isSubmittedAndPendingApproval()) { throw new LoanChargeCannotBeUpdatedException(
|
if (!loan.status().isSubmittedAndPendingApproval()) { throw new LoanChargeCannotBeUpdatedException(
|
||||||
LOAN_CHARGE_CANNOT_BE_UPDATED_REASON.LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE, loanCharge.getId()); }
|
LOAN_CHARGE_CANNOT_BE_UPDATED_REASON.LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE, loanCharge.getId()); }
|
||||||
|
|
||||||
|
if(loanCharge.isInstalmentFee()){
|
||||||
|
throw new LoanChargeCannotBeUpdatedException(
|
||||||
|
LOAN_CHARGE_CANNOT_BE_UPDATED_REASON.CHARGE_INSTALLMENT_FEE, loanCharge.getId());
|
||||||
|
}
|
||||||
|
|
||||||
final Map<String, Object> changes = loan.updateLoanCharge(loanCharge, command);
|
final Map<String, Object> changes = loan.updateLoanCharge(loanCharge, command);
|
||||||
|
|
||||||
this.loanRepository.save(loan);
|
this.loanRepository.save(loan);
|
||||||
|
|||||||
Reference in New Issue
Block a user