[FINERACT-131] Topup Loan Feature

This commit is contained in:
Adi Narayana Raju 2016-08-16 14:04:31 +05:30
parent ad8e03713f
commit c2306f0b01
9 changed files with 69 additions and 1 deletions

View File

@ -1329,6 +1329,9 @@
"label.heading.rejectloanreschedule" : "Reject Loan Reschedule",
"label.heading.newrepaymentreschedule" : "New Repayment Schedule",
"label.heading.reschulerequest": "Reschedule Request#",
"label.heading.isTopup" : "Is Topup Loan?",
"label.heading.loanIdToClose" : "Loan closed with Topup",
"label.heading.topupAmount" : "Topup closure amount",
"#Menu Links": "..",
"label.menu.rescheduleReason": "Select Reschedule Reason",
@ -1436,6 +1439,8 @@
"label.input.submittedOnDate" : "Submitted On",
"label.input.installmentOn" : "Reschedule from Installment On",
"label.input.applicationdate" : "Application Date",
"label.input.isTopup" : "Is Topup Loan",
"label.input.loanIdToClose" : "Choose loan to close",
"#Buttons": "..",
"label.button.addloancharge": "Add Loan Charge",
@ -1523,6 +1528,7 @@
"label.tooltip.loanproduct.interestratecyclevariations": "These fields are used to define the minimum, default, maximum, and period for the nominal interest rate allowed for the loan product based on the Loan Cycle. The minimum, default, and maximum nominal interest rates are expressed as percentages.",
"label.tooltip.loanproduct.floatinginterestrate": "These fields are used to define the minimum, default, maximum, and period for the floating interest rate allowed for the loan product. The minimum, default, and maximum floating interest rates are expressed as percentages.",
"label.tooltip.loanproduct.variableinstallments": "These fields are used to define the minimum, maximum gap that should be present between the installments for the loan product",
"label.tooltip.loanproduct.canUseForTopup": "If selected, the Loan Product can be used to apply for Topup Loans.",
"#tool tip for new loan account":"..",
"label.tooltip.product":"The name of the loan product that the loan account is based upon",
@ -2990,6 +2996,7 @@
"label.input.isfloatingcalculationallowed": "Is Floating Calculation Allowed??",
"label.input.isvariableinstallmentsallowed": "Is Variable Installments Allowed?",
"label.input.variableinstallments": "Variable Installments",
"label.input.canUseForTopup": "Is allowed to be used for providing Topup Loans?",
"label.input.minimumgap": "Minimum gap between Installments",
"label.input.maximumgap": "Maximum gap between Installments",
"label.input.minimuminstallmentamount": "Minimum Installment Amount",

View File

@ -137,6 +137,8 @@
scope.formData.fixedEmiAmount = scope.loanaccountinfo.fixedEmiAmount;
scope.formData.maxOutstandingLoanBalance = scope.loanaccountinfo.maxOutstandingLoanBalance;
scope.formData.createStandingInstructionAtDisbursement = scope.loanaccountinfo.createStandingInstructionAtDisbursement;
scope.formData.isTopup = scope.loanaccountinfo.isTopup;
scope.formData.loanIdToClose = scope.loanaccountinfo.closureLoanId;
if (scope.loanaccountinfo.meeting) {
scope.formData.syncRepaymentsWithMeeting = true;

View File

@ -92,7 +92,7 @@
minimumDaysBetweenDisbursalAndFirstRepayment: scope.product.minimumDaysBetweenDisbursalAndFirstRepayment,
principalThresholdForLastInstallment: scope.product.principalThresholdForLastInstallment,
installmentAmountInMultiplesOf: scope.product.installmentAmountInMultiplesOf,
canDefineInstallmentAmount : scope.product.canDefineInstallmentAmount
canDefineInstallmentAmount : scope.product.canDefineInstallmentAmount,
};
if (scope.product.isInterestRecalculationEnabled) {
@ -238,6 +238,7 @@
scope.formData.allowVariableInstallments = scope.product.allowVariableInstallments ;
scope.formData.minimumGap = scope.product.minimumGap;
scope.formData.maximumGap = scope.product.maximumGap;
scope.formData.canUseForTopup = scope.product.canUseForTopup;
});
scope.chargeSelected = function (chargeId) {

View File

@ -285,6 +285,18 @@
<input id="fixedEmiAmount" type="text" ng-model="formData.fixedEmiAmount" class="form-control" number-format/>&nbsp;
</td>
</tr>
<tr ng-show="loanaccountinfo.canUseForTopup">
<td><label>{{ 'label.heading.isTopup' | translate }}</label></td>
<td class="paddedbottom10">
<input type="checkbox" name="isTopup" ng-model="formData.isTopup"/>
</td>
<td ng-show="formData.isTopup == true"><label>{{ 'label.input.loanIdToClose' | translate }}</label></td>
<td class="width36 paddedbottom10" ng-show="formData.isTopup == true">
<select id="loanIdToClose" ng-model="formData.loanIdToClose"
ng-options="loanSummary.id as loanSummary.accountNo for loanSummary in loanaccountinfo.clientActiveLoanOptions" class="form-control width170px"
value="{{loanSummary.id}}"/>
</td>
</tr>
<tr>
<td colspan="4" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true"><hr></td>
</tr>

View File

@ -304,6 +304,18 @@
</td>
</tr>
<tr ng-show="loanaccountinfo.canUseForTopup">
<td><label>{{ 'label.heading.isTopup' | translate }}</label></td>
<td class="paddedbottom10">
<input type="checkbox" name="isTopup" ng-model="formData.isTopup"/>
</td>
<td ng-show="formData.isTopup == true"><label>{{ 'label.input.loanIdToClose' | translate }}</label></td>
<td class="width36 paddedbottom10" ng-show="formData.isTopup == true">
<select id="loanIdToClose" ng-model="formData.loanIdToClose"
ng-options="loanSummary.id as loanSummary.accountNo for loanSummary in loanaccountinfo.clientActiveLoanOptions" class="form-control width170px"
value="{{loanSummary.id}}"/>
</td>
</tr>
<tr>
<td colspan="4" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true"><hr></td>
</tr>

View File

@ -239,6 +239,18 @@
<td>{{'label.input.fixedemiamount' | translate}}</td>
<td><span class="padded-td">{{loandetails.fixedEmiAmount| number}}</span></td>
</tr>
<tr data-ng-show="loandetails.isTopup">
<td>{{'label.input.isTopup' | translate}}</td>
<td><span class="padded-td">{{loandetails.isTopup}}</span></td>
</tr>
<tr data-ng-show="loandetails.isTopup">
<td>{{'label.heading.loanIdToClose' | translate}}</td>
<td><span class="padded-td"><a href="#/viewloanaccount/{{loandetails.closureLoanId| number}}">{{loandetails.closureLoanAccountNo}}</a></span></td>
</tr>
<tr data-ng-show="loandetails.isTopup">
<td>{{'label.heading.topupAmount' | translate}}</td>
<td><span class="padded-td">{{loandetails.topupAmount| number}}</span></td>
</tr>
<tr>
<td>{{ 'label.input.recalculateinterest' | translate }}</td>
<td><span class="padded-td">{{ loandetails.isInterestRecalculationEnabled | YesOrNo }}</span></td>

View File

@ -684,6 +684,16 @@
</div>
</div>
<div class="form-group">
<div class="col-sm-3">
<input type="checkbox" name="canUseForTopup" ng-model="formData.canUseForTopup"/>
{{'label.input.canUseForTopup' | translate}}
<i class="icon-question-sign" tooltip="{{'label.tooltip.loanproduct.canUseForTopup' | translate}}"
tooltip-append-to-body="true"></i>
</div>
</div>
<h3>{{ 'label.heading.interestRecalculation' | translate }}</h3>
<hr>
<div class="form-group">

View File

@ -599,6 +599,14 @@
</div>
</div>
<div class="form-group">
<div class="col-sm-3">
<input type="checkbox" name="canUseForTopup" ng-model="formData.canUseForTopup"/>
{{'label.input.canUseForTopup' | translate}}
<i class="icon-question-sign" tooltip="{{'label.tooltip.loanproduct.canUseForTopup' | translate}}"
tooltip-append-to-body="true"></i>
</div>
</div>
<h3>{{ 'label.heading.interestRecalculation' | translate }}</h3>
<hr>

View File

@ -245,6 +245,10 @@
<td colspan="3">(Min:{{loanproduct.minimumGap}}&nbsp;, Max:{{loanproduct.maximumGap}})
</td>
</tr>
<tr>
<td>{{'label.input.canUseForTopup' | translate}}</td>
<td colspan="3">{{loanproduct.canUseForTopup | YesOrNo}}</td>
</tr>
<tr>
<td colspan="4"><br/></td>