feat:Unificaction of radhathakare's PR (#1879)

* feat:Clients Translate Module

* feat: Collections Translate Module

* feat:Loan Translate Module

* feat:Search Translate Module

* feat English Json File

---------

Co-authored-by: radhathakare <radhathakare322@gmail.com>
This commit is contained in:
Francisco Cuandon
2023-10-18 10:50:03 -06:00
committed by GitHub
co-authored by radhathakare
parent 3e1067bfc6
commit d92f6c1c5e
111 changed files with 1502 additions and 1427 deletions
@@ -23,7 +23,7 @@
<mat-step [stepControl]="loansAccountDetailsForm">
<ng-template matStepLabel>DETAILS</ng-template>
<ng-template matStepLabel>{{"labels.inputs.DETAILS" |translate}}</ng-template>
<mifosx-glim-details-step [loansAccountTemplate]="loansAccountTemplate"
(loansAccountProductTemplate)="setTemplate($event)" [gsimData]="gsimData">
@@ -33,7 +33,7 @@
<mat-step [stepControl]="loansAccountTermsForm">
<ng-template matStepLabel>TERMS</ng-template>
<ng-template matStepLabel>{{"labels.inputs.TERMS" |translate}}</ng-template>
<mifosx-glim-terms-step [loansAccountProductTemplate]="loansAccountProductTemplate"
[loansAccountTemplate] = "loansAccountTemplate">
@@ -43,7 +43,7 @@
<mat-step>
<ng-template matStepLabel>CHARGES</ng-template>
<ng-template matStepLabel>{{"labels.inputs.CHARGES" |translate}}</ng-template>
<mifosx-glim-charges-step [loansAccountProductTemplate]="loansAccountProductTemplate"
[loansAccountTemplate]="loansAccountTemplate"
@@ -55,7 +55,7 @@
<mat-step state="preview" *ngIf="loansAccountFormValid" completed>
<ng-template matStepLabel>PREVIEW</ng-template>
<ng-template matStepLabel>{{"labels.inputs.PREVIEW" |translate}}</ng-template>
<mifosx-loans-account-preview-step [loansAccountTemplate]="loansAccountTemplate"
[loansAccountProductTemplate]="loansAccountProductTemplate" [loansAccount]="loansAccount" (submit)="submit()">
@@ -1,7 +1,7 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>Charge</mat-label>
<mat-label>{{"labels.inputs.Charge" |translate}}</mat-label>
<mat-select #charge>
<mat-option *ngFor="let charge of chargeData" [value]="charge">
{{ charge.name }}
@@ -12,28 +12,28 @@
<div fxFlex="48%" fxFlexAlign="center">
<button type="button" mat-raised-button color="primary" (click)="addCharge(charge)" [disabled]="!charge.value">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
Add
{{"labels.buttons.Add" |translate}}
</button>
</div>
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="chargesDataSource" [hidden]="chargesDataSource.length === 0">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.name + ', ' + charge.currency.displaySymbol }}
</td>
</ng-container>
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
<button mat-icon-button color="primary" (click)="editChargeAmount(charge)">
@@ -43,14 +43,14 @@
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> Collected On </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Collected On" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
</td>
</ng-container>
<ng-container matColumnDef="date">
<th mat-header-cell *matHeaderCellDef> Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Date" |translate}} </th>
<td mat-cell *matCellDef="let charge">
<span *ngIf="charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee'">
{{(charge.dueDate | dateFormat) || 'Unassigned'}}
@@ -61,7 +61,7 @@
<span
*ngIf="!(charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'
|| charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee')">
N/A
{{"labels.inputs.N/A" |translate}}
</span>
<button mat-icon-button color="primary"
*ngIf="charge.chargeTimeType.value === 'Weekly Fee' || charge.chargeTimeType.value === 'Annual Fee'
@@ -73,7 +73,7 @@
</ng-container>
<ng-container matColumnDef="repaymentsEvery">
<th mat-header-cell *matHeaderCellDef> Repayments Every </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Repayments Every" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.feeInterval || 'Not Provided' }}
<button mat-icon-button color="primary"
@@ -85,7 +85,7 @@
</ng-container>
<ng-container matColumnDef="action">
<th mat-header-cell *matHeaderCellDef> Actions </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell *matCellDef="let charge">
<button mat-icon-button color="warn" (click)="deleteCharge(charge)">
<fa-icon icon="trash"></fa-icon>
@@ -113,22 +113,22 @@
<!-- Position Column -->
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef> Client ID </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Client ID" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.id}} </td>
</ng-container>
<!-- Name Column -->
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Client Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Client Name" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.displayName}} </td>
</ng-container>
<!-- Weight Column -->
<ng-container matColumnDef="purpose">
<th mat-header-cell *matHeaderCellDef> Loan Purpose </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Purpose" |translate}} </th>
<td mat-cell *matCellDef="let element">
<mat-form-field>
<mat-label>Select Purpose</mat-label>
<mat-label>{{"labels.inputs.Select Purpose" |translate}}</mat-label>
<mat-select [(ngModel)]="element.loanPurposeId">
<mat-option *ngFor="let purpose of loanPurposeOptions" [value]="purpose.id">
{{ purpose.name }}
@@ -140,7 +140,7 @@
<!-- Symbol Column -->
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Original Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Original Loan" |translate}} </th>
<td mat-cell *matCellDef="let element">
<mat-form-field>
<input type="number" matInput [(ngModel)]="element.principal">
@@ -160,10 +160,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{"labels.buttons.Previous" |translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{"labels.buttons.Next" |translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -3,19 +3,19 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>Product Name</mat-label>
<mat-label>{{"labels.inputs.Product Name" |translate}}</mat-label>
<mat-select formControlName="productId" required>
<mat-option *ngFor="let product of productData" [value]="product.id">
{{ product.name }}
</mat-option>
</mat-select>
<mat-error>
Product Name is <strong>required</strong>
{{"labels.inputs.Product Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Loan officer</mat-label>
<mat-label>{{"labels.inputs.Loan officer" |translate}}</mat-label>
<mat-select formControlName="loanOfficerId">
<mat-option *ngFor="let loanOfficer of loanOfficerOptions" [value]="loanOfficer.id">
{{ loanOfficer.displayName }}
@@ -25,7 +25,7 @@
<mat-form-field fxFlex="48%">
<mat-label>Fund</mat-label>
<mat-label>{{"labels.inputs.Fund" |translate}}</mat-label>
<mat-select formControlName="fundId">
<mat-option *ngFor="let fund of fundOptions" [value]="fund.id">
{{ fund.name }}
@@ -34,24 +34,24 @@
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="submitPicker.open()">
<mat-label>Submitted on</mat-label>
<mat-label>{{"labels.inputs.Submitted on" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submitPicker" required
formControlName="submittedOnDate">
<mat-datepicker-toggle matSuffix [for]="submitPicker"></mat-datepicker-toggle>
<mat-datepicker #submitPicker></mat-datepicker>
<mat-error *ngIf="loansAccountDetailsForm.controls.submittedOnDate?.hasError('required')">
Submitted on is <strong>required</strong>
{{"labels.inputs.Submitted on" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="disbursementPicker.open()">
<mat-label>Disbursement on</mat-label>
<mat-label>{{"labels.inputs.Disbursement on" |translate}}</mat-label>
<input matInput [min]="loansAccountDetailsForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="disbursementPicker" required
formControlName="expectedDisbursementDate">
<mat-datepicker-toggle matSuffix [for]="disbursementPicker"></mat-datepicker-toggle>
<mat-datepicker #disbursementPicker></mat-datepicker>
<mat-error *ngIf="loansAccountDetailsForm.controls.submittedOnDate?.hasError('required')">
Disbursement on is <strong>required</strong>
{{"labels.inputs.Disbursement on" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
@@ -59,10 +59,10 @@
<mat-divider fxFlex="98%"></mat-divider>
<h3 class="mat-h3" fxFlexFill>Savings Linkage</h3>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Savings Linkage" |translate}}</h3>
<mat-form-field fxFlex="48%">
<mat-label>Link savings</mat-label>
<mat-label>{{"labels.inputs.Link savings" |translate}}</mat-label>
<mat-select formControlName="linkAccountId">
<mat-option *ngFor="let savingaccount of gsimData" [value]="savingaccount.id">
{{ savingaccount.accountNumber }}
@@ -77,10 +77,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious disabled>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{"labels.buttons.Previous" |translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{"labels.buttons.Next" |translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -1,70 +1,70 @@
<div fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>Details</h3>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Details" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill>
<span fxFlex="40%">Product:</span>
<span fxFlex="40%">{{"labels.inputs.Product" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.productId | find:loansAccountTemplate.productOptions:'id':'name' }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.loanOfficerId">
<span fxFlex="40%">Loan officer:</span>
<span fxFlex="40%">{{"labels.inputs.Loan officer" |translate}}:</span>
<span
fxFlex="60%">{{ loansAccount.loanOfficerId | find:loansAccountProductTemplate.loanOfficerOptions:'id':'displayName'}}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.loanPurposeId">
<span fxFlex="40%">Loan purpose:</span>
<span fxFlex="40%">{{"labels.inputs.Loan purpose" |translate}}:</span>
<span
fxFlex="60%">{{ loansAccount.loanPurposeId | find:loansAccountProductTemplate.loanPurposeOptions:'id':'name'}}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.fundId">
<span fxFlex="40%">Fund:</span>
<span fxFlex="40%">{{"labels.inputs.Fund" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.fundId | find:loansAccountProductTemplate.fundOptions:'id':'name'}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Submitted on:</span>
<span fxFlex="40%">{{"labels.inputs.Submitted on" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.submittedOnDate | dateFormat }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Disbursement on:</span>
<span fxFlex="40%">{{"labels.inputs.Disbursement on" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.expectedDisbursementDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.externalId">
<span fxFlex="40%">External id:</span>
<span fxFlex="40%">{{"labels.inputs.External id" |translate}}:</span>
<span fxFlex="60%">
<mifosx-external-identifier externalId="{{loansAccount.externalId}}"></mifosx-external-identifier>
</span>
</div>
<h3 class="mat-h3" fxFlexFill>Terms</h3>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Terms" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill>
<span fxFlex="40%">Principal:</span>
<span fxFlex="40%">{{"labels.inputs.Principal" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.principal }} {{loansAccountProductTemplate.currency.DisplaySymbol}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Loan term:</span>
<span fxFlex="40%">{{"labels.inputs.Loan term" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.loanTermFrequency }}
{{loansAccount.loanTermFrequencyType | find: loansAccountProductTemplate.termFrequencyTypeOptions:'id':'name'}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Number of repayments:</span>
<span fxFlex="40%">{{"labels.inputs.Number of repayments" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.numberOfRepayments }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Repaid every:</span>
<span fxFlex="40%">{{"labels.inputs.Repaid every" |translate}}:</span>
<span fxFlex="60%">{{loansAccount.repaymentEvery}}
{{loansAccount.repaymentFrequencyType | find: loansAccountProductTemplate.termFrequencyTypeOptions:'id':'name'}}
{{loansAccount.repaymentFrequencyNthDayType | find: loansAccountProductTemplate.repaymentFrequencyNthDayTypeOptions:'id': 'name'}}
@@ -72,137 +72,137 @@
</div>
<div fxFlexFill *ngIf="loansAccount.repaymentsStartingFromDate">
<span fxFlex="40%">First repayment on:</span>
<span fxFlex="40%">{{"labels.inputs.First repayment on" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.repaymentsStartingFromDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.interestChargedFromDate">
<span fxFlex="40%">Interest charged from:</span>
<span fxFlex="40%">{{"labels.inputs.Interest charged from" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.interestChargedFromDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.interestRatePerPeriod">
<span fxFlex="40%">Nominal interest rate:</span>
<span fxFlex="40%">{{"labels.inputs.Nominal interest rate" |translate}}:</span>
<span
fxFlex="60%">{{loansAccount.interestRatePerPeriod}}&nbsp;&nbsp;{{loansAccountProductTemplate.interestRateFrequencyType.value}}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.interestType">
<span fxFlex="40%">Interest method: </span>
<span fxFlex="40%">{{"labels.inputs.Interest method" |translate}}: </span>
<span fxFlex="60%">{{loansAccount.interestType}}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.isEqualAmortization">
<span fxFlex="40%">Is Equal Amortization:</span>
<span fxFlex="40%">{{"labels.inputs.Is Equal Amortization" |translate}}:</span>
<span fxFlex="60%">{{loansAccount.isEqualAmortization}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Amortization</span>
<span fxFlex="40%">{{"labels.inputs.Amortization" |translate}}</span>
<span
fxFlex="60%">{{ loansAccount.amortizationType | find:loansAccountProductTemplate.amortizationTypeOptions:'id':'value' }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Interest calculation period: </span>
<span fxFlex="40%">{{"labels.inputs.Interest calculation period" |translate}}: </span>
<span
fxFlex="60%">{{ loansAccount.interestCalculationPeriodType | find:loansAccountProductTemplate.interestCalculationPeriodTypeOptions:'id':'value' }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.allowPartialPeriodInterestCalcualtion">
<span fxFlex="40%">Calculate interest for exact days in partial period:</span>
<span fxFlex="40%">{{"labels.inputs.Calculate interest for exact days in partial period" |translate}}:</span>
<span fxFlex="60%">{{ loansAccount.allowPartialPeriodInterestCalcualtion }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.inArrearsTolerance">
<span fxFlex="40%">Arrears tolerance: </span>
<span fxFlex="40%">{{"labels.inputs.Arrears tolerance" |translate}}: </span>
<span
fxFlex="60%">{{loansAccount.inArrearsTolerance}}&nbsp;{{loansAccountProductTemplate.currency.displaySymbol}}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.graceOnInterestCharged">
<span fxFlex="40%">Interest free period: </span>
<span fxFlex="40%">{{"labels.inputs.Interest free period" |translate}}: </span>
<span fxFlex="60%">{{ loansAccount.graceOnInterestCharged }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Repayment strategy: </span>
<span fxFlex="40%">{{"labels.inputs.Repayment strategy" |translate}}: </span>
<span
fxFlex="60%">{{ loansAccount.transactionProcessingStrategyCode | find:loansAccountTemplate.transactionProcessingStrategyOptions:'code':'name' }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Moratorium</h3>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Moratorium" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill *ngIf="loansAccount.graceOnPrincipalPayment">
<span fxFlex="40%">On principal payment: </span>
<span fxFlex="40%">{{"labels.inputs.On principal payment" |translate}}: </span>
<span fxFlex="60%">{{ loansAccount.graceOnPrincipalPayment }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.graceOnInterestPayment">
<span fxFlex="40%">On interest payment: </span>
<span fxFlex="40%">{{"labels.inputs.On interest payment" |translate}}: </span>
<span fxFlex="60%">{{ loansAccount.graceOnInterestPayment }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.graceOnArrearsAgeing">
<span fxFlex="40%">On Arrears Aging: </span>
<span fxFlex="40%">{{"labels.inputs.On Arrears Aging" |translate}}: </span>
<span fxFlex="60%">{{ loansAccount.graceOnArrearsAgeing }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.isTopup">
<span fxFlex="40%">Is Topup Loan? </span>
<span fxFlex="40%">{{"labels.inputs.Is Topup Loan" |translate}}? </span>
<span fxFlex="60%">{{ loansAccount.isTopup }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Recalculate Interest: </span>
<span fxFlex="40%">{{"labels.inputs.Recalculate Interest" |translate}}: </span>
<span fxFlex="60%">{{ loansAccountProductTemplate?.isInterestRecalculationEnabled? 'Yes' : 'No' }}</span>
</div>
<div fxFlexFill *ngIf="loansAccountProductTemplate?.daysInMonthType">
<span fxFlex="40%">Days in month: </span>
<span fxFlex="40%">{{"labels.inputs.Days in month" |translate}}: </span>
<span fxFlex="60%">{{ loansAccountProductTemplate?.daysInMonthType.value }}</span>
</div>
<div fxFlexFill *ngIf="loansAccount.charges.length" fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>Charges</h3>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Charges" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="loansAccount.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.name + ', ' + charge.currency.displaySymbol }}
</td>
</ng-container>
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> Collected On </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Collected On" |translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
</td>
</ng-container>
<ng-container matColumnDef="date">
<th mat-header-cell *matHeaderCellDef> Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Date" |translate}} </th>
<td mat-cell *matCellDef="let charge">
<span
*ngIf="charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee'">
@@ -214,7 +214,7 @@
<span
*ngIf="!(charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'
|| charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee')">
N/A
{{"labels.inputs.N/A" |translate}}
</span>
</td>
</ng-container>
@@ -228,29 +228,29 @@
<div fxFlexFill *ngIf="loansAccountProductTemplate.overdueCharges.length" fxLayout="row wrap" fxLayout.lt-md="column">
<h3 fxFlex="98%" class="mat-h3">Overdue Charges</h3>
<h3 fxFlex="98%" class="mat-h3">{{"labels.heading.Overdue Charges" |translate}}</h3>
<mat-divider fxFlex="98%"></mat-divider>
<table mat-table class="mat-elevation-z1" [dataSource]="loansAccountProductTemplate.overdueCharges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.name }},{{ charge.currency.displaySymbol }} </td>
</ng-container>
<ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeCalculationType.value }} </td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount" |translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.amount| formatNumber }} </td>
</ng-container>
<ng-container matColumnDef="collectedon">
<th mat-header-cell *matHeaderCellDef> Collected On </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Collected On" |translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value }} </td>
</ng-container>
@@ -264,12 +264,12 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{"labels.buttons.Previous" |translate}}
</button>
<button mat-raised-button [routerLink]="['../']">
Cancel
{{"labels.buttons.Cancel" |translate}}
</button>
<button mat-raised-button color="primary" (click)="submit.emit()">
Submit
{{"labels.buttons.Submit" |translate}}
</button>
</div>
@@ -2,57 +2,57 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<h4 fxFlex="98%" class="mat-h4">Term Options</h4>
<h4 fxFlex="98%" class="mat-h4">{{"labels.heading.Term Options" |translate}}</h4>
<mat-form-field fxFlex="48%">
<mat-label>Loan Term</mat-label>
<mat-label>{{"labels.inputs.Loan Term" |translate}}</mat-label>
<input matInput required formControlName="loanTermFrequency">
<mat-error *ngIf="loansAccountTermsForm.controls.loanTermFrequency.hasError('required')">
Loan Term is <strong>required</strong>
{{"labels.inputs.Loan Term" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Frequency</mat-label>
<mat-label>{{"labels.inputs.Frequency" |translate}}</mat-label>
<mat-select required formControlName="loanTermFrequencyType">
<mat-option *ngFor="let type of termFrequencyTypeData" [value]="type.id">
{{ type.value }}
</mat-option>
</mat-select>
<mat-error *ngIf="loansAccountTermsForm.controls.loanTermFrequencyType.hasError('required')">
Frequency is <strong>required</strong>
{{"labels.inputs.Frequency" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Number of repayments</mat-label>
<mat-label>{{"labels.inputs.Number of repayments" |translate}}</mat-label>
<input type="number" matInput formControlName="numberOfRepayments">
<mat-error *ngIf="loansAccountTermsForm.controls.numberOfRepayments.hasError('required')">
Number of repayments is <strong>required</strong>
{{"labels.inputs.Number of repayments" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="repaymentsPicker.open()">
<mat-label>First repayment on</mat-label>
<mat-label>{{"labels.inputs.First repayment on" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="repaymentsPicker"
formControlName="repaymentsStartingFromDate">
<mat-datepicker-toggle matSuffix [for]="repaymentsPicker"></mat-datepicker-toggle>
<mat-datepicker #repaymentsPicker></mat-datepicker>
</mat-form-field>
<h4 fxFlex="98%" class="mat-h4">Repaid Every</h4>
<h4 fxFlex="98%" class="mat-h4">{{"labels.heading.Repaid Every" |translate}}</h4>
<mat-form-field fxFlex="48%">
<mat-label>Repaid every</mat-label>
<mat-label>{{"labels.inputs.Repaid every" |translate}}</mat-label>
<input matInput required formControlName="repaymentEvery"
[disabled]="!loansAccountProductTemplate?.product.allowAttributeOverrides.repaymentEvery">
<mat-error *ngIf="loansAccountTermsForm.controls.repaymentEvery.hasError('required')">
Repaid every is <strong>required</strong>
{{"labels.inputs.Repaid every" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Frequency</mat-label>
<mat-label>{{"labels.inputs.Frequency" |translate}}</mat-label>
<mat-select formControlName="repaymentFrequencyType" required
[disabled]="!loansAccountProductTemplate?.product.allowAttributeOverrides.repaymentEvery">
<mat-option *ngFor="let repaymentFrequencyType of termFrequencyTypeData"
@@ -63,7 +63,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%" *ngIf="loansAccountTermsForm.controls.repaymentFrequencyType.value == 2">
<mat-label>Select On</mat-label>
<mat-label>{{"labels.inputs.Select On" |translate}}</mat-label>
<mat-select formControlName="repaymentFrequencyNthDayType">
<mat-option
*ngFor="let repaymentFrequencyNthDayType of repaymentFrequencyNthDayTypeData"
@@ -74,7 +74,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%" *ngIf="loansAccountTermsForm.controls.repaymentFrequencyType.value == 2">
<mat-label>Select Day</mat-label>
<mat-label>{{"labels.inputs.Select Day" |translate}}</mat-label>
<mat-select formControlName="repaymentFrequencyDayOfWeekType">
<mat-option
*ngFor="let repaymentFrequencyDayOfWeekType of repaymentFrequencyDaysOfWeekTypeData"
@@ -85,7 +85,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="interestPicker.open()">
<mat-label>Interest charged from</mat-label>
<mat-label>{{"labels.inputs.Interest charged from" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="interestPicker"
formControlName="interestChargedFromDate">
<mat-datepicker-toggle matSuffix [for]="interestPicker"></mat-datepicker-toggle>
@@ -95,12 +95,12 @@
<ng-container *ngIf="!loansAccountProductTemplate?.isLoanProductLinkedToFloatingRate">
<mat-form-field fxFlex="48%">
<mat-label>Nominal interest rate</mat-label>
<mat-label>{{"labels.inputs.Nominal interest rate" |translate}}</mat-label>
<input type="number" matInput formControlName="interestRatePerPeriod">
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Interest method</mat-label>
<mat-label>{{"labels.inputs.Interest method" |translate}}</mat-label>
<mat-select [disabled]="!loansAccountProductTemplate?.product.allowAttributeOverrides.interestType"
formControlName="interestType">
<mat-option *ngFor="let interestType of interestTypeData"
@@ -118,10 +118,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{"labels.buttons.Previous" |translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{"labels.buttons.Next" |translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -2,38 +2,38 @@
<mat-card-content>
<h2> GLIM Account Overview</h2>
<h2> {{"labels.heading.GLIM Account Overview" |translate}}</h2>
<table mat-table [dataSource]="dataSource">
<ng-container matColumnDef="loanId">
<th mat-header-cell *matHeaderCellDef> Loan Id </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Id" |translate}} </th>
<td mat-cell *matCellDef="let element">
{{element.childLoanId}} </td>
</ng-container>
<ng-container matColumnDef="clientId">
<th mat-header-cell *matHeaderCellDef> Client ID </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Client ID" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.clientId}} </td>
</ng-container>
<ng-container matColumnDef="clientName">
<th mat-header-cell *matHeaderCellDef> Client Name</th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Client Name" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.clientName}} </td>
</ng-container>
<ng-container matColumnDef="loanAccountNumber">
<th mat-header-cell *matHeaderCellDef> Loan Account Number</th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account Number" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.childLoanAccountNo}} </td>
</ng-container>
<ng-container matColumnDef="clientPrincipalLoan">
<th mat-header-cell *matHeaderCellDef> Client Principal Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Client Principal Loan" |translate}} </th>
<td mat-cell *matCellDef="let element" > {{element.childPrincipalAmount}} </td>
</ng-container>
<ng-container matColumnDef="groupPrincipalLoan">
<th mat-header-cell *matHeaderCellDef> Group Principal Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Group Principal Loan" |translate}} </th>
<td mat-cell *matCellDef="let element" > {{element.parentPrincipalAmount}} </td>
</ng-container>