build: Use prettier for html

Stop ignoring html files in prettier and fix existing issues.
This commit is contained in:
Ralph Hopman
2024-12-19 09:36:50 +01:00
committed by Adam Saghy
parent c5fc3925fb
commit 2ec9ba81d6
651 changed files with 28935 additions and 20624 deletions
@@ -1,10 +1,8 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Charge" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Charge' | translate }}</mat-label>
<mat-select #charge>
<mat-option *ngFor="let charge of chargeData"
[value]="charge">
<mat-option *ngFor="let charge of chargeData" [value]="charge">
{{ charge.name }}
</mat-option>
</mat-select>
@@ -13,28 +11,33 @@
<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>
{{"labels.buttons.Add" | translate }}
{{ 'labels.buttons.Add' | translate }}
</button>
</div>
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="chargesDataSource" [hidden]="chargesDataSource.length === 0">
<table
fxFlex="98%"
class="mat-elevation-z1"
mat-table
[dataSource]="chargesDataSource"
[hidden]="chargesDataSource.length === 0"
>
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" | translate }} </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> {{"labels.inputs.Type" | translate }} </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> {{"labels.inputs.Amount" | translate }} </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)">
@@ -44,46 +47,67 @@
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Collected On" | translate }} </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> {{"labels.inputs.Date" | translate }} </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*'}}
<span
*ngIf="charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee'"
>
{{ (charge.dueDate | dateFormat) || 'Unassigned*' }}
</span>
<span *ngIf="charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'">
{{charge.feeOnMonthDay ? ([2000].concat(charge.feeOnMonthDay) | dateFormat: 'dd MMMM') : 'Unassigned'}}
{{ charge.feeOnMonthDay ? ([2000].concat(charge.feeOnMonthDay) | dateFormat: 'dd MMMM') : 'Unassigned' }}
</span>
<span *ngIf="!(charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'
|| charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee')">
{{"labels.inputs.N/A" | translate }}
<span
*ngIf="
!(
charge.chargeTimeType.value === 'Monthly Fee' ||
charge.chargeTimeType.value === 'Annual Fee' ||
charge.chargeTimeType.value === 'Specified due date' ||
charge.chargeTimeType.value === 'Weekly Fee'
)
"
>
{{ 'labels.inputs.N/A' | translate }}
</span>
<button mat-icon-button color="primary" *ngIf="charge.chargeTimeType.value === 'Weekly Fee' || charge.chargeTimeType.value === 'Annual Fee'
|| charge.chargeTimeType.value === 'Specified due date'" (click)="editChargeDate(charge)">
<button
mat-icon-button
color="primary"
*ngIf="
charge.chargeTimeType.value === 'Weekly Fee' ||
charge.chargeTimeType.value === 'Annual Fee' ||
charge.chargeTimeType.value === 'Specified due date'
"
(click)="editChargeDate(charge)"
>
<fa-icon icon="pen"></fa-icon>
</button>
</td>
</ng-container>
<ng-container matColumnDef="repaymentsEvery">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Repayments Every" | translate }} </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"
<button
mat-icon-button
color="primary"
*ngIf="charge.chargeTimeType.value === 'Weekly Fee' || charge.chargeTimeType.value === 'Monthly Fee'"
(click)="editChargeFeeInterval(charge)">
(click)="editChargeFeeInterval(charge)"
>
<fa-icon icon="pen"></fa-icon>
</button>
</td>
</ng-container>
<ng-container matColumnDef="action">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </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>
@@ -92,19 +116,17 @@
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
</table>
</div>
<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>
{{"labels.buttons.Previous" | translate }}
{{ 'labels.buttons.Previous' | translate }}
</button>
<button mat-raised-button matStepperNext [disabled]="!fixedDepositAccountFormValid">
{{"labels.buttons.Next" | translate }}
{{ 'labels.buttons.Next' | translate }}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -1,32 +1,38 @@
<form [formGroup]="fixedDepositAccountDetailsForm">
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Product Name" | translate }}</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>
{{"labels.inputs.Product Name" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</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%" (click)="submittedOnDatePicker.open()" *ngIf="isProductSelected">
<mat-label>{{"labels.inputs.Submitted On" | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker"
formControlName="submittedOnDate" required>
<mat-label>{{ 'labels.inputs.Submitted On' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="submittedOnDatePicker"
formControlName="submittedOnDate"
required
/>
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker>
<mat-error>
{{"labels.inputs.Submission Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Submission Date' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%" *ngIf="isProductSelected">
<mat-label>{{"labels.inputs.Field Officer" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Field Officer' | translate }}</mat-label>
<mat-select formControlName="fieldOfficerId">
<mat-option *ngFor="let officer of fieldOfficerData" [value]="officer.id">
{{ officer.displayName }}
@@ -35,21 +41,19 @@
</mat-form-field>
<mat-form-field fxFlex="48%" *ngIf="isProductSelected">
<mat-label>{{"labels.inputs.External id" | translate}}</mat-label>
<input matInput formControlName="externalId" matTooltip="{{ 'tooltips.Provides an external id' | translate}}">
<mat-label>{{ 'labels.inputs.External id' | translate }}</mat-label>
<input matInput formControlName="externalId" matTooltip="{{ 'tooltips.Provides an external id' | translate }}" />
</mat-form-field>
</div>
<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>
{{"labels.buttons.Previous" | translate }}
{{ 'labels.buttons.Previous' | translate }}
</button>
<button mat-raised-button matStepperNext>
{{"labels.buttons.Next" | translate }}
{{ 'labels.buttons.Next' | translate }}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
</form>
@@ -1,149 +1,161 @@
<div fxLayout="column" fxLayoutGap="2%">
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.name">
<span fxFlex="40%">{{"labels.inputs.name" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.name' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.accountChart.name }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Valid from Date" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.fromDate | dateFormat }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Valid from Date' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.fromDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.endDate">
<span fxFlex="40%">{{"labels.inputs.End Date" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.endDate | dateFormat }}</span>
<span fxFlex="40%">{{ 'labels.inputs.End Date' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.endDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.description">
<span fxFlex="40%">{{"labels.inputs.Description" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.Description' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.description }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Primary Grouping by Amount" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.isPrimaryGroupingByAmount ? 'Yes' : 'No' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Primary Grouping by Amount' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositsAccountProductTemplate?.accountChart.isPrimaryGroupingByAmount ? 'Yes' : 'No'
}}</span>
</div>
<table class="mat-elevation-z1" mat-table [dataSource]="interestRateChartData" #chartsTable multiTemplateDataRows>
<ng-container matColumnDef="period">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Period" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Period' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">
{{chartSlab.fromPeriod}}-{{chartSlab.toPeriod}}&nbsp;{{chartSlab.periodType.value}}</td>
{{ chartSlab.fromPeriod }}-{{ chartSlab.toPeriod }}&nbsp;{{ chartSlab.periodType.value }}
</td>
</ng-container>
<ng-container matColumnDef="amountRange">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount Range" | translate }} </th>
<td mat-cell *matCellDef="let chartSlab">{{chartSlab.amountRangeFrom}}-{{chartSlab.amountRangeTo}}</td>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Amount Range' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">{{ chartSlab.amountRangeFrom }}-{{ chartSlab.amountRangeTo }}</td>
</ng-container>
<ng-container matColumnDef="interest">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Interest" | translate }} </th>
<td mat-cell *matCellDef="let chartSlab"> {{ chartSlab.annualInterestRate }} </td>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Interest' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">{{ chartSlab.annualInterestRate }}</td>
</ng-container>
<ng-container matColumnDef="description">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Description" | translate }} </th>
<td mat-cell *matCellDef="let chartSlab"> {{ chartSlab.description }} </td>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Description' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">{{ chartSlab.description }}</td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
<button mat-button color="primary" (click)="expandChartSlabIndex = expandChartSlabIndex === chartSlabIndex ? null : chartSlabIndex">
<button
mat-button
color="primary"
(click)="expandChartSlabIndex = expandChartSlabIndex === chartSlabIndex ? null : chartSlabIndex"
>
<span *ngIf="expandChartSlabIndex !== chartSlabIndex">
<fa-icon icon="eye" class="m-r-10"></fa-icon>
{{"labels.buttons.View Incentives" | translate }}
{{ 'labels.buttons.View Incentives' | translate }}
</span>
<span *ngIf="expandChartSlabIndex === chartSlabIndex">
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
{{"labels.buttons.Hide Incentives" | translate }}
{{ 'labels.buttons.Hide Incentives' | translate }}
</span>
</button>
</td>
</ng-container>
<ng-container matColumnDef="incentives">
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex" [attr.colspan]="chartSlabsDisplayedColumns.length">
<div fxLayout="row wrap" fxFlexFill class="incentives" [@expandChartSlab]="chartSlabIndex === expandChartSlabIndex ? 'expanded' : 'collapsed'">
<td
mat-cell
*matCellDef="let chartSlab; let chartSlabIndex = dataIndex"
[attr.colspan]="chartSlabsDisplayedColumns.length"
>
<div
fxLayout="row wrap"
fxFlexFill
class="incentives"
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex ? 'expanded' : 'collapsed'"
>
<mat-card fxLayout="row wrap" fxFlexFill>
<h4 class="m-b-10" fxFlex="13%">
{{"labels.heading.Incentives" | translate }}
{{ 'labels.heading.Incentives' | translate }}
</h4>
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives" *ngIf="chartSlab.incentives.length">
<table
fxFlexFill
class="mat-elevation-z1"
mat-table
[dataSource]="chartSlab.incentives"
*ngIf="chartSlab.incentives.length"
>
<ng-container matColumnDef="entityType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Entity Type" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.entityType.value }}
</td>
</ng-container>
<ng-container matColumnDef="attributeName">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attribute Name" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Attribute Name' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.attributeName.value }}
</td>
</ng-container>
<ng-container matColumnDef="conditionType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Condition Type" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Condition Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.conditionType.value | titlecase }}
</td>
</ng-container>
<ng-container matColumnDef="attributeValue">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attribute Value" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Attribute Value' | translate }}</th>
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
{{ incentive.attributeValueDesc }}
</td>
</ng-container>
<ng-container matColumnDef="incentiveType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Incentive Type" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Incentive Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.incentiveType.value }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Interest" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Interest' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.amount }}
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="incentivesDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: incentivesDisplayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: incentivesDisplayedColumns"></tr>
</table>
</mat-card>
</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="chartSlabsDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsDisplayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsIncentivesDisplayedColumns;" class="incentives-row"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsIncentivesDisplayedColumns" class="incentives-row"></tr>
</table>
</div>
<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>
{{"labels.buttons.Previous" | translate }}
{{ 'labels.buttons.Previous' | translate }}
</button>
<button mat-raised-button matStepperNext>
{{"labels.buttons.Next" | translate }}
{{ 'labels.buttons.Next' | translate }}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -1,358 +1,436 @@
<div fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Details" | translate }}</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Details' | translate }}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Product" | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.productId | find:fixedDepositsAccountTemplate.productOptions:'id':'name' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Product' | translate }}</span>
<span fxFlex="60%">{{
fixedDepositAccountData.productId | find: fixedDepositsAccountTemplate.productOptions : 'id' : 'name'
}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Submitted On" | translate }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Submitted On' | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.submittedOnDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositAccountData.externalId">
<span fxFlex="40%">{{"labels.inputs.External Id" | translate }}</span>
<span fxFlex="40%">{{ 'labels.inputs.External Id' | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.externalId }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Field Officer" | translate }}</span>
<span fxFlex="60%">{{ (fixedDepositAccountData.fieldOfficerId | find:fixedDepositsAccountProductTemplate.fieldOfficerOptions:'id':'displayName') || 'Unassigned' | translateKey:'inputs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Field Officer' | translate }}</span>
<span fxFlex="60%">{{
(fixedDepositAccountData.fieldOfficerId
| find: fixedDepositsAccountProductTemplate.fieldOfficerOptions : 'id' : 'displayName') || 'Unassigned'
| translateKey: 'inputs'
}}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Currency" | translate }}</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Currency' | translate }}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Currency" | translate }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Currency' | translate }}</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.currency.code }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Currency Multiple" | translate }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Currency Multiple' | translate }}</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.currency.inMultiplesOf }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Decimal Places" | translate }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Decimal Places' | translate }}</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.currency.decimalPlaces }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Terms" | translate }}</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Terms' | translate }}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Fixed Deposit Amount" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositAccountData.depositAmount | currency:fixedDepositsAccountProductTemplate.currency.code:'symbol-narrow':'1.2-2' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Fixed Deposit Amount' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositAccountData.depositAmount
| currency: fixedDepositsAccountProductTemplate.currency.code : 'symbol-narrow' : '1.2-2'
}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Deposit Period" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositAccountData.depositPeriod }} {{(fixedDepositAccountData.depositPeriodFrequencyId | find:fixedDepositsAccountProductTemplate.periodFrequencyTypeOptions:'id':'value') | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Deposit Period' | translate }}:</span>
<span fxFlex="60%"
>{{ fixedDepositAccountData.depositPeriod }}
{{
fixedDepositAccountData.depositPeriodFrequencyId
| find: fixedDepositsAccountProductTemplate.periodFrequencyTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span
>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Interest Compounding Period" | translate }}:</span>
<span fxFlex="60%">{{ (fixedDepositAccountData.interestCompoundingPeriodType | find:fixedDepositsAccountProductTemplate.interestCompoundingPeriodTypeOptions:'id':'value') | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Interest Compounding Period' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositAccountData.interestCompoundingPeriodType
| find: fixedDepositsAccountProductTemplate.interestCompoundingPeriodTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Interest Posting Period" | translate }}:</span>
<span fxFlex="60%">{{ (fixedDepositAccountData.interestPostingPeriodType | find:fixedDepositsAccountProductTemplate.interestPostingPeriodTypeOptions:'id':'value') | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Interest Posting Period' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositAccountData.interestPostingPeriodType
| find: fixedDepositsAccountProductTemplate.interestPostingPeriodTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Interest Calculated using" | translate }}:</span>
<span fxFlex="60%">{{ (fixedDepositAccountData.interestCalculationType | find:fixedDepositsAccountProductTemplate.interestCalculationTypeOptions:'id':'value') | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Interest Calculated using' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositAccountData.interestCalculationType
| find: fixedDepositsAccountProductTemplate.interestCalculationTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Days in Year" | translate }}:</span>
<span fxFlex="60%">{{ (fixedDepositAccountData.interestCalculationDaysInYearType | find:fixedDepositsAccountProductTemplate.interestCalculationDaysInYearTypeOptions:'id':'value') | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Days in Year' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositAccountData.interestCalculationDaysInYearType
| find: fixedDepositsAccountProductTemplate.interestCalculationDaysInYearTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Settings" | translate }}</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Settings' | translate }}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill *ngIf="fixedDepositAccountData.lockinPeriodFrequency">
<span fxFlex="40%">{{"labels.inputs.Lock-in Period" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositAccountData.lockinPeriodFrequency }} {{(fixedDepositAccountData.lockinPeriodFrequencyType | find:fixedDepositsAccountProductTemplate.lockinPeriodFrequencyTypeOptions:'id':'value') | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Lock-in Period' | translate }}:</span>
<span fxFlex="60%"
>{{ fixedDepositAccountData.lockinPeriodFrequency }}
{{
fixedDepositAccountData.lockinPeriodFrequencyType
| find: fixedDepositsAccountProductTemplate.lockinPeriodFrequencyTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span
>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.minDepositTerm">
<span fxFlex="40%">{{"labels.inputs.Minimum Deposit Term" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.minDepositTerm }} {{fixedDepositsAccountProductTemplate.minDepositTermType?.value | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Minimum Deposit Term' | translate }}:</span>
<span fxFlex="60%"
>{{ fixedDepositsAccountProductTemplate.minDepositTerm }}
{{ fixedDepositsAccountProductTemplate.minDepositTermType?.value | translateKey: 'catalogs' }}</span
>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.inMultiplesOfDepositTerm">
<span fxFlex="40%">{{"labels.inputs.In Multiples Of" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.inMultiplesOfDepositTerm }} {{fixedDepositsAccountProductTemplate.inMultiplesOfDepositTermType?.value | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.In Multiples Of' | translate }}:</span>
<span fxFlex="60%"
>{{ fixedDepositsAccountProductTemplate.inMultiplesOfDepositTerm }}
{{ fixedDepositsAccountProductTemplate.inMultiplesOfDepositTermType?.value | translateKey: 'catalogs' }}</span
>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.maxDepositTerm">
<span fxFlex="40%">{{"labels.inputs.Maximum Deposit Term" | translate }}</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.maxDepositTerm }} {{fixedDepositsAccountProductTemplate.maxDepositTermType?.value | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Maximum Deposit Term' | translate }}</span>
<span fxFlex="60%"
>{{ fixedDepositsAccountProductTemplate.maxDepositTerm }}
{{ fixedDepositsAccountProductTemplate.maxDepositTermType?.value | translateKey: 'catalogs' }}</span
>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Transfer Interest to Savings Account" | translate }}?</span>
<span fxFlex="40%">{{ 'labels.inputs.Transfer Interest to Savings Account' | translate }}?</span>
<span fxFlex="60%">{{ fixedDepositAccountData.transferInterestToSavings | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositAccountData.transferInterestToSavings">
<span fxFlex="40%">{{"labels.inputs.Linked Savings Account" | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.linkAccountId | find:fixedDepositsAccountProductTemplate.savingsAccounts:'id':'accountNo' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Linked Savings Account' | translate }}</span>
<span fxFlex="60%">{{
fixedDepositAccountData.linkAccountId
| find: fixedDepositsAccountProductTemplate.savingsAccounts : 'id' : 'accountNo'
}}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositAccountData.maturityInstructionId">
<span fxFlex="40%">{{"labels.inputs.Maturity Instructions" | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.maturityInstructionId | find:fixedDepositsAccountProductTemplate.maturityInstructionOptions:'id':'value' | translateKey:'catalogs' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Maturity Instructions' | translate }}</span>
<span fxFlex="60%">{{
fixedDepositAccountData.maturityInstructionId
| find: fixedDepositsAccountProductTemplate.maturityInstructionOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Apply Penal Interest (less)" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.Apply Penal Interest (less)' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.preClosurePenalApplicable | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.preClosurePenalApplicable">
<span fxFlex="40%">{{"labels.inputs.Penal Interest" | translate }} (%):</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.preClosurePenalInterest + '% (' + (fixedDepositsAccountProductTemplate.preClosurePenalInterestOnType?.id) + ')' }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Penal Interest' | translate }} (%):</span>
<span fxFlex="60%">{{
fixedDepositsAccountProductTemplate.preClosurePenalInterest +
'% (' +
fixedDepositsAccountProductTemplate.preClosurePenalInterestOnType?.id +
')'
}}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.withHoldTax">
<span fxFlex="40%">{{"labels.inputs.Withhold Tax is Applicable" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.Withhold Tax is Applicable' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositAccountData.withHoldTax | yesNo }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Interest Rate Chart" | translate }}</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Interest Rate Chart' | translate }}</h3>
<mat-divider fxFlexFill></mat-divider>
<div class="margin-b" fxFlexFill fxLayout="column">
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.name">
<span fxFlex="40%">{{"labels.inputs.name" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.name' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.name }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Valid from Date" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.Valid from Date' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.fromDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.endDate">
<span fxFlex="40%">{{"labels.inputs.End Date" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.End Date' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.endDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.description">
<span fxFlex="40%">{{"labels.inputs.Description" | translate }}:</span>
<span fxFlex="40%">{{ 'labels.inputs.Description' | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.description }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Primary Grouping by Amount" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.isPrimaryGroupingByAmount | yesNo }}</span>
<span fxFlex="40%">{{ 'labels.inputs.Primary Grouping by Amount' | translate }}:</span>
<span fxFlex="60%">{{
fixedDepositsAccountProductTemplate?.accountChart.isPrimaryGroupingByAmount | yesNo
}}</span>
</div>
<table class="mat-elevation-z1 irc-table" mat-table [dataSource]="interestRateChartData" multiTemplateDataRows>
<ng-container matColumnDef="period">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Period" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Period' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">
{{chartSlab.fromPeriod}} - {{chartSlab.toPeriod}}&nbsp;{{chartSlab.periodType.value | translateKey:'catalogs' }}</td>
{{ chartSlab.fromPeriod }} - {{ chartSlab.toPeriod }}&nbsp;{{
chartSlab.periodType.value | translateKey: 'catalogs'
}}
</td>
</ng-container>
<ng-container matColumnDef="amountRange">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount Range" | translate }} </th>
<td mat-cell *matCellDef="let chartSlab">{{chartSlab.amountRangeFrom | formatNumber}} - {{chartSlab.amountRangeTo | formatNumber}}</td>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Amount Range' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">
{{ chartSlab.amountRangeFrom | formatNumber }} - {{ chartSlab.amountRangeTo | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="interest">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Interest" | translate }} </th>
<td mat-cell *matCellDef="let chartSlab"> {{ chartSlab.annualInterestRate | formatNumber }} %</td>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Interest' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">{{ chartSlab.annualInterestRate | formatNumber }} %</td>
</ng-container>
<ng-container matColumnDef="description">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Description" | translate }} </th>
<td mat-cell *matCellDef="let chartSlab"> {{ chartSlab.description }} </td>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Description' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab">{{ chartSlab.description }}</td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
<button mat-button color="primary" (click)="expandChartSlabIndex = expandChartSlabIndex === chartSlabIndex ? null : chartSlabIndex">
<button
mat-button
color="primary"
(click)="expandChartSlabIndex = expandChartSlabIndex === chartSlabIndex ? null : chartSlabIndex"
>
<span *ngIf="expandChartSlabIndex !== chartSlabIndex">
<fa-icon icon="eye" class="m-r-10"></fa-icon>
{{"labels.buttons.View Incentives" | translate }}
{{ 'labels.buttons.View Incentives' | translate }}
</span>
<span *ngIf="expandChartSlabIndex === chartSlabIndex">
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
{{"labels.buttons.Hide Incentives" | translate }}
{{ 'labels.buttons.Hide Incentives' | translate }}
</span>
</button>
</td>
</ng-container>
<ng-container matColumnDef="incentives">
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex" [attr.colspan]="chartSlabsDisplayedColumns.length">
<div fxLayout="row wrap" fxFlexFill class="incentives" [@expandChartSlab]="chartSlabIndex === expandChartSlabIndex ? 'expanded' : 'collapsed'">
<td
mat-cell
*matCellDef="let chartSlab; let chartSlabIndex = dataIndex"
[attr.colspan]="chartSlabsDisplayedColumns.length"
>
<div
fxLayout="row wrap"
fxFlexFill
class="incentives"
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex ? 'expanded' : 'collapsed'"
>
<mat-card fxLayout="row wrap" fxFlexFill>
<h4 class="m-b-10" fxFlex="13%">
{{"labels.heading.Incentives" | translate }}
{{ 'labels.heading.Incentives' | translate }}
</h4>
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives" *ngIf="chartSlab.incentives.length">
<table
fxFlexFill
class="mat-elevation-z1"
mat-table
[dataSource]="chartSlab.incentives"
*ngIf="chartSlab.incentives.length"
>
<ng-container matColumnDef="entityType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Entity Type" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.entityType.value }}
</td>
</ng-container>
<ng-container matColumnDef="attributeName">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attribute Name" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Attribute Name' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.attributeName.value }}
</td>
</ng-container>
<ng-container matColumnDef="conditionType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Condition Type" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Condition Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.conditionType.value | titlecase }}
</td>
</ng-container>
<ng-container matColumnDef="attributeValue">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attribute Value" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Attribute Value' | translate }}</th>
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
{{ incentive.attributeValueDesc }}
</td>
</ng-container>
<ng-container matColumnDef="incentiveType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Incentive Type" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Incentive Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.incentiveType.value }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Interest" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Interest' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.amount | formatNumber }}
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="incentivesDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: incentivesDisplayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: incentivesDisplayedColumns"></tr>
</table>
</mat-card>
</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="chartSlabsDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsDisplayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsIncentivesDisplayedColumns;" class="incentives-row"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: chartSlabsIncentivesDisplayedColumns" class="incentives-row"></tr>
</table>
</div>
<div fxFlexFill *ngIf="fixedDepositAccountData.charges.length" fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Charges" | translate }}</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]="fixedDepositAccountData.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" | translate }} </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> {{"labels.inputs.Type" | translate }} </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> {{"labels.inputs.Amount" | translate }} </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="date">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Date" | translate }} </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'}}
*ngIf="charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee'"
>
{{ (charge.dueDate | dateFormat) || 'Unassigned' }}
</span>
<span *ngIf="charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'">
{{charge.feeOnMonthDay ? ([2000].concat(charge.feeOnMonthDay) | dateFormat: 'dd MMMM') : 'Unassigned'}}
{{ charge.feeOnMonthDay ? ([2000].concat(charge.feeOnMonthDay) | dateFormat: 'dd MMMM') : 'Unassigned' }}
</span>
<span
*ngIf="!(charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'
|| charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee')">
{{"labels.inputs.N/A" | translate }}
*ngIf="
!(
charge.chargeTimeType.value === 'Monthly Fee' ||
charge.chargeTimeType.value === 'Annual Fee' ||
charge.chargeTimeType.value === 'Specified due date' ||
charge.chargeTimeType.value === 'Weekly Fee'
)
"
>
{{ 'labels.inputs.N/A' | translate }}
</span>
</td>
</ng-container>
<ng-container matColumnDef="repaymentsEvery">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Repayments Every" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Repayments Every' | translate }}</th>
<td mat-cell *matCellDef="let charge">
{{ charge.feeInterval || 'Not Provided' }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Collected On" | translate }} </th>
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Collected On' | translate }}</th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="chargesDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: chargesDisplayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: chargesDisplayedColumns"></tr>
</table>
</div>
</div>
<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>
{{"labels.buttons.Previous" | translate }}
{{ 'labels.buttons.Previous' | translate }}
</button>
<button mat-raised-button [routerLink]="['../..']">
{{"labels.buttons.Cancel" | translate }}
{{ 'labels.buttons.Cancel' | translate }}
</button>
<button mat-raised-button color="primary" (click)="submitEvent.emit()">
{{"labels.buttons.Submit" | translate }}
{{ 'labels.buttons.Submit' | translate }}
</button>
</div>
@@ -1,170 +1,176 @@
<form [formGroup]="fixedDepositAccountSettingsForm">
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<h4 fxFlex="98%" class="mat-h4">{{"labels.heading.Lock-in Period" | translate }}</h4>
<h4 fxFlex="98%" class="mat-h4">{{ 'labels.heading.Lock-in Period' | translate }}</h4>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Frequency" | translate }}</mat-label>
<input type="number" matInput formControlName="lockinPeriodFrequency">
<mat-label>{{ 'labels.inputs.Frequency' | translate }}</mat-label>
<input type="number" matInput formControlName="lockinPeriodFrequency" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Type" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Type' | translate }}</mat-label>
<mat-select formControlName="lockinPeriodFrequencyType">
<mat-option *ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData"
[value]="lockinPeriodFrequencyType.id">
{{ lockinPeriodFrequencyType.value | translateKey:'catalogs' }}
<mat-option
*ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData"
[value]="lockinPeriodFrequencyType.id"
>
{{ lockinPeriodFrequencyType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
<h4 fxFlex="98%" class="mat-h4">{{"labels.heading.Minimum Deposit Term" | translate }}</h4>
<h4 fxFlex="98%" class="mat-h4">{{ 'labels.heading.Minimum Deposit Term' | translate }}</h4>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Frequency" | translate }}</mat-label>
<input type="number" matInput formControlName="minDepositTerm" required>
<mat-label>{{ 'labels.inputs.Frequency' | translate }}</mat-label>
<input type="number" matInput formControlName="minDepositTerm" required />
<mat-error>
{{"labels.inputs.Minimum Deposit Term Frequency" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Minimum Deposit Term Frequency' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Frequency Type" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Frequency Type' | translate }}</mat-label>
<mat-select formControlName="minDepositTermTypeId" required>
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
{{ periodFrequencyType.value | translateKey:'catalogs' }}
{{ periodFrequencyType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Minimum Deposit Term Frequency Type" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Minimum Deposit Term Frequency Type' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<h4 fxFlex="98%" class="mat-h4">{{"labels.heading.And thereafter, in Multiples of" | translate }}</h4>
<h4 fxFlex="98%" class="mat-h4">{{ 'labels.heading.And thereafter, in Multiples of' | translate }}</h4>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Frequency" | translate }}</mat-label>
<input type="number" matInput formControlName="inMultiplesOfDepositTerm">
<mat-label>{{ 'labels.inputs.Frequency' | translate }}</mat-label>
<input type="number" matInput formControlName="inMultiplesOfDepositTerm" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Type" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Type' | translate }}</mat-label>
<mat-select formControlName="inMultiplesOfDepositTermTypeId">
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
{{ periodFrequencyType.value | translateKey:'catalogs' }}
{{ periodFrequencyType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
<h4 fxFlex="98%" class="mat-h4">{{"labels.heading.Maximum Deposit Term" | translate }}</h4>
<h4 fxFlex="98%" class="mat-h4">{{ 'labels.heading.Maximum Deposit Term' | translate }}</h4>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Frequency" | translate }}</mat-label>
<input type="number" matInput formControlName="maxDepositTerm">
<mat-label>{{ 'labels.inputs.Frequency' | translate }}</mat-label>
<input type="number" matInput formControlName="maxDepositTerm" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Type" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Type' | translate }}</mat-label>
<mat-select formControlName="maxDepositTermTypeId">
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
{{ periodFrequencyType.value | translateKey:'catalogs' }}
{{ periodFrequencyType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-divider fxFlex="98%"></mat-divider>
<h3 fxFlex="23%" class="mat-h3">{{"labels.heading.Interest Transfer" | translate }}</h3>
<h3 fxFlex="23%" class="mat-h3">{{ 'labels.heading.Interest Transfer' | translate }}</h3>
<mat-checkbox fxFlex="32%" labelPosition="before" formControlName="transferInterestToSavings" class="margin-b">
{{"labels.inputs.Transfer Interest to Linked Savings Account" | translate }}?
{{ 'labels.inputs.Transfer Interest to Linked Savings Account' | translate }}?
</mat-checkbox>
<mat-form-field fxFlex="48%" *ngIf="fixedDepositAccountSettingsForm.contains('linkAccountId')" class="margin-b">
<mat-label>{{"labels.inputs.Linked Savings Account" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Linked Savings Account' | translate }}</mat-label>
<mat-select formControlName="linkAccountId" required>
<mat-option *ngFor="let account of savingsAccountsData" [value]="account.id">
({{ account.accountNo }}) {{ account.savingsProductName }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Linked Savings Account" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Linked Savings Account' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-divider fxFlex="98%"></mat-divider>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Maturity Instructions" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Maturity Instructions' | translate }}</mat-label>
<mat-select formControlName="maturityInstructionId">
<mat-option *ngFor="let maturityInstruction of maturityInstructionOptions" [value]="maturityInstruction.id">
{{ maturityInstruction.value | translateKey:'catalogs' }}
{{ maturityInstruction.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field fxFlex="48%" *ngIf="fixedDepositAccountSettingsForm.contains('transferToSavingsId')" class="margin-b">
<mat-label>{{"labels.inputs.Transfer to savings account" | translate }}</mat-label>
<mat-form-field
fxFlex="48%"
*ngIf="fixedDepositAccountSettingsForm.contains('transferToSavingsId')"
class="margin-b"
>
<mat-label>{{ 'labels.inputs.Transfer to savings account' | translate }}</mat-label>
<mat-select formControlName="transferToSavingsId" required>
<mat-option *ngFor="let account of savingsAccountsData" [value]="account.id">
({{ account.accountNo }}) {{ account.savingsProductName }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Transfer to savings account" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Transfer to savings account' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-divider fxFlex="98%"></mat-divider>
<h4 fxFlex="23%" class="mat-h4">{{"labels.heading.For Pre-mature closure" | translate }}</h4>
<h4 fxFlex="23%" class="mat-h4">{{ 'labels.heading.For Pre-mature closure' | translate }}</h4>
<mat-checkbox fxFlex="73%" labelPosition="before" formControlName="preClosurePenalApplicable" class="margin-v">
{{"labels.inputs.Apply Penal Interest (less)" | translate }}
{{ 'labels.inputs.Apply Penal Interest (less)' | translate }}
</mat-checkbox>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Penal Interest" | translate }} (%)</mat-label>
<input type="number" matInput formControlName="preClosurePenalInterest">
<mat-label>{{ 'labels.inputs.Penal Interest' | translate }} (%)</mat-label>
<input type="number" matInput formControlName="preClosurePenalInterest" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Period" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Period' | translate }}</mat-label>
<mat-select formControlName="preClosurePenalInterestOnTypeId">
<mat-option *ngFor="let preClosurePenalInterestOnType of preClosurePenalInterestOnTypeData"
[value]="preClosurePenalInterestOnType.id">
{{ preClosurePenalInterestOnType.value | translateKey:'catalogs' }}
<mat-option
*ngFor="let preClosurePenalInterestOnType of preClosurePenalInterestOnTypeData"
[value]="preClosurePenalInterestOnType.id"
>
{{ preClosurePenalInterestOnType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
<ng-container *ngIf="fixedDepositAccountSettingsForm.controls.withHoldTax">
<mat-divider fxFlex="98%"></mat-divider>
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="withHoldTax" class="margin-p">
{{"labels.inputs.Is Withhold Tax Applicable" | translate }}?
{{ 'labels.inputs.Is Withhold Tax Applicable' | translate }}?
</mat-checkbox>
<mat-form-field fxFlex="48%" *ngIf="fixedDepositAccountSettingsForm.controls.taxGroupId" class="p-b-25">
<mat-label>{{"labels.inputs.Tax Group" | translate }}</mat-label>
<input matInput formControlName="taxGroupId">
<mat-label>{{ 'labels.inputs.Tax Group' | translate }}</mat-label>
<input matInput formControlName="taxGroupId" />
</mat-form-field>
</ng-container>
</div>
<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>
{{"labels.buttons.Previous" | translate }}
{{ 'labels.buttons.Previous' | translate }}
</button>
<button mat-raised-button matStepperNext>
{{"labels.buttons.Next" | translate }}
{{ 'labels.buttons.Next' | translate }}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
</form>
@@ -1,99 +1,114 @@
<form [formGroup]="fixedDepositAccountTermsForm">
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mifosx-input-amount [currency]="currency" [isRequired]="true" *ngIf="currency" fxFlex="48%"
<mifosx-input-amount
[currency]="currency"
[isRequired]="true"
*ngIf="currency"
fxFlex="48%"
[inputFormControl]="fixedDepositAccountTermsForm.controls.depositAmount"
[inputLabel]="'Deposit Amount'">
[inputLabel]="'Deposit Amount'"
>
</mifosx-input-amount>
<span fxFlex="48%" fxHide.lt-md></span>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Deposit Period" | translate }}</mat-label>
<input type="number" matInput formControlName="depositPeriod" required>
<mat-label>{{ 'labels.inputs.Deposit Period' | translate }}</mat-label>
<input type="number" matInput formControlName="depositPeriod" required />
<mat-error>
{{"labels.inputs.Deposit Period" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Deposit Period' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Deposit Period Type" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Deposit Period Type' | translate }}</mat-label>
<mat-select formControlName="depositPeriodFrequencyId" required>
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
{{ periodFrequencyType.value | translateKey:'catalogs' }}
{{ periodFrequencyType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Deposit Period Type" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Deposit Period Type' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-divider fxFlex="98%"></mat-divider>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Interest Compounding Period" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Interest Compounding Period' | translate }}</mat-label>
<mat-select formControlName="interestCompoundingPeriodType" required>
<mat-option *ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData"
[value]="interestCompoundingPeriodType.id">
{{ interestCompoundingPeriodType.value | translateKey:'catalogs' }}
<mat-option
*ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData"
[value]="interestCompoundingPeriodType.id"
>
{{ interestCompoundingPeriodType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Interest Compounding Period" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Interest Compounding Period' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Interest Posting Period" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Interest Posting Period' | translate }}</mat-label>
<mat-select formControlName="interestPostingPeriodType" required>
<mat-option *ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData"
[value]="interestPostingPeriodType.id">
{{ interestPostingPeriodType.value | translateKey:'catalogs' }}
<mat-option
*ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData"
[value]="interestPostingPeriodType.id"
>
{{ interestPostingPeriodType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Interest Posting Period" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Interest Posting Period' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Interest Calculated using" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Interest Calculated using' | translate }}</mat-label>
<mat-select formControlName="interestCalculationType" required>
<mat-option *ngFor="let interestCalculationType of interestCalculationTypeData"
[value]="interestCalculationType.id">
{{ interestCalculationType.value | translateKey:'catalogs' }}
<mat-option
*ngFor="let interestCalculationType of interestCalculationTypeData"
[value]="interestCalculationType.id"
>
{{ interestCalculationType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Interest Calculated using" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Interest Calculated using' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Days in Year" | translate }}</mat-label>
<mat-label>{{ 'labels.inputs.Days in Year' | translate }}</mat-label>
<mat-select formControlName="interestCalculationDaysInYearType" required>
<mat-option *ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData"
[value]="interestCalculationDaysInYearType.id">
{{ interestCalculationDaysInYearType.value | translateKey:'catalogs' }}
<mat-option
*ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData"
[value]="interestCalculationDaysInYearType.id"
>
{{ interestCalculationDaysInYearType.value | translateKey: 'catalogs' }}
</mat-option>
</mat-select>
<mat-error>
{{"labels.inputs.Days in Year" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
{{ 'labels.inputs.Days in Year' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
</div>
<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>
{{"labels.buttons.Previous" | translate }}
{{ 'labels.buttons.Previous' | translate }}
</button>
<button mat-raised-button matStepperNext>
{{"labels.buttons.Next" | translate }}
{{ 'labels.buttons.Next' | translate }}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
</form>