Fixed Deposit account missed translations

This commit is contained in:
Jose Alberto Hernandez
2024-06-23 22:09:57 -06:00
committed by Jose Alberto Hernandez
parent 1ffd5080f7
commit 7c36dd88b9
27 changed files with 203 additions and 147 deletions
@@ -1,9 +1,9 @@
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CHARGE'">
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CLIENT_COLLATERAL_PRODUCT'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{"labels.buttons.Edit" |translate}}
</button>
<button mat-raised-button color="warn" (click)="deleteCollateral()" *mifosxHasPermission="'DELETE_CHARGE'">
<button mat-raised-button color="warn" (click)="deleteCollateral()" *mifosxHasPermission="'DELETE_CLIENT_COLLATERAL_PRODUCT'">
<fa-icon icon="trash" class="m-r-10"></fa-icon>
{{"labels.buttons.Delete" |translate}}
</button>
@@ -47,7 +47,7 @@
<ng-container matColumnDef="Remaining Amount">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Remaining Amount" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.remainingAmount}} </td>
<td mat-cell *matCellDef="let element"> {{element.remainingAmount | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Last Repayment Date">
@@ -11,7 +11,7 @@
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Submitted On" | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.submittedOnDate | dateFormat }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.submittedOnDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositAccountData.externalId">
@@ -21,7 +21,7 @@
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Field Officer" | translate }}</span>
<span fxFlex="60%">{{ (fixedDepositAccountData.fieldOfficerId | find:fixedDepositsAccountProductTemplate.fieldOfficerOptions:'id':'displayName') || 'Unassigned' }}</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>
@@ -49,32 +49,32 @@
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Fixed Deposit Amount" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositAccountData.depositAmount }}</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') }}</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' }}</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' }}</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' }}</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' }}</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>
@@ -83,27 +83,27 @@
<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') }}</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 || '') }}</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 || '') }}</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 || '') }}</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="60%">{{ fixedDepositAccountData.transferInterestToSavings ? 'Yes' : 'No' }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.transferInterestToSavings | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositAccountData.transferInterestToSavings">
@@ -113,12 +113,12 @@
<div fxFlexFill *ngIf="fixedDepositAccountData.maturityInstructionId">
<span fxFlex="40%">{{"labels.inputs.Maturity Instructions" | translate }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.maturityInstructionId | find:fixedDepositsAccountProductTemplate.maturityInstructionOptions:'id':'value' }}</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="60%">{{ fixedDepositsAccountProductTemplate.preClosurePenalApplicable ? 'Yes' : 'No' }}</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate.preClosurePenalApplicable | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.preClosurePenalApplicable">
@@ -128,7 +128,7 @@
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate.withHoldTax">
<span fxFlex="40%">{{"labels.inputs.Withhold Tax is Applicable" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositAccountData.withHoldTax ? 'Yes' : 'No' }}</span>
<span fxFlex="60%">{{ fixedDepositAccountData.withHoldTax | yesNo }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Interest Rate Chart" | translate }}</h3>
@@ -144,12 +144,12 @@
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Valid from Date" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.fromDate | dateFormat }}</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="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.endDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="fixedDepositsAccountProductTemplate?.accountChart.description">
@@ -159,7 +159,7 @@
<div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Primary Grouping by Amount" | translate }}:</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.isPrimaryGroupingByAmount ? 'Yes' : 'No' }}</span>
<span fxFlex="60%">{{ fixedDepositsAccountProductTemplate?.accountChart.isPrimaryGroupingByAmount | yesNo }}</span>
</div>
<table class="mat-elevation-z1 irc-table" mat-table [dataSource]="interestRateChartData" multiTemplateDataRows>
@@ -167,17 +167,17 @@
<ng-container matColumnDef="period">
<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 | 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}}-{{chartSlab.amountRangeTo}}</td>
<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 }} </td>
<td mat-cell *matCellDef="let chartSlab"> {{ chartSlab.annualInterestRate | formatNumber }} %</td>
</ng-container>
<ng-container matColumnDef="description">
@@ -252,7 +252,7 @@
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Interest" | translate }} </th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.amount }}
{{ incentive.amount | formatNumber }}
</td>
</ng-container>
@@ -14,7 +14,7 @@
<mat-select formControlName="lockinPeriodFrequencyType">
<mat-option *ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData"
[value]="lockinPeriodFrequencyType.id">
{{ lockinPeriodFrequencyType.value }}
{{ lockinPeriodFrequencyType.value | translateKey:'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -25,7 +25,7 @@
<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>
@@ -33,11 +33,11 @@
<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 }}
{{ 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>
@@ -52,7 +52,7 @@
<mat-label>{{"labels.inputs.Type" | translate }}</mat-label>
<mat-select formControlName="inMultiplesOfDepositTermTypeId">
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
{{ periodFrequencyType.value }}
{{ periodFrequencyType.value | translateKey:'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -68,7 +68,7 @@
<mat-label>{{"labels.inputs.Type" | translate }}</mat-label>
<mat-select formControlName="maxDepositTermTypeId">
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
{{ periodFrequencyType.value }}
{{ periodFrequencyType.value | translateKey:'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -85,11 +85,11 @@
<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.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>
@@ -99,7 +99,7 @@
<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 }}
{{ maturityInstruction.value | translateKey:'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -108,11 +108,11 @@
<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.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>
@@ -134,7 +134,7 @@
<mat-select formControlName="preClosurePenalInterestOnTypeId">
<mat-option *ngFor="let preClosurePenalInterestOnType of preClosurePenalInterestOnTypeData"
[value]="preClosurePenalInterestOnType.id">
{{ preClosurePenalInterestOnType.value }}
{{ preClosurePenalInterestOnType.value | translateKey:'catalogs' }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -2,13 +2,10 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Deposit Amount" | translate }}</mat-label>
<input type="number" matInput formControlName="depositAmount" required>
<mat-error>
{{"labels.inputs.Fixed Deposit Amount" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mifosx-input-amount [currency]="currency" [isRequired]="true" *ngIf="currency" fxFlex="48%"
[inputFormControl]="fixedDepositAccountTermsForm.controls.depositAmount"
[inputLabel]="'Deposit Amount'">
</mifosx-input-amount>
<span fxFlex="48%" fxHide.lt-md></span>
@@ -16,7 +13,7 @@
<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>
@@ -24,11 +21,11 @@
<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 }}
{{ 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>
@@ -39,11 +36,11 @@
<mat-select formControlName="interestCompoundingPeriodType" required>
<mat-option *ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData"
[value]="interestCompoundingPeriodType.id">
{{ interestCompoundingPeriodType.value }}
{{ 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>
@@ -52,11 +49,11 @@
<mat-select formControlName="interestPostingPeriodType" required>
<mat-option *ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData"
[value]="interestPostingPeriodType.id">
{{ interestPostingPeriodType.value }}
{{ 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>
@@ -65,11 +62,11 @@
<mat-select formControlName="interestCalculationType" required>
<mat-option *ngFor="let interestCalculationType of interestCalculationTypeData"
[value]="interestCalculationType.id">
{{ interestCalculationType.value }}
{{ 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>
@@ -78,11 +75,11 @@
<mat-select formControlName="interestCalculationDaysInYearType" required>
<mat-option *ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData"
[value]="interestCalculationDaysInYearType.id">
{{ interestCalculationDaysInYearType.value }}
{{ 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>
@@ -2,6 +2,7 @@
import { Component, OnInit, Input, OnChanges } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, Validators} from '@angular/forms';
import { SettingsService } from 'app/settings/settings.service';
import { Currency } from 'app/shared/models/general.model';
/**
* Fixed Deposits Terms Step
@@ -34,6 +35,7 @@ export class FixedDepositAccountTermsStepComponent implements OnInit, OnChanges
interestCalculationDaysInYearTypeData: any;
/** Period Frequency Type Data */
periodFrequencyTypeData: any;
currency: Currency | null = null;
/**
* @param {FormBuilder} formBuilder Form Builder
@@ -46,6 +48,7 @@ export class FixedDepositAccountTermsStepComponent implements OnInit, OnChanges
ngOnChanges() {
if (this.fixedDepositsAccountProductTemplate) {
this.currency = this.fixedDepositsAccountProductTemplate.currency;
this.setOptions();
}
}
@@ -58,10 +61,11 @@ export class FixedDepositAccountTermsStepComponent implements OnInit, OnChanges
'interestPostingPeriodType': this.fixedDepositsAccountTemplate.interestPostingPeriodType.id,
'interestCalculationType': this.fixedDepositsAccountTemplate.interestCalculationType.id,
'interestCalculationDaysInYearType': this.fixedDepositsAccountTemplate.interestCalculationDaysInYearType.id,
'depositAmount': this.fixedDepositsAccountTemplate.depositAmount,
'depositAmount': this.fixedDepositsAccountTemplate.depositAmount ? this.fixedDepositsAccountTemplate.depositAmount : 0,
'depositPeriod': this.fixedDepositsAccountTemplate.depositPeriod,
'depositPeriodFrequencyId': this.fixedDepositsAccountTemplate.depositPeriodFrequency.id,
});
console.log(this.fixedDepositAccountTermsForm.value);
}
}
@@ -74,7 +78,7 @@ export class FixedDepositAccountTermsStepComponent implements OnInit, OnChanges
'interestPostingPeriodType': ['', Validators.required],
'interestCalculationType': ['', Validators.required],
'interestCalculationDaysInYearType': ['', Validators.required],
'depositAmount': ['', Validators.required],
'depositAmount': [0, Validators.required],
'depositPeriod': ['', Validators.required],
'depositPeriodFrequencyId': ['', Validators.required]
});
@@ -21,12 +21,12 @@
<ng-container matColumnDef="feeOrPenalty">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Fee/Penalty" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.penalty === true ? 'Penalty' : 'Fee' }} </td>
<td mat-cell *matCellDef="let charge"> {{ charge.penalty === true ? ('Penalty'| translateKey:'catalogs') : ('Fee'| translateKey:'catalogs') }} </td>
</ng-container>
<ng-container matColumnDef="paymentDueAt">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Payment Due At" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value }} </td>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value | translateKey:'catalogs' }} </td>
</ng-container>
<ng-container matColumnDef="dueAsOf">
@@ -36,32 +36,32 @@
<ng-container matColumnDef="repeatsOn">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Repeats On" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{charge.feeOnMonthDay ? ([2000].concat(charge.feeOnMonthDay) | dateFormat: 'dd MMMM') : 'Unassigned'}} </td>
<td mat-cell *matCellDef="let charge"> {{charge.feeOnMonthDay ? ([2000].concat(charge.feeOnMonthDay) | dateFormat: 'dd MMMM') : ('Unassigned' | translateKey:'inputs')}} </td>
</ng-container>
<ng-container matColumnDef="calculationType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Calculation Type" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{charge.chargeCalculationType.value}} </td>
<td mat-cell *matCellDef="let charge"> {{charge.chargeCalculationType.value | translateKey:'catalogs'}} </td>
</ng-container>
<ng-container matColumnDef="due">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Due" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amount}} </td>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amount | formatNumber }} </td>
</ng-container>
<ng-container matColumnDef="paid">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Paid" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amountPaid}} </td>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amountPaid | formatNumber }} </td>
</ng-container>
<ng-container matColumnDef="waived">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Waived" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amountWaived}} </td>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amountWaived | formatNumber }} </td>
</ng-container>
<ng-container matColumnDef="outstanding">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Outstanding" | translate }} </th>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amountOutstanding}} </td>
<td mat-cell *matCellDef="let charge"> {{charge.currency.displaySymbol}}&nbsp;{{charge.amountOutstanding | formatNumber }} </td>
</ng-container>
<ng-container matColumnDef="actions">
@@ -22,25 +22,24 @@
<mifosx-account-number accountNo="{{fixedDepositsAccountData.accountNo}}"></mifosx-account-number>
</h3>
<span class="account-overview">
{{'labels.text.' + entityType | translate}} {{"labels.inputs.name" | translate}}: {{fixedDepositsAccountData.clientName ||
fixedDepositsAccountData.groupName}}
<span class="m-r-10">{{'labels.text.' + entityType | translate}} :</span> {{fixedDepositsAccountData.clientName || fixedDepositsAccountData.groupName}}
<span class="m-l-10" *ngIf="fixedDepositsAccountData.clientAccountNo">
<mifosx-account-number accountNo="{{fixedDepositsAccountData.clientAccountNo}}"></mifosx-account-number>
</span>
</span>
</div>
<div *ngIf="!fixedDepositsAccountData.status.rejected && !fixedDepositsAccountData.status.submittedAndPendingApproval">
<h3> {{"labels.heading.Account Overview" | translate}} </h3>
<table class="account-overview">
<div *ngIf="!fixedDepositsAccountData.status.rejected && !fixedDepositsAccountData.status.submittedAndPendingApproval" fxFlex="30%" fxLayout="column">
<h3 fxFlex="100%"> {{"labels.heading.Account Overview" | translate}} </h3>
<table class="account-overview" fxFlex="100%">
<tbody>
<tr>
<td>{{"labels.inputs.Current Balance" | translate }}</td>
<td class="r-amount">{{fixedDepositsAccountData.summary.accountBalance | currency:currency.code:'symbol-narrow':'1.2-2'}}</td>
<td fxFlex="70%">{{"labels.inputs.Current Balance" | translate }}</td>
<td fxFlex="30%" class="r-amount">{{fixedDepositsAccountData.summary.accountBalance | currency:currency.code:'symbol-narrow':'1.2-2'}}</td>
</tr>
<tr>
<td>{{"labels.inputs.Deposit Amount" | translate }}</td>
<td class="r-amount">{{fixedDepositsAccountData.depositAmount | currency:currency.code:'symbol-narrow':'1.2-2'}}</td>
<td fxFlex="70%">{{"labels.inputs.Deposit Amount" | translate }}</td>
<td fxFlex="30%" class="r-amount">{{fixedDepositsAccountData.depositAmount | currency:currency.code:'symbol-narrow':'1.2-2'}}</td>
</tr>
</tbody>
</table>
@@ -62,14 +61,14 @@
<mat-menu #accountMenu="matMenu">
<ng-container *ngFor="let button of buttonConfig.singleButtons">
<button mat-menu-item (click)="doAction(button.name)">
<i ngClass="{{button.icon}}"></i> {{button.name}}</button>
<i ngClass="{{button.icon}}"></i> {{button.name | translateKey:'menus'}}</button>
</ng-container>
<ng-container *ngIf="buttonConfig.options.length">
<button mat-menu-item [matMenuTriggerFor]="More">More</button>
<button mat-menu-item [matMenuTriggerFor]="More">{{'More' | translateKey:'menus'}}</button>
<mat-menu #More="matMenu">
<span *ngFor="let option of buttonConfig.options">
<button mat-menu-item (click)="doAction(option.name)">{{option.name}}</button>
<button mat-menu-item (click)="doAction(option.name)">{{option.name | translateKey:'menus'}}</button>
</span>
</mat-menu>
</ng-container>
@@ -18,23 +18,23 @@
</tr>
<tr>
<td>{{"labels.inputs.Activated On" | translate }}</td>
<td>{{fixedDepositsAccountData.timeline.activatedOnDate ? (fixedDepositsAccountData.timeline.activatedOnDate | dateFormat) : 'Not Activated'}}</td>
<td>{{fixedDepositsAccountData.timeline.activatedOnDate ? (fixedDepositsAccountData.timeline.activatedOnDate | dateFormat) : ('labels.text.Not Activated' | translate)}}</td>
</tr>
<tr *ngIf="fixedDepositsAccountData.timeline.closedOnDate">
<td>{{"labels.inputs.Closed On" | translate }}</td>
<td>{{fixedDepositsAccountData.timeline.closedOnDate | dateFormat}}</td>
<td>{{fixedDepositsAccountData.timeline.closedOnDate | dateFormat}}</td>
</tr>
<tr>
<td>{{"labels.inputs.Field Officer" | translate }}</td>
<td>{{fixedDepositsAccountData.fieldOfficerName ? fixedDepositsAccountData.fieldOfficerName : 'Unassigned'}}</td>
<td>{{fixedDepositsAccountData.fieldOfficerName ? fixedDepositsAccountData.fieldOfficerName : ('Unassigned' | translateKey:'inputs')}}</td>
</tr>
<tr>
<td>{{"labels.inputs.Maturity Date" | translate }}</td>
<td>{{fixedDepositsAccountData.maturityDate ? (fixedDepositsAccountData.maturityDate | dateFormat) : 'N/A'}}</td>
<td>{{fixedDepositsAccountData.maturityDate ? (fixedDepositsAccountData.maturityDate | dateFormat) : 'N/A'}}</td>
</tr>
<tr>
<td>{{"labels.inputs.Deposit Period" | translate }}</td>
<td>{{fixedDepositsAccountData.depositPeriod}}&nbsp;{{fixedDepositsAccountData.depositPeriodFrequency.value}}</td>
<td>{{fixedDepositsAccountData.depositPeriod}}&nbsp;{{fixedDepositsAccountData.depositPeriodFrequency.value | translateKey:'catalogs'}}</td>
</tr>
<tr *ngIf="fixedDepositsAccountData.withHoldTax">
<td>{{"labels.inputs.Tax Group" | translate }}</td>
@@ -42,7 +42,7 @@
</tr>
<tr *ngIf="fixedDepositsAccountData.onAccountClosure">
<td>{{"labels.inputs.Maturity Instructions" | translate }}</td>
<td>{{fixedDepositsAccountData.onAccountClosure.value}}</td>
<td>{{fixedDepositsAccountData.onAccountClosure.value | translateKey:'catalogs'}}</td>
</tr>
</tbody>
</table>
@@ -54,27 +54,27 @@
<tbody>
<tr>
<td>{{"labels.inputs.Interest Rate" | translate }}</td>
<td>{{fixedDepositsAccountData.nominalAnnualInterestRate}}%</td>
<td>{{fixedDepositsAccountData.nominalAnnualInterestRate}} %</td>
</tr>
<tr>
<td>{{"labels.inputs.Interest Compounding Period" | translate }}</td>
<td>{{fixedDepositsAccountData.interestCompoundingPeriodType.value}}</td>
<td>{{fixedDepositsAccountData.interestCompoundingPeriodType.value | translateKey:'catalogs'}}</td>
</tr>
<tr>
<td>{{"labels.inputs.Interest Posting Period" | translate }}</td>
<td>{{fixedDepositsAccountData.interestPostingPeriodType.value}}</td>
<td>{{fixedDepositsAccountData.interestPostingPeriodType.value | translateKey:'catalogs'}}</td>
</tr>
<tr>
<td>{{"labels.inputs.Interest Calculated Using" | translate }}</td>
<td>{{fixedDepositsAccountData.interestCalculationType.value}}</td>
<td>{{fixedDepositsAccountData.interestCalculationType.value | translateKey:'catalogs'}}</td>
</tr>
<tr>
<td>{{"labels.inputs.No. of Days in Year" | translate }}</td>
<td>{{fixedDepositsAccountData.interestCalculationDaysInYearType.value}}</td>
<td>{{fixedDepositsAccountData.interestCalculationDaysInYearType.value | translateKey:'catalogs'}}</td>
</tr>
<tr *ngIf="fixedDepositsAccountData.preClosurePenalApplicable">
<td>{{"labels.inputs.Pre-cloure Penal" | translate }}</td>
<td>{{fixedDepositsAccountData.preClosurePenalInterest}} % on {{fixedDepositsAccountData.preClosurePenalInterestOnType.value}}</td>
<td>{{fixedDepositsAccountData.preClosurePenalInterest}} % on {{fixedDepositsAccountData.preClosurePenalInterestOnType.value | translateKey:'catalogs'}}</td>
</tr>
</tbody>
</table>
@@ -13,17 +13,17 @@
<ng-container matColumnDef="period">
<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 | 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}}-{{chartSlab.amountRangeTo}}</td>
<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 }} </td>
<td mat-cell *matCellDef="let chartSlab"> {{ chartSlab.annualInterestRate | formatNumber }} %</td>
</ng-container>
<ng-container matColumnDef="description">
@@ -98,7 +98,7 @@
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Interest" | translate }} </th>
<td mat-cell *matCellDef="let incentive">
{{ incentive.amount }}
{{ incentive.amount | formatNumber }}
</td>
</ng-container>
@@ -37,28 +37,28 @@
<ng-container matColumnDef="transactionType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Type" | translate }} </th>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" (click)="showTransactions(transaction)">
{{ transaction.transactionType.value }}
{{ transaction.transactionType.value | translateKey:'catalogs' }}
</td>
</ng-container>
<ng-container matColumnDef="debit">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Debit" | translate }} </th>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" (click)="showTransactions(transaction)">
{{ isDebit(transaction.transactionType) ? transaction.amount : 'N/A'}}
{{ isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A'}}
</td>
</ng-container>
<ng-container matColumnDef="credit">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Credit" | translate }} </th>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" (click)="showTransactions(transaction)">
{{ !isDebit(transaction.transactionType) ? transaction.amount : 'N/A' }}
{{ !isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A' }}
</td>
</ng-container>
<ng-container matColumnDef="balance">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate }} </th>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" (click)="showTransactions(transaction)">
{{ transaction.runningBalance }}
{{ transaction.runningBalance | formatNumber }}
</td>
</ng-container>
@@ -24,7 +24,11 @@ export class FormatAmountDirective implements OnInit {
target.value = this.parse(target.value);
}
@HostListener('focus', ['$event.target']) focus(target: any) {
target.value = this.control.value;
if (typeof this.control.value == 'undefined') {
target.value = '';
} else {
target.value = this.control.value;
}
}
ngOnInit() {
@@ -242,7 +242,7 @@ export class EntityToEntityMappingComponent implements OnInit {
})
];
const data = {
title: this.translateService.instant('labels.buttons.Add') +' '+this.translateService.instant('labels.heading.Entity to Entity Mapping'),
title: this.translateService.instant('labels.buttons.Add') + ' ' + this.translateService.instant('labels.heading.Entity to Entity Mapping'),
layout: { addButtonText: 'Confirm' },
formfields: formfields
};
@@ -293,7 +293,7 @@ export class EntityToEntityMappingComponent implements OnInit {
})
];
const data = {
title: this.translateService.instant('labels.buttons.Edit') +' '+this.translateService.instant('labels.heading.Entity to Entity Mapping'),
title: this.translateService.instant('labels.buttons.Edit') + ' ' + this.translateService.instant('labels.heading.Entity to Entity Mapping'),
layout: { addButtonText: 'Confirm' },
formfields: formfields
};
@@ -47,11 +47,11 @@ export class CreateHookComponent implements OnInit {
* @param {TranslateService} translateService Translate Service.
*/
constructor(private route: ActivatedRoute,
private systemService: SystemService,
private router: Router,
private formBuilder: UntypedFormBuilder,
private dialog: MatDialog,
private translateService:TranslateService) {
private systemService: SystemService,
private router: Router,
private formBuilder: UntypedFormBuilder,
private dialog: MatDialog,
private translateService: TranslateService) {
this.route.data.subscribe((data: { hooksTemplate: any }) => {
this.hooksTemplateData = data.hooksTemplate;
});
@@ -115,11 +115,13 @@ export class CreateHookComponent implements OnInit {
console.log(this.hooksTemplateData);
addEventDialogRef.afterClosed().subscribe((response: any) => {
if (response) {
this.eventsData.push({ entityName: response.entity,
actionName: response.action });
this.dataSource.connect().next(this.eventsData);
}
if (response) {
this.eventsData.push({
entityName: response.entity,
actionName: response.action
});
this.dataSource.connect().next(this.eventsData);
}
});
}
@@ -129,7 +131,7 @@ export class CreateHookComponent implements OnInit {
*/
deleteEvent(index: number) {
const deleteEventDialogRef = this.dialog.open(DeleteDialogComponent, {
data: { deleteContext: this.translateService.instant('labels.inputs.event with entity name of') +' '+this.eventsData[index].entityName }
data: { deleteContext: this.translateService.instant('labels.inputs.event with entity name of') + ' ' + this.eventsData[index].entityName }
});
deleteEventDialogRef.afterClosed().subscribe((response: any) => {
if (response.delete) {
@@ -165,7 +167,7 @@ export class CreateHookComponent implements OnInit {
};
this.systemService.createHook(hook)
.subscribe((response: any) => {
this.router.navigate(['../', response.resourceId], {relativeTo: this.route});
this.router.navigate(['../', response.resourceId], { relativeTo: this.route });
});
}
}
@@ -51,12 +51,12 @@ export class EditHookComponent implements OnInit {
* @param {TranslateService} translateService Translate Service.
*/
constructor(private route: ActivatedRoute,
private systemService: SystemService,
private router: Router,
private formBuilder: UntypedFormBuilder,
private dialog: MatDialog,
private translateService:TranslateService) {
this.route.data.subscribe(( data: { hooksTemplate: any, hook: any }) => {
private systemService: SystemService,
private router: Router,
private formBuilder: UntypedFormBuilder,
private dialog: MatDialog,
private translateService: TranslateService) {
this.route.data.subscribe((data: { hooksTemplate: any, hook: any }) => {
this.hooksTemplateData = data.hooksTemplate;
this.hookData = data.hook;
this.eventsData = data.hook.events ? data.hook.events : [];
@@ -104,11 +104,13 @@ export class EditHookComponent implements OnInit {
data: this.hooksTemplateData
});
addEventDialogRef.afterClosed().subscribe((response: any) => {
if (response) {
this.eventsData.push({ entityName: response.entity,
actionName: response.action });
this.dataSource.connect().next(this.eventsData);
this.eventsDataChanged = true;
if (response) {
this.eventsData.push({
entityName: response.entity,
actionName: response.action
});
this.dataSource.connect().next(this.eventsData);
this.eventsDataChanged = true;
}
});
}
@@ -119,7 +121,7 @@ export class EditHookComponent implements OnInit {
*/
deleteEvent(index: number) {
const deleteEventDialogRef = this.dialog.open(DeleteDialogComponent, {
data: { deleteContext: this.translateService.instant('labels.inputs.event with entity name of') +' '+this.eventsData[index].entityName }
data: { deleteContext: this.translateService.instant('labels.inputs.event with entity name of') + ' ' + this.eventsData[index].entityName }
});
deleteEventDialogRef.afterClosed().subscribe((response: any) => {
if (response.delete) {
@@ -156,7 +158,7 @@ export class EditHookComponent implements OnInit {
};
this.systemService.updateHook(this.hookData.id, hook)
.subscribe((response: any) => {
this.router.navigate(['../'], {relativeTo: this.route});
this.router.navigate(['../'], { relativeTo: this.route });
});
}
@@ -32,10 +32,10 @@ export class ViewHookComponent implements OnInit {
* @param {TranslateService} translateService Translate Service.
*/
constructor(private route: ActivatedRoute,
private dialog: MatDialog,
private systemService: SystemService,
private router: Router,
private translateService:TranslateService) {
private dialog: MatDialog,
private systemService: SystemService,
private router: Router,
private translateService: TranslateService) {
this.route.data.subscribe((data: { hook: any }) => {
this.hookData = data.hook;
});
@@ -49,7 +49,7 @@ export class ViewHookComponent implements OnInit {
*/
delete() {
const deleteHookDialogRef = this.dialog.open(DeleteDialogComponent, {
data: { deleteContext: this.translateService.instant('labels.inputs.hook') +' ' + this.hookData.id }
data: { deleteContext: this.translateService.instant('labels.inputs.hook') + ' ' + this.hookData.id }
});
deleteHookDialogRef.afterClosed().subscribe((response: any) => {
if (response.delete) {