diff --git a/app/global-translations/locale-en.json b/app/global-translations/locale-en.json index 7cfe4cdc..e43c5020 100644 --- a/app/global-translations/locale-en.json +++ b/app/global-translations/locale-en.json @@ -1744,6 +1744,9 @@ "label.heading.savingscontrol": "Savings Control", "label.heading.interestonsavings": "Interest on Savings", "label.heading.incomefromfee": "Income from Fee", + "label.heading.principalCycleVariations":"Principal Variations for Borrower Cycle", + "label.heading.interestRateCycleVariations":"Interest Rate for Borrower Cycle ", + "label.heading.numerOfRepaymentCycleVariations":"# of Repayments for Borrower Cycle ", "#Anchors": "..", "label.anchor.products": "Products", @@ -1801,7 +1804,8 @@ "label.input.savingcontrol": "Saving control", "label.input.interestonsavings": "Interest on savings", "label.input.filterbynamefundname": "Filter by name/fund name", - + "label.input.useborrowerloancounter":"Use borrower loan cycle counter", + "label.input.cyclenumber":"Borrower cycle", "#Buttons": "..", "label.button.createcharge": "Create Charge", @@ -1821,6 +1825,8 @@ "chargeAppliesTo.loan": "Loan", "chargeAppliesTo.savings": "Savings", "chargeCalculationType.flat": "Flat", + "LoanProductValueConditionType.equal":"=", + "LoanProductValueConditionType.greterthan":">", "chargeTimeType.disbursement": "Disbursement", "chargeTimeType.specifiedDueDate": "Specified due date", "chargeTimeType.savingsActivation": "Savings Activation", @@ -1999,6 +2005,43 @@ "validation.msg.savingsproduct.incomeFromFeeAccountId.cannot.be.blank ": "Income from Fees Account is mandatory", "error.msg.charge.cannot.be.applied.to.savings.product": "Charge with identifier `{{params[0].value}} cannot be applied to Savings product.", "error.msg.charge.attach.to.savings.product.invalid.currency": "Charge and Savings Product must have the same currency.", + "validation.msg.loanproduct.principalValueUsageCondition.cannot.be.blank":"Borrower cycle condition type can't be blank", + "validation.msg.loanproduct.principalValueUsageCondition.is.not.within.expected.range":"condition type must be equal or greter than only.", + "validation.msg.loanproduct.principalCycleNumbers.cannot.be.blank":"Borrower cycle number can't be blank", + "validation.msg.loanproduct.principalCycleNumbers.condition.type.must.end.with.greterthan":"principal amount variations must end with greterthan condition", + "validation.msg.loanproduct.principalCycleNumbers.not.greater.than.specified.number":"Borrower cycle number {{params[0].value}} is invalild.Cycle number must be greter than {{params[1].value}}", + "validation.msg.loanproduct.principalCycleNumbers.not.equal.to.specified.number":"Borrower cycle number {{params[0].value}} is invalild.Cycle number must be equal to {{params[1].value}}", + "validation.msg.loanproduct.principalPerCycle.cannot.be.blank":"Principal amount default value is mandatory", + "validation.msg.loanproduct.principalPerCycle.amount.is.not.within.min.max.range":"Principal amount {{params[0].value}} is invalid. Must be an amount between {{params[1].value}} and {{params[2].value}} inclusive.", + "validation.msg.loanproduct.principalPerCycle.is.less.than.min":"Principal amount {{params[0].value}} is invalid. Must be an amount greater than or equal to Minimum Principal amount {{params[1].value}}.", + "validation.msg.loanproduct.principalPerCycle.is.greater.than.max":"Principal amount {{params[0].value}} is invalid. Must be an amount less than or equal to Maximum principal amount {{params[1].value}}.", + "validation.msg.loanproduct.minPrincipalPerCycle.is.greater.than.max":"Minimum Principal amount {{params[0].value}} is invalid. Must be an amount less than or equal to Maximum Principal amount {{params[1].value}}.", + "validation.msg.loanproduct.maxPrincipalPerCycle.is.less.than.min":"Maximum Principal amount {{params[0].value}} is invalid. Must be an amount greater than or equal to Minimum Principal amount {{params[1].value}}.", + "validation.msg.loanproduct.repaymentValueUsageCondition.cannot.be.blank":"Borrower cycle condition type can't be blank", + "validation.msg.loanproduct.repaymentValueUsageCondition.is.not.within.expected.range":"condition type must be equal or greter than only.", + "validation.msg.loanproduct.repaymentCycleNumber.cannot.be.blank":"Borrower cycle number can't be blank", + "validation.msg.loanproduct.repaymentCycleNumber.condition.type.must.end.with.greterthan":"Repayment number borrower cycle variations must end with greterthan condition", + "validation.msg.loanproduct.repaymentCycleNumber.not.greater.than.specified.number":"Borrower cycle number {{params[0].value}} is invalild.Cycle number must be greter than {{params[1].value}}", + "validation.msg.loanproduct.repaymentCycleNumber.not.equal.to.specified.number":"Borrower cycle number {{params[0].value}} is invalild.Cycle number must be equal to {{params[1].value}}", + "validation.msg.loanproduct.numberOfRepaymentsPerCycle.cannot.be.blank":"#repayments default value is mandatory", + "validation.msg.loanproduct.numberOfRepaymentsPerCycle.amount.is.not.within.min.max.range":"#Repayment {{params[0].value}} is invalid. Must be an number between {{params[1].value}} and {{params[2].value}} inclusive.", + "validation.msg.loanproduct.numberOfRepaymentsPerCycle.is.less.than.min":"#Repayment {{params[0].value}} is invalid. Must be an number greater than or equal to Minimum #Repayment {{params[1].value}}.", + "validation.msg.loanproduct.numberOfRepaymentsPerCycle.is.greater.than.max":"#Repayment {{params[0].value}} is invalid. Must be an amount less than or equal to Maximum #Repayment {{params[1].value}}.", + "validation.msg.loanproduct.minNumberOfRepaymentsPerCycle.is.greater.than.max":"Minimum #Repayment {{params[0].value}} is invalid. Must be an number less than or equal to Maximum #Repayment {{params[1].value}}.", + "validation.msg.loanproduct.maxNumberOfRepaymentsPerCycle.is.less.than.min":"Maximum #Repayment {{params[0].value}} is invalid. Must be an number greater than or equal to Minimum #Repayment {{params[1].value}}.", + "validation.msg.loanproduct.interestRateValueUsageCondition.cannot.be.blank":"Borrower cycle condition type can't be blank", + "validation.msg.loanproduct.interestRateValueUsageCondition.is.not.within.expected.range":"condition type must be equal or greter than only.", + "validation.msg.loanproduct.interestRateCycleNumber.cannot.be.blank":"Borrower cycle number can't be blank", + "validation.msg.loanproduct.interestRateCycleNumber.condition.type.must.end.with.greterthan":"Interest rate borrower cycle variations must end with greterthan condition", + "validation.msg.loanproduct.interestRateCycleNumber.not.greater.than.specified.number":"Borrower cycle number {{params[0].value}} is invalild.Cycle number must be greter than {{params[1].value}}", + "validation.msg.loanproduct.interestRateCycleNumber.not.equal.to.specified.number":"Borrower cycle number {{params[0].value}} is invalild.Cycle number must be equal to {{params[1].value}}", + "validation.msg.loanproduct.interestRatePerPeriodPerCycle.cannot.be.blank":"Interest rate default value is mandatory", + "validation.msg.loanproduct.interestRatePerPeriodPerCycle.amount.is.not.within.min.max.range":"Interest rate {{params[0].value}} is invalid. Must be an number between {{params[1].value}} and {{params[2].value}} inclusive.", + "validation.msg.loanproduct.interestRatePerPeriodPerCycle.is.less.than.min":"Interest rate {{params[0].value}} is invalid. Must be an number greater than or equal to Minimum Interest rate {{params[1].value}}.", + "validation.msg.loanproduct.interestRatePerPeriodPerCycle.is.greater.than.max":"Interest rate {{params[0].value}} is invalid. Must be an amount less than or equal to Maximum Interest rate {{params[1].value}}.", + "validation.msg.loanproduct.minInterestRatePerPeriodPerCycle.is.greater.than.max":"Minimum Interest rate {{params[0].value}} is invalid. Must be an number less than or equal to Maximum Interest rate {{params[1].value}}.", + "validation.msg.loanproduct.maxInterestRatePerPeriodPerCycle.is.less.than.min":"Maximum Interest rate {{params[0].value}} is invalid. Must be an number greater than or equal to Minimum Interest rate {{params[1].value}}.", + "------------------": "------------", diff --git a/app/scripts/controllers/savings/SavingAccountActionsController.js b/app/scripts/controllers/savings/SavingAccountActionsController.js index c411ea9e..a995ad9b 100644 --- a/app/scripts/controllers/savings/SavingAccountActionsController.js +++ b/app/scripts/controllers/savings/SavingAccountActionsController.js @@ -14,34 +14,34 @@ switch (scope.action) { case "approve": - scope.title = 'label.approve.saving.account'; - scope.labelName = 'label.saving.account.approvedOnDate'; + scope.title = 'label.heading.approvesavingaccount'; + scope.labelName = 'label.input.savingaccountapprovedOnDate'; scope.modelName = 'approvedOnDate'; scope.showDateField = true; scope.showNoteField = true; break; case "reject": - scope.title = 'label.reject.saving.account'; - scope.labelName = 'label.saving.account.rejectedOnDate'; + scope.title = 'label.heading.rejectsavingaccount'; + scope.labelName = 'label.input.rejectedon'; scope.modelName = 'rejectedOnDate'; scope.showDateField = true; scope.showNoteField = true; break; case "withdrawnByApplicant": - scope.title = 'label.withdraw.saving.account'; - scope.labelName = 'label.saving.account.withdrawnOnDate'; + scope.title = 'label.heading.withdrawsavingaccount'; + scope.labelName = 'label.input.withdrawnon'; scope.modelName = 'withdrawnOnDate'; scope.showDateField = true; scope.showNoteField = true; break; case "undoapproval": - scope.title = 'label.undoapprove.saving.account'; + scope.title = 'label.heading.undoapprovesavingaccount'; scope.showDateField = false; scope.showNoteField = true; break; case "activate": - scope.title = 'label.activate.saving.account'; - scope.labelName = 'label.saving.account.activatedOnDate'; + scope.title = 'label.heading.activatesavingaccount'; + scope.labelName = 'label.input.activatedon'; scope.modelName = 'activatedOnDate'; scope.showDateField = true; scope.showNoteField = false; @@ -50,8 +50,8 @@ resourceFactory.savingsTrxnsTemplateResource.get({savingsId:scope.accountId, command:'deposit'}, function (data) { scope.paymentTypes=data.paymentTypeOptions; }); - scope.title = 'label.deposit.money.to.saving.account'; - scope.labelName = 'label.saving.account.transactionDate'; + scope.title = 'label.heading.depositmoneytosavingaccount'; + scope.labelName = 'label.input.transactiondate'; scope.modelName = 'transactionDate'; scope.showDateField = true; scope.showNoteField = false; @@ -62,8 +62,8 @@ resourceFactory.savingsTrxnsTemplateResource.get({savingsId:scope.accountId, command:'withdrawal'}, function (data) { scope.paymentTypes=data.paymentTypeOptions; }); - scope.title = 'label.withdraw.money.from.saving.account'; - scope.labelName = 'label.saving.account.transactionDate'; + scope.title = 'label.heading.withdrawmoneyfromsavingaccount'; + scope.labelName = 'label.input.transactiondate'; scope.modelName = 'transactionDate'; scope.showDateField = true; scope.showNoteField = false; @@ -79,8 +79,8 @@ scope.formData.dueDate = new Date(dueDate); } }); - scope.title = 'label.saving.account.apply.annualFee'; - scope.labelName = 'label.saving.account.annualFeeTransactionDate'; + scope.title = 'label.heading.savingaccountapplyannualFee'; + scope.labelName = 'label.input.annualfeetransactiondate'; scope.modelName = 'dueDate'; scope.showDateField = true; scope.showAnnualAmountField = true; @@ -88,8 +88,8 @@ scope.showNoteField = false; break; case "close": - scope.title = 'label.close.saving.account'; - scope.labelName = 'label.saving.account.closedOnDate'; + scope.title = 'label.heading.closesavingaccount'; + scope.labelName = 'label.input.closedon'; scope.modelName = 'closedOnDate'; scope.showDateField = true; scope.showNoteField = true; @@ -97,8 +97,8 @@ case "modifytransaction": resourceFactory.savingsTrxnsResource.get({savingsId:scope.accountId, transactionId:routeParams.transactionId, template:'true'}, function (data) { - scope.title = 'label.edit.saving.account.transaction'; - scope.labelName = 'label.saving.account.transactionDate'; + scope.title = 'label.heading.editsavingaccounttransaction'; + scope.labelName = 'label.input.transactiondate'; scope.modelName = 'transactionDate'; scope.formData[scope.modelName] = new Date(data.date) || new Date(); scope.paymentTypes=data.paymentTypeOptions; @@ -131,7 +131,7 @@ } var feeOnMonthDay = dateFilter(scope.dateArray, 'dd MMMM yyyy'); scope.formData.feeOnMonthDayFullDate = new Date(feeOnMonthDay); - scope.labelName = 'label.saving.account.transactionDate'; + scope.labelName = 'label.heading.savingaccounttransactionDate'; scope.modelName = 'feeOnMonthDayFullDate'; scope.showDateField = true; scope.showAnnualAmountField = true; diff --git a/app/views/loans/editloanaccount.html b/app/views/loans/editloanaccount.html index a6a89ac4..74d31f10 100644 --- a/app/views/loans/editloanaccount.html +++ b/app/views/loans/editloanaccount.html @@ -1,19 +1,19 @@
-{{'form.legend.edit.loan.account' | translate }} +{{'label.heading.editloanaccount' | translate }}
@@ -21,28 +21,28 @@ @@ -57,11 +57,11 @@ @@ -80,13 +80,13 @@
- + - + - +
- + - +
- + - +
- - - - - + + + + +
@@ -131,50 +131,50 @@
- + {{loanaccountinfo.currency.displaySymbol}} - +
- + - +
- + - +
@@ -185,7 +185,7 @@
- + - +
- + {{formData.displaySymbol}} - + {{loanaccountinfo.currency.displaySymbol}}
- + - +
- + - +
- +
- + @@ -195,20 +195,20 @@ - - - - - - + + + + + + - + @@ -218,27 +218,27 @@
{{'table.heading.name' | translate}}{{'table.heading.type' | translate}}{{'table.heading.amount' | translate}}{{'table.heading.collectedon' | translate}}{{'table.heading.date' | translate}}{{'table.heading.actions' | translate}}{{'label.heading.name' | translate}}{{'label.heading.type' | translate}}{{'label.heading.amount' | translate}}{{'label.heading.collectedon' | translate}}{{'label.heading.date' | translate}}{{'label.heading.actions' | translate}}
{{charge.name}},{{charge.currency.displaySymbol}} {{charge.chargeCalculationType.value}} {{charge.chargeTimeType.value}} - +
- +
   -    - +    +  
- - - - + + + + - +
{{'table.heading.name' | translate}}{{'table.heading.value' | translate}}{{'table.heading.description' | translate}}{{'table.heading.actions' | translate}}{{'label.heading.name' | translate}}{{'label.heading.value' | translate}}{{'label.heading.description' | translate}}{{'label.heading.actions' | translate}}
@@ -249,29 +249,29 @@
- - + + - - - - - - - - + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -301,8 +301,8 @@
- - + +
\ No newline at end of file diff --git a/app/views/loans/view_loan_transaction.html b/app/views/loans/view_loan_transaction.html index 6dab1d58..0365d23d 100644 --- a/app/views/loans/view_loan_transaction.html +++ b/app/views/loans/view_loan_transaction.html @@ -1,47 +1,47 @@
-

{{ 'label.heading.transaction.details' | translate}}

+

{{ 'label.heading.details' | translate}}

{{'table.heading.loanamountandbalance' | translate}}{{'table.heading.totalcostofloan' | translate}}{{'label.heading.loanamountandbalance' | translate}}{{'label.heading.totalcostofloan' | translate}}
#{{'table.heading.date' | translate}}{{'table.heading.days' | translate}}{{'table.heading.disbursement' | translate}}{{'table.heading.principaldue' | translate}}{{'table.heading.principalbalance' | translate}}{{'table.heading.interest.due' | translate}}{{'table.heading.fees' | translate}}{{'table.heading.due' | translate}}{{'label.heading.date' | translate}}{{'label.heading.days' | translate}}{{'label.heading.disbursement' | translate}}{{'label.heading.principaldue' | translate}}{{'label.heading.principalbalance' | translate}}{{'label.heading.interest.due' | translate}}{{'label.heading.fees' | translate}}{{'label.heading.due' | translate}}
{{period.period}}
{{'table.heading.total' | translate}}{{'label.heading.total' | translate}} {{repaymentscheduleinfo.loanTermInDays}} {{repaymentscheduleinfo.totalPrincipalDisbursed}} {{repaymentscheduleinfo.totalPrincipalExpected}}
- + - + - + - + - +
{{ 'label.transactionId' | translate}}{{ 'label.heading.id' | translate}} {{transaction.id}}
{{ 'label.transaction.type' | translate}}{{ 'label.heading.type' | translate}} {{transaction.type.value}}
{{ 'label.transaction.date' | translate}}{{ 'label.heading.date' | translate}} {{transaction.date | DateFormat}}
{{ 'label.currency' | translate}}{{ 'label.heading.currency' | translate}} {{transaction.currency.name}}
{{ 'label.transaction.amount' | translate}}{{ 'label.heading.amount' | translate}} {{transaction.amount}}
- + diff --git a/app/views/products/createloanproduct.html b/app/views/products/createloanproduct.html index 57d0ab1e..08ed29e4 100644 --- a/app/views/products/createloanproduct.html +++ b/app/views/products/createloanproduct.html @@ -63,7 +63,7 @@
{{ 'label.transaction.paymentdetail.data' | translate}}{{ 'label.heading.paymentdetails' | translate}}
- + @@ -141,21 +141,21 @@ - + - +
{{'label.principalCycleVariations' | translate}}{{'label.heading.principalCycleVariations' | translate}}
- - - - + + + + @@ -220,21 +220,21 @@
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'label.input.cyclenumber' | translate}}{{'label.input.minimum' | translate}}{{'label.input.default' | translate}}{{'label.input.maximum' | translate}}
- + - +
{{'label.numerOfRepaymentCycleVariations' | translate}}{{'label.heading.numerOfRepaymentCycleVariations' | translate}}
- - - - + + + + @@ -312,21 +312,21 @@
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
- + - +
{{'label.interestRateCycleVariations' | translate}}{{'label.heading.interestRateCycleVariations' | translate}}
- - - - + + + + diff --git a/app/views/products/editloanproduct.html b/app/views/products/editloanproduct.html index a596d86a..88d020f5 100644 --- a/app/views/products/editloanproduct.html +++ b/app/views/products/editloanproduct.html @@ -65,7 +65,7 @@
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
- + @@ -142,21 +142,21 @@ - + - +
{{'label.principalCycleVariations' | translate}}{{'label.heading.principalCycleVariations' | translate}}
- - - - + + + + @@ -220,21 +220,21 @@
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
- + - +
{{'label.numerOfRepaymentCycleVariations' | translate}}{{'label.heading.numerOfRepaymentCycleVariations' | translate}}
- - - - + + + + @@ -313,21 +313,21 @@
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
- + - +
{{'label.interestRateCycleVariations' | translate}}{{'label.heading.interestRateCycleVariations' | translate}}
- - - - + + + + diff --git a/app/views/products/viewloanproduct.html b/app/views/products/viewloanproduct.html index ffa628ce..b7c17681 100644 --- a/app/views/products/viewloanproduct.html +++ b/app/views/products/viewloanproduct.html @@ -45,7 +45,7 @@ - + @@ -75,13 +75,13 @@ - + - - - - + + + + @@ -91,13 +91,13 @@ - + - - - - + + + + @@ -107,13 +107,13 @@ - + - - - - + + + +
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
{{loanproduct.includeInBorrowerCycle}}
{{'label.useborrowerloancounter' | translate}} :{{'label.input.useborrowerloancounter' | translate}} : {{loanproduct.useBorrowerCycle}}

{{loanproduct.interestRatePerPeriod}}   ( Min:{{loanproduct.minInterestRatePerPeriod}} , Max:{{loanproduct.maxInterestRatePerPeriod}})  {{loanproduct.interestRateFrequencyType.value}}
{{'label.principalCycleVariations' | translate}}{{'label.heading.principalCycleVariations' | translate}}
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
{{borrowerCycleVariation.maxValue}}
{{'label.numerOfRepaymentCycleVariations' | translate}}{{'label.heading.numerOfRepaymentCycleVariations' | translate}}
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}
{{borrowerCycleVariation.maxValue}}
{{'label.interestRateCycleVariations' | translate}}{{'label.heading.interestRateCycleVariations' | translate}}
{{'label.cyclenumber' | translate}}{{'label.minimum' | translate}}{{'label.default' | translate}}{{'label.maximum' | translate}}{{'labe.input.cyclenumber' | translate}}{{'labe.input.minimum' | translate}}{{'labe.input.default' | translate}}{{'labe.input.maximum' | translate}}