Recurring Deposit products with i18n
This commit is contained in:
committed by
Jose Alberto Hernandez
parent
64758cb847
commit
6ef471d7c0
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
<ng-container matColumnDef="glAccountType">
|
<ng-container matColumnDef="glAccountType">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.type.value }} </td>
|
<td mat-cell *matCellDef="let glAccount"> {{ 'labels.inputs.accounting.' + glAccount.type.value | translate }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="disabled">
|
<ng-container matColumnDef="disabled">
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
<li class="mat-tree-node">
|
<li class="mat-tree-node">
|
||||||
<button mat-icon-button disabled></button>
|
<button mat-icon-button disabled></button>
|
||||||
<span (click)="viewGLAccountNode(node)">
|
<span (click)="viewGLAccountNode(node)">
|
||||||
<span *ngIf="node.glCode">{{ '(' + node.glCode + ')' }}</span>
|
<span *ngIf="node.glCode" class="m-r-10">{{ '(' + node.glCode + ')' }}</span>
|
||||||
{{ node.name }}
|
{{ node.name }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
<fa-icon class="mat-icon-rtl-mirror" icon="{{ nestedTreeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right' }}"></fa-icon>
|
<fa-icon class="mat-icon-rtl-mirror" icon="{{ nestedTreeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right' }}"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
<span (click)="viewGLAccountNode(node)">
|
<span (click)="viewGLAccountNode(node)">
|
||||||
<span *ngIf="node.glCode">{{ '(' + node.glCode + ')' }}</span>
|
<span *ngIf="node.glCode" class="m-r-10">{{ '(' + node.glCode + ')' }}</span>
|
||||||
{{ node.name }}
|
{{ node.name }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
{{ glAccount.type }}
|
{{ 'labels.inputs.accounting.' + glAccount.type | translate }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@
|
|||||||
<mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
|
<mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
|
||||||
<mat-select required formControlName="type">
|
<mat-select required formControlName="type">
|
||||||
<mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id">
|
<mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id">
|
||||||
{{ accountType.value }}
|
{{ 'labels.inputs.accounting.' + accountType.value | translate }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error *ngIf="glAccountForm.controls.type.hasError('required')">
|
<mat-error *ngIf="glAccountForm.controls.type.hasError('required')">
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import { BehaviorSubject } from 'rxjs';
|
|||||||
|
|
||||||
/** Custom Components */
|
/** Custom Components */
|
||||||
import { GLAccountNode } from './gl-account-node.model';
|
import { GLAccountNode } from './gl-account-node.model';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { GLAccount } from 'app/shared/models/general.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GL Account tree service.
|
* GL Account tree service.
|
||||||
@@ -25,7 +27,8 @@ export class GlAccountTreeService {
|
|||||||
*/
|
*/
|
||||||
get treeData(): GLAccountNode[] { return this.treeDataChange.value; }
|
get treeData(): GLAccountNode[] { return this.treeDataChange.value; }
|
||||||
|
|
||||||
constructor() { }
|
constructor(
|
||||||
|
private translateService: TranslateService) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds the chart of accounts tree and emits the value.
|
* Builds the chart of accounts tree and emits the value.
|
||||||
@@ -41,19 +44,22 @@ export class GlAccountTreeService {
|
|||||||
* @param {any} glAccountData Chart of accounts data.
|
* @param {any} glAccountData Chart of accounts data.
|
||||||
* @returns {GLAccountNode[]} Chart of accounts tree nodes.
|
* @returns {GLAccountNode[]} Chart of accounts tree nodes.
|
||||||
*/
|
*/
|
||||||
buildGLAccountTree(glAccountData: any): GLAccountNode[] {
|
buildGLAccountTree(glAccountData: GLAccount[]): GLAccountNode[] {
|
||||||
const glAccountTree: GLAccountNode[] = [];
|
const glAccountTree: GLAccountNode[] = [];
|
||||||
|
|
||||||
// Header nodes
|
// Header nodes
|
||||||
glAccountTree.push(new GLAccountNode('GL ACCOUNTS'));
|
glAccountTree.push(new GLAccountNode('ACCOUNTS'));
|
||||||
glAccountTree[0].children.push(new GLAccountNode('ASSET'));
|
glAccountTree[0].children.push(new GLAccountNode(this.translateService.instant('labels.inputs.accounting.ASSET')));
|
||||||
glAccountTree[0].children.push(new GLAccountNode('EQUITY'));
|
glAccountTree[0].children.push(new GLAccountNode(this.translateService.instant('labels.inputs.accounting.EQUITY')));
|
||||||
glAccountTree[0].children.push(new GLAccountNode('EXPENSE'));
|
glAccountTree[0].children.push(new GLAccountNode(this.translateService.instant('labels.inputs.accounting.EXPENSE')));
|
||||||
glAccountTree[0].children.push(new GLAccountNode('INCOME'));
|
glAccountTree[0].children.push(new GLAccountNode(this.translateService.instant('labels.inputs.accounting.INCOME')));
|
||||||
glAccountTree[0].children.push(new GLAccountNode('LIABILITY'));
|
glAccountTree[0].children.push(new GLAccountNode(this.translateService.instant('labels.inputs.accounting.LIABILITY')));
|
||||||
|
|
||||||
// Sort by parent id (so that child nodes can be added properly)
|
// Sort by parent id (so that child nodes can be added properly)
|
||||||
glAccountData.sort((glAccountOne: any, glAccountTwo: any) => {
|
if (!glAccountData[0].parentId) {
|
||||||
|
glAccountData[0].parentId = 0;
|
||||||
|
}
|
||||||
|
glAccountData.sort((glAccountOne: GLAccount, glAccountTwo: GLAccount) => {
|
||||||
if (!glAccountOne.parentId) {
|
if (!glAccountOne.parentId) {
|
||||||
glAccountOne.parentId = 0;
|
glAccountOne.parentId = 0;
|
||||||
}
|
}
|
||||||
@@ -72,6 +78,7 @@ export class GlAccountTreeService {
|
|||||||
// and rest as children to respective parent nodes.
|
// and rest as children to respective parent nodes.
|
||||||
for (const glAccount of glAccountData) {
|
for (const glAccount of glAccountData) {
|
||||||
if (glAccount.parentId === 0) {
|
if (glAccount.parentId === 0) {
|
||||||
|
console.log(glAccount.type.value);
|
||||||
if (glAccount.type.value === 'ASSET') {
|
if (glAccount.type.value === 'ASSET') {
|
||||||
glAccountTree[0].children[0].children.push(glAccounts[glAccount.id]);
|
glAccountTree[0].children[0].children.push(glAccounts[glAccount.id]);
|
||||||
} else if (glAccount.type.value === 'EQUITY') {
|
} else if (glAccount.type.value === 'EQUITY') {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
{{ glAccount.type?.value }}
|
{{ 'labels.inputs.accounting.' + glAccount.type?.value | translate }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
@@ -99,6 +99,9 @@
|
|||||||
|
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
|
|
||||||
|
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||||
|
<button type="button" color="primary" mat-raised-button (click)="goBack()">{{ "labels.buttons.Back" | translate}}</button>
|
||||||
|
</mat-card-actions>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { DeleteDialogComponent } from '../../../shared/delete-dialog/delete-dial
|
|||||||
|
|
||||||
/** Custom Services */
|
/** Custom Services */
|
||||||
import { AccountingService } from '../../accounting.service';
|
import { AccountingService } from '../../accounting.service';
|
||||||
|
import { Location } from '@angular/common';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* View gl account component.
|
* View gl account component.
|
||||||
@@ -32,7 +33,8 @@ export class ViewGlAccountComponent implements OnInit {
|
|||||||
constructor(private accountingService: AccountingService,
|
constructor(private accountingService: AccountingService,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
public dialog: MatDialog) {
|
private dialog: MatDialog,
|
||||||
|
private location: Location) {
|
||||||
this.route.data.subscribe((data: { glAccountAndChartOfAccountsTemplate: any }) => {
|
this.route.data.subscribe((data: { glAccountAndChartOfAccountsTemplate: any }) => {
|
||||||
this.glAccount = data.glAccountAndChartOfAccountsTemplate;
|
this.glAccount = data.glAccountAndChartOfAccountsTemplate;
|
||||||
});
|
});
|
||||||
@@ -68,4 +70,8 @@ export class ViewGlAccountComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
goBack(): void {
|
||||||
|
this.location.back();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ export class Dates {
|
|||||||
return datePipe.transform(timestamp, dateFormat);
|
return datePipe.transform(timestamp, dateFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public formatDateAsString(value: Date, dateFormat: string): string {
|
||||||
|
return moment(value).format(dateFormat);
|
||||||
|
}
|
||||||
|
|
||||||
public parseDate(value: any): Date {
|
public parseDate(value: any): Date {
|
||||||
if (value instanceof Array) {
|
if (value instanceof Array) {
|
||||||
return moment(value.join('-'), 'YYYY-MM-DD').toDate();
|
return moment(value.join('-'), 'YYYY-MM-DD').toDate();
|
||||||
|
|||||||
+14
-12
@@ -3,31 +3,31 @@
|
|||||||
<div mat-dialog-content [formGroup]="depositProductIncentiveForm" fxLayout="column">
|
<div mat-dialog-content [formGroup]="depositProductIncentiveForm" fxLayout="column">
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Attribute</mat-label>
|
<mat-label>{{'labels.inputs.Attribute' | translate}}</mat-label>
|
||||||
<mat-select formControlName="attributeName" required>
|
<mat-select formControlName="attributeName" required>
|
||||||
<mat-option *ngFor="let attributeName of attributeNameData" [value]="attributeName.id">
|
<mat-option *ngFor="let attributeName of attributeNameData" [value]="attributeName.id">
|
||||||
{{ attributeName.value }}
|
{{ attributeName.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Attribute is <strong>required</strong>
|
{{'labels.inputs.Attribute' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Condition</mat-label>
|
<mat-label>{{'labels.inputs.Condition' | translate}}</mat-label>
|
||||||
<mat-select formControlName="conditionType" required>
|
<mat-select formControlName="conditionType" required>
|
||||||
<mat-option *ngFor="let conditionType of conditionTypeData" [value]="conditionType.id">
|
<mat-option *ngFor="let conditionType of conditionTypeData" [value]="conditionType.id">
|
||||||
{{ conditionType.value }}
|
{{ conditionType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Condition is <strong>required</strong>
|
{{'labels.inputs.Condition' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field *ngIf="depositProductIncentiveForm.value.attributeName">
|
<mat-form-field *ngIf="depositProductIncentiveForm.value.attributeName">
|
||||||
<mat-label>Value</mat-label>
|
<mat-label>{{'labels.inputs.Value' | translate}}</mat-label>
|
||||||
<mat-select formControlName="attributeValue" *ngIf="depositProductIncentiveForm.value.attributeName !== 3" required>
|
<mat-select formControlName="attributeValue" *ngIf="depositProductIncentiveForm.value.attributeName !== 3" required>
|
||||||
<mat-option *ngFor="let attributeValue of attributeValueData" [value]="attributeValue.id">
|
<mat-option *ngFor="let attributeValue of attributeValueData" [value]="attributeValue.id">
|
||||||
{{ attributeValue.name }}
|
{{ attributeValue.name }}
|
||||||
@@ -35,33 +35,35 @@
|
|||||||
</mat-select>
|
</mat-select>
|
||||||
<input type="number" matInput formControlName="attributeValue" *ngIf="depositProductIncentiveForm.value.attributeName === 3" required>
|
<input type="number" matInput formControlName="attributeValue" *ngIf="depositProductIncentiveForm.value.attributeName === 3" required>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Value is <strong>required</strong>
|
{{'labels.inputs.Value' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Type</mat-label>
|
<mat-label>{{'labels.inputs.Type' | translate}}</mat-label>
|
||||||
<mat-select formControlName="incentiveType" required>
|
<mat-select formControlName="incentiveType" required>
|
||||||
<mat-option *ngFor="let incentiveType of incentiveTypeData" [value]="incentiveType.id">
|
<mat-option *ngFor="let incentiveType of incentiveTypeData" [value]="incentiveType.id">
|
||||||
{{ incentiveType.value }}
|
{{ incentiveType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Type is <strong>required</strong>
|
{{'labels.inputs.Type' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Interest</mat-label>
|
<mat-label>{{'labels.inputs.Interest' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="amount" required>
|
<input type="number" matInput formControlName="amount" required>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Interest is <strong>required</strong>
|
{{'labels.inputs.Interest' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-dialog-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<mat-dialog-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button mat-dialog-close> Cancel </button>
|
<button mat-raised-button mat-dialog-close> {{'labels.buttons.Cancel' | translate}} </button>
|
||||||
<button mat-raised-button color="primary" [mat-dialog-close]="{ data: depositProductIncentiveForm }" [disabled]="!depositProductIncentiveForm.valid || depositProductIncentiveForm.pristine">{{ layout.addButtonText }}</button>
|
<button mat-raised-button color="primary" [mat-dialog-close]="{ data: depositProductIncentiveForm }" [disabled]="!depositProductIncentiveForm.valid || depositProductIncentiveForm.pristine">
|
||||||
|
{{'labels.buttons.' + layout.addButtonText | translate }}
|
||||||
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|||||||
+4
-3
@@ -1,6 +1,7 @@
|
|||||||
import { Component, OnInit, Inject } from '@angular/core';
|
import { Component, OnInit, Inject } from '@angular/core';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-deposit-product-incentive-form-dialog',
|
selector: 'mifosx-deposit-product-incentive-form-dialog',
|
||||||
@@ -27,7 +28,8 @@ export class DepositProductIncentiveFormDialogComponent implements OnInit {
|
|||||||
|
|
||||||
constructor(public dialogRef: MatDialogRef<DepositProductIncentiveFormDialogComponent>,
|
constructor(public dialogRef: MatDialogRef<DepositProductIncentiveFormDialogComponent>,
|
||||||
@Inject(MAT_DIALOG_DATA) public data: any,
|
@Inject(MAT_DIALOG_DATA) public data: any,
|
||||||
private formBuilder: UntypedFormBuilder) {
|
private formBuilder: UntypedFormBuilder,
|
||||||
|
private translateService: TranslateService) {
|
||||||
this.createDepositProductIncentiveForm();
|
this.createDepositProductIncentiveForm();
|
||||||
this.setConditionalControls();
|
this.setConditionalControls();
|
||||||
this.layout = { ...this.layout, ...data.layout };
|
this.layout = { ...this.layout, ...data.layout };
|
||||||
@@ -56,8 +58,7 @@ export class DepositProductIncentiveFormDialogComponent implements OnInit {
|
|||||||
'entityType': this.data.entityType
|
'entityType': this.data.entityType
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
this.title = this.translateService.instant('labels.heading.Incentives');
|
||||||
this.title = `Incentives: ${this.entityTypeData.find((entityType: any) => this.depositProductIncentiveForm.get('entityType').value === entityType.id).value} Attributes`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setConditionalControls() {
|
setConditionalControls() {
|
||||||
|
|||||||
+1
-1
@@ -66,7 +66,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="100%" *ngIf="chart.value.chartSlabs.length === 0">
|
<div fxFlex="100%" *ngIf="chart.value.chartSlabs.length === 0">
|
||||||
<h3 class="mat-h3">It's required to add at least one Slab</h3>
|
<h3 class="mat-h3">It is required to add at least one Slab</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="chart.value.chartSlabs"
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="chart.value.chartSlabs"
|
||||||
|
|||||||
@@ -13,8 +13,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Loan Products</h4>
|
<h4 matLine>{{'labels.heading.Loan Products' | translate}}</h4>
|
||||||
<p matLine>Add new loan product or modify or inactivate loan product</p>
|
<p matLine>{{'labels.text.Add new loan product or modify or inactivate loan product' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -23,8 +23,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Savings Products</h4>
|
<h4 matLine>{{'labels.heading.Savings Products' | translate}}</h4>
|
||||||
<p matLine>Add new savings product or modify or inactivate savings product</p>
|
<p matLine>{{'labels.text.Add new savings product or modify or inactivate savings product' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -33,8 +33,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Share Products</h4>
|
<h4 matLine>{{'labels.heading.Share Products' | translate}}</h4>
|
||||||
<p matLine>Add new share product or modify or inactivate share product</p>
|
<p matLine>{{'labels.text.Add new share product or modify or inactivate share product' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -43,8 +43,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Charges</h4>
|
<h4 matLine>{{'labels.heading.Charges' | translate}}</h4>
|
||||||
<p matLine>Define charges/penalties for loan products, savings and deposit products</p>
|
<p matLine>{{'labels.text.Define charges/penalties for loan products, savings and deposit products' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -52,16 +52,16 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Collateral Management</h4>
|
<h4 matLine>{{'labels.heading.Collateral Management' | translate}}</h4>
|
||||||
<p matLine>Define collaterals for Collateral Management</p>
|
<p matLine>{{'labels.text.Define collaterals for Collateral Management' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
|
|
||||||
<mat-list-item [routerLink]="['delinquency-bucket-configurations']" *mifosxHasPermission="'READ_DELINQUENCY_BUCKET'">
|
<mat-list-item [routerLink]="['delinquency-bucket-configurations']" *mifosxHasPermission="'READ_DELINQUENCY_BUCKET'">
|
||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Delinquency Buckets</h4>
|
<h4 matLine>{{'labels.heading.Delinquency Buckets' | translate}}</h4>
|
||||||
<p matLine>Define delinquency day ranges and bucket set for loan products</p>
|
<p matLine>{{'labels.text.Define delinquency day ranges and bucket set for loan products' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
|
|
||||||
</mat-nav-list>
|
</mat-nav-list>
|
||||||
@@ -76,8 +76,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="random" size="sm"></fa-icon>
|
<fa-icon icon="random" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Products Mix</h4>
|
<h4 matLine>{{'labels.heading.Products Mix' | translate}}</h4>
|
||||||
<p matLine>Defines rules for taking multiple rules</p>
|
<p matLine>{{'labels.text.Defines rules for taking multiple rules' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
|
|
||||||
<div #fixedDepositProducts>
|
<div #fixedDepositProducts>
|
||||||
@@ -85,8 +85,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Fixed Deposit Products</h4>
|
<h4 matLine>{{'labels.heading.Fixed Deposit Products' | translate}}</h4>
|
||||||
<p matLine>Add, modify or inactivate a Fixed deposit product</p>
|
<p matLine>{{'labels.text.Add, modify or inactivate a Fixed deposit product' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -95,8 +95,8 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
<fa-icon icon="briefcase" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Recurring Deposit Products</h4>
|
<h4 matLine>{{'labels.heading.Recurring Deposit Products' | translate}}</h4>
|
||||||
<p matLine>Add, modify or inactivate a Recurring Deposit product</p>
|
<p matLine>{{'labels.text.Add, modify or inactivate a Recurring Deposit product' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -104,16 +104,16 @@
|
|||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="cogs" size="sm"></fa-icon>
|
<fa-icon icon="cogs" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Manage Tax Configurations</h4>
|
<h4 matLine>{{'labels.heading.Manage Tax Configurations' | translate}}</h4>
|
||||||
<p matLine>Define Tax components and Tax groups</p>
|
<p matLine>{{'labels.text.Define Tax components and Tax groups' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
|
|
||||||
<mat-list-item [routerLink]="['floating-rates']" *mifosxHasPermission="'READ_FLOATINGRATE'">
|
<mat-list-item [routerLink]="['floating-rates']" *mifosxHasPermission="'READ_FLOATINGRATE'">
|
||||||
<mat-icon matListIcon>
|
<mat-icon matListIcon>
|
||||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
<h4 matLine>Floating Rates</h4>
|
<h4 matLine>{{'labels.heading.Floating Rates' | translate}}</h4>
|
||||||
<p matLine>Define floating rates for loan products</p>
|
<p matLine>{{'labels.text.Define floating rates for loan products' | translate}}</p>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
|
|
||||||
</mat-nav-list>
|
</mat-nav-list>
|
||||||
|
|||||||
+8
-8
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductDetailsForm">
|
<mat-step [stepControl]="recurringDepositProductDetailsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>DETAILS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.DETAILS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-details-step [recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
<mifosx-recurring-deposit-product-details-step [recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductCurrencyForm">
|
<mat-step [stepControl]="recurringDepositProductCurrencyForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>CURRENCY</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CURRENCY' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-currency-step
|
<mifosx-recurring-deposit-product-currency-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductTermsForm">
|
<mat-step [stepControl]="recurringDepositProductTermsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>TERMS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.TERMS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-terms-step
|
<mifosx-recurring-deposit-product-terms-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductSettingsForm">
|
<mat-step [stepControl]="recurringDepositProductSettingsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>SETTINGS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.SETTINGS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-settings-step
|
<mifosx-recurring-deposit-product-settings-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductInterestRateChartForm">
|
<mat-step [stepControl]="recurringDepositProductInterestRateChartForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>INTEREST RATE CHART</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.INTEREST RATE CHART' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-interest-rate-chart-step
|
<mifosx-recurring-deposit-product-interest-rate-chart-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
<mat-step>
|
<mat-step>
|
||||||
|
|
||||||
<ng-template matStepLabel>CHARGES</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CHARGES' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-charges-step
|
<mifosx-recurring-deposit-product-charges-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductAccountingForm">
|
<mat-step [stepControl]="recurringDepositProductAccountingForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>ACCOUNTING</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.ACCOUNTING' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-accounting-step
|
<mifosx-recurring-deposit-product-accounting-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate" [accountingRuleData]="accountingRuleData"
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate" [accountingRuleData]="accountingRuleData"
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
<mat-step state="preview" *ngIf="recurringDepositProductFormValid" completed>
|
<mat-step state="preview" *ngIf="recurringDepositProductFormValid" completed>
|
||||||
|
|
||||||
<ng-template matStepLabel>PREVIEW</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.PREVIEW' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-preview-step
|
<mifosx-recurring-deposit-product-preview-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
||||||
|
|||||||
+8
-8
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductDetailsForm">
|
<mat-step [stepControl]="recurringDepositProductDetailsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>DETAILS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.DETAILS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-details-step
|
<mifosx-recurring-deposit-product-details-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductCurrencyForm">
|
<mat-step [stepControl]="recurringDepositProductCurrencyForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>CURRENCY</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CURRENCY' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-currency-step
|
<mifosx-recurring-deposit-product-currency-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductTermsForm">
|
<mat-step [stepControl]="recurringDepositProductTermsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>TERMS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.TERMS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-terms-step
|
<mifosx-recurring-deposit-product-terms-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductSettingsForm">
|
<mat-step [stepControl]="recurringDepositProductSettingsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>SETTINGS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.SETTINGS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-settings-step
|
<mifosx-recurring-deposit-product-settings-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductInterestRateChartForm">
|
<mat-step [stepControl]="recurringDepositProductInterestRateChartForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>INTEREST RATE CHART</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.INTEREST RATE CHART' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-interest-rate-chart-step
|
<mifosx-recurring-deposit-product-interest-rate-chart-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate">
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
<mat-step>
|
<mat-step>
|
||||||
|
|
||||||
<ng-template matStepLabel>CHARGES</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CHARGES' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-charges-step
|
<mifosx-recurring-deposit-product-charges-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="recurringDepositProductAccountingForm">
|
<mat-step [stepControl]="recurringDepositProductAccountingForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>ACCOUNTING</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.ACCOUNTING' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-accounting-step
|
<mifosx-recurring-deposit-product-accounting-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate" [accountingRuleData]="accountingRuleData"
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate" [accountingRuleData]="accountingRuleData"
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
<mat-step state="preview" *ngIf="recurringDepositProductFormValidAndNotPrinstine" completed>
|
<mat-step state="preview" *ngIf="recurringDepositProductFormValidAndNotPrinstine" completed>
|
||||||
|
|
||||||
<ng-template matStepLabel>PREVIEW</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.PREVIEW' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-recurring-deposit-product-preview-step
|
<mifosx-recurring-deposit-product-preview-step
|
||||||
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
[recurringDepositProductsTemplate]="recurringDepositProductsTemplate"
|
||||||
|
|||||||
+147
-167
@@ -5,7 +5,7 @@
|
|||||||
<mat-radio-group fxFlex="98%" fxLayout="row" fxLayoutGap="5%" fxLayout.lt-md="column"
|
<mat-radio-group fxFlex="98%" fxLayout="row" fxLayoutGap="5%" fxLayout.lt-md="column"
|
||||||
formControlName="accountingRule">
|
formControlName="accountingRule">
|
||||||
<mat-radio-button *ngFor="let accountingRule of accountingRuleData; let i = index" [value]="i+1">
|
<mat-radio-button *ngFor="let accountingRule of accountingRuleData; let i = index" [value]="i+1">
|
||||||
{{ accountingRule }}
|
{{ 'labels.accounting.' + accountingRule | translate }}
|
||||||
</mat-radio-button>
|
</mat-radio-button>
|
||||||
</mat-radio-group>
|
</mat-radio-group>
|
||||||
|
|
||||||
@@ -17,26 +17,17 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.savingsReferenceAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.savingsReferenceAccountId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Saving reference'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Saving reference'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.feesReceivableAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.feesReceivableAccountId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Fees Receivable'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Fees Receivable'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.penaltiesReceivableAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.penaltiesReceivableAccountId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Penalties Receivable'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Penalties Receivable'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
@@ -45,26 +36,17 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.savingsControlAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.savingsControlAccountId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Saving control'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Saving control'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.transfersInSuspenseAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.transfersInSuspenseAccountId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Savings transfers in suspense'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Savings transfers in suspense'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.interestPayableAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.interestPayableAccountId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Interest Payable'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Interest Payable'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
@@ -73,10 +55,7 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.interestOnSavingsAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.interestOnSavingsAccountId"
|
||||||
[glAccountList]="expenseAccountData"
|
[glAccountList]="expenseAccountData" [required]="true" [inputLabel]="'Interest on savings'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Interest on savings'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
@@ -85,164 +64,165 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.incomeFromFeeAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.incomeFromFeeAccountId"
|
||||||
[glAccountList]="incomeAccountData"
|
[glAccountList]="incomeAccountData" [required]="true" [inputLabel]="'Income from fees'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Income from fees'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="recurringDepositProductAccountingForm.controls.incomeFromPenaltyAccountId"
|
[inputFormControl]="recurringDepositProductAccountingForm.controls.incomeFromPenaltyAccountId"
|
||||||
[glAccountList]="incomeAccountData"
|
[glAccountList]="incomeAccountData" [required]="true" [inputLabel]="'Income from penalties'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Income from penalties'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
|
|
||||||
<h3 fxFlex="23%" class="mat-h3">Advanced Accounting Rules</h3>
|
<h3 fxFlex="23%" class="mat-h3">{{'labels.heading.Advanced Accounting Rules' | translate}}</h3>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="73%" formControlName="advancedAccountingRules"></mat-checkbox>
|
<mat-checkbox fxFlex="73%" formControlName="advancedAccountingRules"></mat-checkbox>
|
||||||
|
|
||||||
<div *ngIf="recurringDepositProductAccountingForm.value.advancedAccountingRules" fxFlexFill fxLayout="row wrap"
|
<div *ngIf="recurringDepositProductAccountingForm.value.advancedAccountingRules" fxFlexFill fxLayout="row wrap"
|
||||||
fxLayoutGap="2%" fxLayout.lt-md="column">
|
fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 fxFlex="33%" class="mat-h4">Configure Fund Sources for Payment Channels</h4>
|
<div fxFlex="100%" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
<h4 fxFlex="63%" class="mat-h4">{{'labels.heading.Configure Fund Sources for Payment Channels' | translate}}
|
||||||
|
</h4>
|
||||||
|
|
||||||
<div fxFlex="63%">
|
<div fxFlex="33%">
|
||||||
<button type="button" mat-raised-button color="primary"
|
<button type="button" mat-raised-button color="primary"
|
||||||
(click)="add('PaymentFundSource', paymentChannelToFundSourceMappings)">
|
(click)="add('PaymentFundSource', paymentChannelToFundSourceMappings)">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add
|
{{'labels.buttons.Add' | translate}}
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="paymentChannelToFundSourceMappings.value"
|
||||||
|
*ngIf="paymentChannelToFundSourceMappings.value.length !== 0">
|
||||||
|
|
||||||
|
<ng-container matColumnDef="paymentTypeId">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Payment Type' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let paymentFundSource">
|
||||||
|
{{ paymentFundSource.paymentTypeId | find:paymentTypeData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="fundSourceAccountId">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fund Source' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let paymentFundSource">
|
||||||
|
{{ paymentFundSource.fundSourceAccountId | find:assetAccountData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let paymentFundSource; let i = index">
|
||||||
|
<button mat-icon-button color="primary"
|
||||||
|
(click)="edit('PaymentFundSource', paymentChannelToFundSourceMappings, i)">
|
||||||
|
<fa-icon icon="edit"></fa-icon>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button color="warn" (click)="delete(paymentChannelToFundSourceMappings, i)">
|
||||||
|
<fa-icon icon="trash"></fa-icon>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="paymentFundSourceDisplayedColumns"></tr>
|
||||||
|
<tr mat-row *matRowDef="let row; columns: paymentFundSourceDisplayedColumns;"></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div fxFlex="100%" *ngIf="existCharges()">
|
||||||
|
|
||||||
|
<h4 fxFlex="63%" class="mat-h4">{{'labels.heading.Map Fees to Specific Income Accounts' | translate}}</h4>
|
||||||
|
|
||||||
|
<div fxFlex="33%">
|
||||||
|
<button type="button" mat-raised-button color="primary"
|
||||||
|
(click)="add('FeesIncome', feeToIncomeAccountMappings)">
|
||||||
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
|
{{'labels.buttons.Add' | translate}}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="feeToIncomeAccountMappings.value"
|
||||||
|
*ngIf="feeToIncomeAccountMappings.value.length !== 0">
|
||||||
|
|
||||||
|
<ng-container matColumnDef="chargeId">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fees' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
|
{{ feesIncome.chargeId | find:chargeData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
|
{{ feesIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let feesIncome; let i = index">
|
||||||
|
<button mat-icon-button color="primary" (click)="edit('FeesIncome', feeToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="edit"></fa-icon>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button color="warn" (click)="delete(feeToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="trash"></fa-icon>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
||||||
|
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="paymentChannelToFundSourceMappings.value"
|
<div fxFlex="100%" *ngIf="existCharges()">
|
||||||
*ngIf="paymentChannelToFundSourceMappings.value.length !== 0">
|
|
||||||
|
|
||||||
<ng-container matColumnDef="paymentTypeId">
|
<h4 fxFlex="63%" class="mat-h4">{{'labels.heading.Map Penalties to Specific Income Accounts' | translate}}
|
||||||
<th mat-header-cell *matHeaderCellDef> Payment Type </th>
|
</h4>
|
||||||
<td mat-cell *matCellDef="let paymentFundSource">
|
|
||||||
{{ paymentFundSource.paymentTypeId | find:paymentTypeData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="fundSourceAccountId">
|
<div fxFlex="33%">
|
||||||
<th mat-header-cell *matHeaderCellDef> Fund Source </th>
|
<button type="button" mat-raised-button color="primary"
|
||||||
<td mat-cell *matCellDef="let paymentFundSource">
|
(click)="add('PenaltyIncome', penaltyToIncomeAccountMappings)">
|
||||||
{{ paymentFundSource.fundSourceAccountId | find:assetAccountData:'id':'name' }}
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
</td>
|
{{'labels.buttons.Add' | translate}}
|
||||||
</ng-container>
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="penaltyToIncomeAccountMappings.value"
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
*ngIf="penaltyToIncomeAccountMappings.value.length !== 0">
|
||||||
<td mat-cell *matCellDef="let paymentFundSource; let i = index">
|
|
||||||
<button mat-icon-button color="primary"
|
|
||||||
(click)="edit('PaymentFundSource', paymentChannelToFundSourceMappings, i)">
|
|
||||||
<fa-icon icon="edit"></fa-icon>
|
|
||||||
</button>
|
|
||||||
<button mat-icon-button color="warn" (click)="delete(paymentChannelToFundSourceMappings, i)">
|
|
||||||
<fa-icon icon="trash"></fa-icon>
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="paymentFundSourceDisplayedColumns"></tr>
|
<ng-container matColumnDef="chargeId">
|
||||||
<tr mat-row *matRowDef="let row; columns: paymentFundSourceDisplayedColumns;"></tr>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Penalty' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
|
{{ penaltyIncome.chargeId | find:penaltyData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
</table>
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
|
{{ penaltyIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<h4 fxFlex="33%" class="mat-h4">Map Fees to Specific Income Accounts</h4>
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let penaltyIncome; let i = index">
|
||||||
|
<button mat-icon-button color="primary"
|
||||||
|
(click)="edit('PenaltyIncome', penaltyToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="edit"></fa-icon>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button color="warn" (click)="delete(penaltyToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="trash"></fa-icon>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<div fxFlex="63%">
|
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
||||||
<button type="button" mat-raised-button color="primary"
|
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
||||||
(click)="add('FeesIncome', feeToIncomeAccountMappings)">
|
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
</table>
|
||||||
Add
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="feeToIncomeAccountMappings.value"
|
|
||||||
*ngIf="feeToIncomeAccountMappings.value.length !== 0">
|
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
|
||||||
<th mat-header-cell *matHeaderCellDef> Fees </th>
|
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
|
||||||
{{ feesIncome.chargeId | find:chargeData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
|
||||||
<th mat-header-cell *matHeaderCellDef> Income Account </th>
|
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
|
||||||
{{ feesIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
|
||||||
<td mat-cell *matCellDef="let feesIncome; let i = index">
|
|
||||||
<button mat-icon-button color="primary" (click)="edit('FeesIncome', feeToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="edit"></fa-icon>
|
|
||||||
</button>
|
|
||||||
<button mat-icon-button color="warn" (click)="delete(feeToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="trash"></fa-icon>
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
|
||||||
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<h4 fxFlex="33%" class="mat-h4">Map Penalties to Specific Income Accounts</h4>
|
|
||||||
|
|
||||||
<div fxFlex="63%">
|
|
||||||
<button type="button" mat-raised-button color="primary"
|
|
||||||
(click)="add('PenaltyIncome', penaltyToIncomeAccountMappings)">
|
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
|
||||||
Add
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="penaltyToIncomeAccountMappings.value"
|
|
||||||
*ngIf="penaltyToIncomeAccountMappings.value.length !== 0">
|
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
|
||||||
<th mat-header-cell *matHeaderCellDef> Penalty </th>
|
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
|
||||||
{{ penaltyIncome.chargeId | find:penaltyData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
|
||||||
<th mat-header-cell *matHeaderCellDef> Income Account </th>
|
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
|
||||||
{{ penaltyIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
|
||||||
<td mat-cell *matCellDef="let penaltyIncome; let i = index">
|
|
||||||
<button mat-icon-button color="primary"
|
|
||||||
(click)="edit('PenaltyIncome', penaltyToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="edit"></fa-icon>
|
|
||||||
</button>
|
|
||||||
<button mat-icon-button color="warn" (click)="delete(penaltyToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="trash"></fa-icon>
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
|
||||||
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -252,12 +232,12 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext [disabled]="!recurringDepositProductFormValid">
|
<button mat-raised-button matStepperNext [disabled]="!recurringDepositProductFormValid">
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
+18
-9
@@ -8,6 +8,7 @@ import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.co
|
|||||||
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
|
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
|
||||||
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
||||||
import { Accounting } from 'app/core/utils/accounting';
|
import { Accounting } from 'app/core/utils/accounting';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-recurring-deposit-product-accounting-step',
|
selector: 'mifosx-recurring-deposit-product-accounting-step',
|
||||||
@@ -34,8 +35,9 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
feesPenaltyIncomeDisplayedColumns: string[] = ['chargeId', 'incomeAccountId', 'actions'];
|
feesPenaltyIncomeDisplayedColumns: string[] = ['chargeId', 'incomeAccountId', 'actions'];
|
||||||
|
|
||||||
constructor(private formBuilder: UntypedFormBuilder,
|
constructor(private formBuilder: UntypedFormBuilder,
|
||||||
public dialog: MatDialog,
|
private dialog: MatDialog,
|
||||||
private accounting: Accounting) {
|
private accounting: Accounting,
|
||||||
|
private translateService: TranslateService) {
|
||||||
this.createrecurringDepositProductAccountingForm();
|
this.createrecurringDepositProductAccountingForm();
|
||||||
this.setConditionalControls();
|
this.setConditionalControls();
|
||||||
}
|
}
|
||||||
@@ -120,6 +122,10 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
existCharges(): boolean {
|
||||||
|
return (this.chargeData.length > 0);
|
||||||
|
}
|
||||||
|
|
||||||
setConditionalControls() {
|
setConditionalControls() {
|
||||||
this.recurringDepositProductAccountingForm.get('accountingRule').valueChanges
|
this.recurringDepositProductAccountingForm.get('accountingRule').valueChanges
|
||||||
.subscribe((accountingRule: any) => {
|
.subscribe((accountingRule: any) => {
|
||||||
@@ -214,9 +220,12 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
|
|
||||||
getData(formType: string, values?: any) {
|
getData(formType: string, values?: any) {
|
||||||
switch (formType) {
|
switch (formType) {
|
||||||
case 'PaymentFundSource': return { title: 'Configure Fund Sources for Payment Channels', formfields: this.getPaymentFundSourceFormfields(values) };
|
case 'PaymentFundSource': return { title: this.translateService.instant('labels.heading.Configure Fund Sources for Payment Channels'),
|
||||||
case 'FeesIncome': return { title: 'Map Fees to Income Accounts', formfields: this.getFeesIncomeFormfields(values) };
|
formfields: this.getPaymentFundSourceFormfields(values) };
|
||||||
case 'PenaltyIncome': return { title: 'Map Penalties to Specific Income Accounts', formfields: this.getPenaltyIncomeFormfields(values) };
|
case 'FeesIncome': return { title: this.translateService.instant('labels.heading.Map Fees to Specific Income Accounts'),
|
||||||
|
formfields: this.getFeesIncomeFormfields(values) };
|
||||||
|
case 'PenaltyIncome': return { title: this.translateService.instant('labels.heading.Map Penalties to Specific Income Accounts'),
|
||||||
|
formfields: this.getPenaltyIncomeFormfields(values) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,7 +233,7 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
const formfields: FormfieldBase[] = [
|
const formfields: FormfieldBase[] = [
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'paymentTypeId',
|
controlName: 'paymentTypeId',
|
||||||
label: 'Payment Type',
|
label: this.translateService.instant('labels.inputs.Payment Type'),
|
||||||
value: values ? values.paymentTypeId : this.paymentTypeData[0].id,
|
value: values ? values.paymentTypeId : this.paymentTypeData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.paymentTypeData },
|
options: { label: 'name', value: 'id', data: this.paymentTypeData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -232,7 +241,7 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
}),
|
}),
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'fundSourceAccountId',
|
controlName: 'fundSourceAccountId',
|
||||||
label: 'Fund Source',
|
label: this.translateService.instant('labels.inputs.Fund Source'),
|
||||||
value: values ? values.fundSourceAccountId : this.assetAccountData[0].id,
|
value: values ? values.fundSourceAccountId : this.assetAccountData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.assetAccountData },
|
options: { label: 'name', value: 'id', data: this.assetAccountData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -246,7 +255,7 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
const formfields: FormfieldBase[] = [
|
const formfields: FormfieldBase[] = [
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'chargeId',
|
controlName: 'chargeId',
|
||||||
label: 'Fees',
|
label: this.translateService.instant('labels.inputs.Fees'),
|
||||||
value: values ? values.chargeId : this.chargeData[0].id,
|
value: values ? values.chargeId : this.chargeData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.chargeData },
|
options: { label: 'name', value: 'id', data: this.chargeData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -254,7 +263,7 @@ export class RecurringDepositProductAccountingStepComponent implements OnInit {
|
|||||||
}),
|
}),
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'incomeAccountId',
|
controlName: 'incomeAccountId',
|
||||||
label: 'Income Account',
|
label: this.translateService.instant('labels.inputs.Income Account'),
|
||||||
value: values ? values.incomeAccountId : this.incomeAccountData[0].id,
|
value: values ? values.incomeAccountId : this.incomeAccountData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.incomeAccountData },
|
options: { label: 'name', value: 'id', data: this.incomeAccountData },
|
||||||
required: true,
|
required: true,
|
||||||
|
|||||||
+9
-9
@@ -1,7 +1,7 @@
|
|||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Charge</mat-label>
|
<mat-label>{{'labels.inputs.Charge' | translate}}</mat-label>
|
||||||
<mat-select #charge>
|
<mat-select #charge>
|
||||||
<mat-option *ngFor="let charge of chargeData | chargesFilter:chargesDataSource:currencyCode.value"
|
<mat-option *ngFor="let charge of chargeData | chargesFilter:chargesDataSource:currencyCode.value"
|
||||||
[value]="charge">
|
[value]="charge">
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<div fxFlex="48%" fxFlexAlign="center">
|
<div fxFlex="48%" fxFlexAlign="center">
|
||||||
<button type="button" mat-raised-button color="primary" (click)="addCharge(charge)" [disabled]="!charge.value">
|
<button type="button" mat-raised-button color="primary" (click)="addCharge(charge)" [disabled]="!charge.value">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add
|
{{'labels.buttons.Add' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -21,35 +21,35 @@
|
|||||||
[hidden]="chargesDataSource.length === 0">
|
[hidden]="chargesDataSource.length === 0">
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef> Name </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.name + ', ' + charge.currency.displaySymbol }}
|
{{ charge.name + ', ' + charge.currency.displaySymbol }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeCalculationType">
|
<ng-container matColumnDef="chargeCalculationType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.chargeCalculationType.value }}
|
{{ charge.chargeCalculationType.value }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amount">
|
<ng-container matColumnDef="amount">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.amount }}
|
{{ charge.amount }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeTimeType">
|
<ng-container matColumnDef="chargeTimeType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Collected On </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.chargeTimeType.value }}
|
{{ charge.chargeTimeType.value }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="action">
|
<ng-container matColumnDef="action">
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
<button mat-icon-button color="warn" (click)="deleteCharge(charge)">
|
<button mat-icon-button color="warn" (click)="deleteCharge(charge)">
|
||||||
<fa-icon icon="trash"></fa-icon>
|
<fa-icon icon="trash"></fa-icon>
|
||||||
@@ -67,10 +67,10 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext>
|
<button mat-raised-button matStepperNext>
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+8
-8
@@ -3,30 +3,30 @@
|
|||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Currency</mat-label>
|
<mat-label>{{'labels.inputs.Currency' | translate}}</mat-label>
|
||||||
<mat-select formControlName="currencyCode" matTooltip = "The currency in which the deposit will be disbursed." required>
|
<mat-select formControlName="currencyCode" matTooltip = "The currency in which the deposit will be disbursed." required>
|
||||||
<mat-option *ngFor="let currency of currencyData" [value]="currency.code">
|
<mat-option *ngFor="let currency of currencyData" [value]="currency.code">
|
||||||
{{ currency.name }}
|
{{ currency.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Currency is <strong>required</strong>
|
{{'labels.inputs.Currency' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Decimal Places</mat-label>
|
<mat-label>{{'labels.inputs.Decimal Places' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="digitsAfterDecimal" matTooltip = "The number of decimal places to be used to track and report on deposits." required>
|
<input type="number" matInput formControlName="digitsAfterDecimal" matTooltip = "The number of decimal places to be used to track and report on deposits." required>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Decimal Places is <strong>required</strong>
|
{{'labels.inputs.Decimal Places' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Currency in multiples of</mat-label>
|
<mat-label>{{'labels.inputs.Currency in multiples of' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="inMultiplesOf" matTooltip = "You can enter multiples of currency value. For example, if you put multiples of 100, the currency value will be rounded off to 200, 300, 400, etc.">
|
<input type="number" matInput formControlName="inMultiplesOf" matTooltip = "You can enter multiples of currency value. For example, if you put multiples of 100, the currency value will be rounded off to 200, 300, 400, etc.">
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Currency in multiples of is <strong>required</strong>
|
{{'labels.inputs.Currency in multiples of' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
@@ -35,10 +35,10 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext>
|
<button mat-raised-button matStepperNext>
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+8
-8
@@ -3,26 +3,26 @@
|
|||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Product Name </mat-label>
|
<mat-label>{{'labels.inputs.Product Name' | translate}} </mat-label>
|
||||||
<input matInput formControlName="name" matTooltip="The product name is a unique identifier for the lending product." required>
|
<input matInput formControlName="name" matTooltip="The product name is a unique identifier for the lending product." required>
|
||||||
<mat-error *ngIf="recurringDepositProductDetailsForm.controls.name.hasError('required')">
|
<mat-error *ngIf="recurringDepositProductDetailsForm.controls.name.hasError('required')">
|
||||||
Product Name is <strong>required</strong>
|
{{'labels.inputs.Product Name' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Short Name</mat-label>
|
<mat-label>{{'labels.inputs.Short Name' | translate}}</mat-label>
|
||||||
<input matInput formControlName="shortName" maxlength="4" matTooltip="The short name is a unique identifier for the lending product." required>
|
<input matInput formControlName="shortName" maxlength="4" matTooltip="The short name is a unique identifier for the lending product." required>
|
||||||
<mat-error *ngIf="recurringDepositProductDetailsForm.controls.shortName.hasError('required')">
|
<mat-error *ngIf="recurringDepositProductDetailsForm.controls.shortName.hasError('required')">
|
||||||
Short Name is <strong>required</strong>
|
{{'labels.inputs.Short Name' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="98%">
|
<mat-form-field fxFlex="98%">
|
||||||
<mat-label>Description</mat-label>
|
<mat-label>{{'labels.inputs.Description' | translate}}</mat-label>
|
||||||
<textarea matInput formControlName="description" matTooltip="The description is used to provide additional information regarding the purpose and characteristics of the recurring deposit product." cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
<textarea matInput formControlName="description" matTooltip="The description is used to provide additional information regarding the purpose and characteristics of the recurring deposit product." cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||||
<mat-error *ngIf="recurringDepositProductDetailsForm.controls.description.hasError('required')">
|
<mat-error *ngIf="recurringDepositProductDetailsForm.controls.description.hasError('required')">
|
||||||
Description is <strong>required</strong>
|
{{'labels.inputs.Description' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
@@ -31,10 +31,10 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious disabled>
|
<button mat-raised-button matStepperPrevious disabled>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext>
|
<button mat-raised-button matStepperNext>
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+67
-48
@@ -2,192 +2,211 @@
|
|||||||
|
|
||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h3 fxFlex="13%" class="mat-h3">Interest Rate Charts</h3>
|
<h3 fxFlex="63%" class="mat-h3">{{ 'labels.heading.Interest Rate Charts' | translate}}</h3>
|
||||||
|
|
||||||
<div fxFlex="83%" fxLayout="row" fxLayoutAlign="start center">
|
<div fxFlex="33%" fxLayout="row" fxLayoutAlign="start center">
|
||||||
<button type="button" mat-raised-button color="primary" (click)="addChart()">
|
<button type="button" mat-raised-button color="primary" (click)="addChart()">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add
|
{{ 'labels.buttons.Add' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" formArrayName="charts" *ngFor="let chart of charts.controls; let chartIndex = index">
|
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" formArrayName="charts"
|
||||||
|
*ngFor="let chart of charts.controls; let chartIndex = index">
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="chartIndex">
|
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="chartIndex">
|
||||||
|
|
||||||
<div fxFlex="98%" fxLayout="row" fxLayoutAlign="end center">
|
<div fxFlex="98%" fxLayout="row" fxLayoutAlign="end center">
|
||||||
<button type="button" mat-icon-button color="warn" (click)="delete(charts, chartIndex)" matTooltip="Delete Interest Rate Chart" matTooltipPosition="left">
|
<button type="button" mat-icon-button color="warn" (click)="delete(charts, chartIndex)"
|
||||||
|
matTooltip="Delete Interest Rate Chart" matTooltipPosition="left">
|
||||||
<fa-icon icon="trash"></fa-icon>
|
<fa-icon icon="trash"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-form-field fxFlex="32%">
|
<mat-form-field fxFlex="32%">
|
||||||
<mat-label >Name</mat-label>
|
<mat-label>{{ 'labels.inputs.Name' | translate}}</mat-label>
|
||||||
<input matInput formControlName="name" matTooltip="The name is a unique identifier for the chart." required>
|
<input matInput formControlName="name" matTooltip="The name is a unique identifier for the chart." required>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="31%" (click)="validFromDatePicker.open()">
|
<mat-form-field fxFlex="31%" (click)="validFromDatePicker.open()">
|
||||||
<mat-label>Valid from Date</mat-label>
|
<mat-label>{{ 'labels.inputs.Start Date' | translate}}</mat-label>
|
||||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="validFromDatePicker" formControlName="fromDate" required>
|
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="validFromDatePicker"
|
||||||
|
formControlName="fromDate" required>
|
||||||
<mat-datepicker-toggle matSuffix [for]="validFromDatePicker"></mat-datepicker-toggle>
|
<mat-datepicker-toggle matSuffix [for]="validFromDatePicker"></mat-datepicker-toggle>
|
||||||
<mat-datepicker #validFromDatePicker></mat-datepicker>
|
<mat-datepicker #validFromDatePicker></mat-datepicker>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Valid from Date is <strong>required</strong>
|
{{ 'labels.inputs.Start Date' | translate}} {{'labels.commons.is' | translate}}
|
||||||
|
<strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="31%" (click)="endDatePicker.open()">
|
<mat-form-field fxFlex="31%" (click)="endDatePicker.open()">
|
||||||
<mat-label>End Date</mat-label>
|
<mat-label>{{ 'labels.inputs.End Date' | translate}}</mat-label>
|
||||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="endDatePicker" formControlName="endDate">
|
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="endDatePicker" formControlName="endDate">
|
||||||
<mat-datepicker-toggle matSuffix [for]="endDatePicker"></mat-datepicker-toggle>
|
<mat-datepicker-toggle matSuffix [for]="endDatePicker"></mat-datepicker-toggle>
|
||||||
<mat-datepicker #endDatePicker></mat-datepicker>
|
<mat-datepicker #endDatePicker></mat-datepicker>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="65%">
|
<mat-form-field fxFlex="65%">
|
||||||
<mat-label >Description</mat-label>
|
<mat-label>{{ 'labels.inputs.Description' | translate}}</mat-label>
|
||||||
<textarea matInput formControlName="description" matTooltip="The description is used to provide additional information regarding the purpose and characteristics of the chart."></textarea>
|
<textarea matInput formControlName="description"
|
||||||
|
matTooltip="The description is used to provide additional information regarding the purpose and characteristics of the chart."></textarea>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<div fxFlex="31%" fxLayout="row" fxLayoutAlign="space-between center">
|
<div fxFlex="31%" fxLayout="row" fxLayoutAlign="space-between center">
|
||||||
<mat-checkbox labelPosition="before" formControlName="isPrimaryGroupingByAmount">
|
<mat-checkbox labelPosition="before" formControlName="isPrimaryGroupingByAmount">
|
||||||
Is primary grouping by amount?
|
{{ 'labels.inputs.Is primary grouping by amount?' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div fxFlex="100%" class="center">
|
||||||
<button type="button" mat-raised-button color="primary" (click)="addChartSlab(chart.controls.chartSlabs)">
|
<button type="button" mat-raised-button color="primary" (click)="addChartSlab(chart.controls.chartSlabs)">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add Slab
|
{{ 'labels.buttons.Add Slab' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="100%" *ngIf="chart.value.chartSlabs.length === 0">
|
<div fxFlex="100%" *ngIf="chart.value.chartSlabs.length === 0">
|
||||||
<h3 class="mat-h3">It's required to add at least one Slab</h3>
|
<h3 class="mat-h3">{{ "labels.heading.It is required to add at least one Slab" | translate}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="chart.value.chartSlabs" *ngIf="chart.value.chartSlabs.length !== 0" multiTemplateDataRows>
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="chart.value.chartSlabs"
|
||||||
|
*ngIf="chart.value.chartSlabs.length !== 0" multiTemplateDataRows>
|
||||||
|
|
||||||
<ng-container matColumnDef="period">
|
<ng-container matColumnDef="period">
|
||||||
<th mat-header-cell *matHeaderCellDef> Period </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Period' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.fromPeriod + ' - ' + chartSlab.toPeriod + ' ' + (chartSlab.periodType | find:periodTypeData:'id':'value') }}
|
{{ chartSlab.fromPeriod + ' - ' + chartSlab.toPeriod + ' ' + (chartSlab.periodType |
|
||||||
|
find:periodTypeData:'id':'value') }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amountRange">
|
<ng-container matColumnDef="amountRange">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount Range </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Amount Range' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.amountRangeFrom + ' - ' + chartSlab.amountRangeTo }}
|
{{ chartSlab.amountRangeFrom + ' - ' + chartSlab.amountRangeTo }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="annualInterestRate">
|
<ng-container matColumnDef="annualInterestRate">
|
||||||
<th mat-header-cell *matHeaderCellDef> Interest </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Interest' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.annualInterestRate }}
|
{{ chartSlab.annualInterestRate }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="description">
|
<ng-container matColumnDef="description">
|
||||||
<th mat-header-cell *matHeaderCellDef> Description </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Description' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.description }}
|
{{ chartSlab.description }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Actions' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
|
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
|
||||||
<button mat-icon-button color="primary" (click)="editChartSlab(chart.controls.chartSlabs, chartSlabIndex)">
|
<button mat-icon-button color="primary"
|
||||||
|
(click)="editChartSlab(chart.controls.chartSlabs, chartSlabIndex)">
|
||||||
<fa-icon icon="edit"></fa-icon>
|
<fa-icon icon="edit"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
<button mat-icon-button color="warn" (click)="delete(chart.controls.chartSlabs, chartSlabIndex)">
|
<button mat-icon-button color="warn" (click)="delete(chart.controls.chartSlabs, chartSlabIndex)">
|
||||||
<fa-icon icon="trash"></fa-icon>
|
<fa-icon icon="trash"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
<button mat-button color="primary" (click)="expandChartSlabIndex[chartIndex] = expandChartSlabIndex[chartIndex] === chartSlabIndex ? null : chartSlabIndex">
|
<button mat-button color="primary"
|
||||||
|
(click)="expandChartSlabIndex[chartIndex] = expandChartSlabIndex[chartIndex] === chartSlabIndex ? null : chartSlabIndex">
|
||||||
<span *ngIf="expandChartSlabIndex[chartIndex] !== chartSlabIndex">
|
<span *ngIf="expandChartSlabIndex[chartIndex] !== chartSlabIndex">
|
||||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>
|
<fa-icon icon="eye" class="m-r-10"></fa-icon>
|
||||||
View Incentives
|
{{ 'labels.buttons.View Incentives' | translate}}
|
||||||
</span>
|
</span>
|
||||||
<span *ngIf="expandChartSlabIndex[chartIndex] === chartSlabIndex">
|
<span *ngIf="expandChartSlabIndex[chartIndex] === chartSlabIndex">
|
||||||
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
|
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
|
||||||
Hide Incentives
|
{{ 'labels.buttons.Hide Incentives' | translate}}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incentives">
|
<ng-container matColumnDef="incentives">
|
||||||
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex" [attr.colspan]="chartSlabsDisplayedColumns[chartIndex].length">
|
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex"
|
||||||
|
[attr.colspan]="chartSlabsDisplayedColumns[chartIndex].length">
|
||||||
|
|
||||||
<div fxLayout="row wrap" fxFlexFill class="incentives" [@expandChartSlab]="chartSlabIndex === expandChartSlabIndex[chartIndex] ? 'expanded' : 'collapsed'">
|
<div fxLayout="row wrap" fxFlexFill class="incentives"
|
||||||
|
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex[chartIndex] ? 'expanded' : 'collapsed'">
|
||||||
|
|
||||||
<mat-card fxLayout="row wrap" fxFlexFill>
|
<mat-card fxLayout="row wrap" fxFlexFill>
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlex="13%">
|
<h4 class="mat-h4" fxFlex="63%">
|
||||||
Incentives
|
{{ 'labels.heading.Incentives' | translate}}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<div fxFlex="83%">
|
<div fxFlex="33%">
|
||||||
<button mat-raised-button color="primary" (click)="addIncentive(getIncentives(chart.controls.chartSlabs, chartSlabIndex))">
|
<button mat-raised-button color="primary"
|
||||||
|
(click)="addIncentive(getIncentives(chart.controls.chartSlabs, chartSlabIndex))">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add
|
{{ 'labels.buttons.Add' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<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">
|
<ng-container matColumnDef="entityType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Entity Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Entity Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.entityType | find:entityTypeData:'id':'value' }}
|
{{ incentive.entityType | find:entityTypeData:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="attributeName">
|
<ng-container matColumnDef="attributeName">
|
||||||
<th mat-header-cell *matHeaderCellDef> Attribute Name </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Attribute Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.attributeName | find:attributeNameData:'id':'value' }}
|
{{ incentive.attributeName | find:attributeNameData:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="conditionType">
|
<ng-container matColumnDef="conditionType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Condition Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Condition Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.conditionType | find:conditionTypeData:'id':'value' }}
|
{{ incentive.conditionType | find:conditionTypeData:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="attributeValue">
|
<ng-container matColumnDef="attributeValue">
|
||||||
<th mat-header-cell *matHeaderCellDef> Attribute Value </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Attribute Value' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
|
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
|
||||||
<span *ngSwitchCase="2">{{ incentive.attributeValue | find:genderData:'id':'name' }}</span>
|
<span *ngSwitchCase="2">{{ incentive.attributeValue | find:genderData:'id':'name' }}</span>
|
||||||
<span *ngSwitchCase="3">{{ incentive.attributeValue }}</span>
|
<span *ngSwitchCase="3">{{ incentive.attributeValue }}</span>
|
||||||
<span *ngSwitchCase="4">{{ incentive.attributeValue | find:clientTypeData:'id':'name' }}</span>
|
<span *ngSwitchCase="4">{{ incentive.attributeValue | find:clientTypeData:'id':'name' }}</span>
|
||||||
<span *ngSwitchCase="5">{{ incentive.attributeValue | find:clientClassificationData:'id':'name' }}</span>
|
<span *ngSwitchCase="5">{{ incentive.attributeValue | find:clientClassificationData:'id':'name'
|
||||||
|
}}</span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incentiveType">
|
<ng-container matColumnDef="incentiveType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Incentive Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Incentive Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.incentiveType | find:incentiveTypeData:'id':'value'}}
|
{{ incentive.incentiveType | find:incentiveTypeData:'id':'value'}}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amount">
|
<ng-container matColumnDef="amount">
|
||||||
<th mat-header-cell *matHeaderCellDef> Interest </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Interest' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.amount }}
|
{{ incentive.amount }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Actions' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive; let incentiveIndex = index">
|
<td mat-cell *matCellDef="let incentive; let incentiveIndex = index">
|
||||||
<button mat-icon-button color="primary" (click)="editIncentive(getIncentives(chart.controls.chartSlabs, chartSlabIndex), incentiveIndex)">
|
<button mat-icon-button color="primary"
|
||||||
|
(click)="editIncentive(getIncentives(chart.controls.chartSlabs, chartSlabIndex), incentiveIndex)">
|
||||||
<fa-icon icon="edit"></fa-icon>
|
<fa-icon icon="edit"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
<button mat-icon-button color="warn" (click)="delete(getIncentives(chart.controls.chartSlabs, chartSlabIndex), incentiveIndex)">
|
<button mat-icon-button color="warn"
|
||||||
|
(click)="delete(getIncentives(chart.controls.chartSlabs, chartSlabIndex), incentiveIndex)">
|
||||||
<fa-icon icon="trash"></fa-icon>
|
<fa-icon icon="trash"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@@ -218,12 +237,12 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext>
|
<button mat-raised-button matStepperNext>
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
+21
-13
@@ -17,6 +17,7 @@ import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
|
|||||||
|
|
||||||
import { SettingsService } from 'app/settings/settings.service';
|
import { SettingsService } from 'app/settings/settings.service';
|
||||||
import { Dates } from 'app/core/utils/dates';
|
import { Dates } from 'app/core/utils/dates';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-recurring-deposit-product-interest-rate-chart-step',
|
selector: 'mifosx-recurring-deposit-product-interest-rate-chart-step',
|
||||||
@@ -66,7 +67,8 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
constructor(private formBuilder: UntypedFormBuilder,
|
constructor(private formBuilder: UntypedFormBuilder,
|
||||||
public dialog: MatDialog,
|
public dialog: MatDialog,
|
||||||
private dateUtils: Dates,
|
private dateUtils: Dates,
|
||||||
private settingsService: SettingsService) {
|
private settingsService: SettingsService,
|
||||||
|
private translateService: TranslateService) {
|
||||||
this.createrecurringDepositProductInterestRateChartForm();
|
this.createrecurringDepositProductInterestRateChartForm();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,7 +315,7 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
|
|
||||||
getData(formType: string, values?: any) {
|
getData(formType: string, values?: any) {
|
||||||
switch (formType) {
|
switch (formType) {
|
||||||
case 'Slab': return { title: 'Slab', formfields: this.getSlabFormfields(values) };
|
case 'Slab': return { title: this.translateService.instant('labels.inputs.Slab'), formfields: this.getSlabFormfields(values) };
|
||||||
case 'Incentive': return { values, chartTemplate: this.recurringDepositProductsTemplate.chartTemplate };
|
case 'Incentive': return { values, chartTemplate: this.recurringDepositProductsTemplate.chartTemplate };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -322,7 +324,7 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
const formfields: FormfieldBase[] = [
|
const formfields: FormfieldBase[] = [
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'periodType',
|
controlName: 'periodType',
|
||||||
label: 'Period Type',
|
label: this.translateService.instant('labels.inputs.Period Type'),
|
||||||
value: values ? values.periodType : this.periodTypeData[0].id,
|
value: values ? values.periodType : this.periodTypeData[0].id,
|
||||||
options: { label: 'value', value: 'id', data: this.periodTypeData },
|
options: { label: 'value', value: 'id', data: this.periodTypeData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -330,7 +332,7 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
}),
|
}),
|
||||||
new InputBase({
|
new InputBase({
|
||||||
controlName: 'fromPeriod',
|
controlName: 'fromPeriod',
|
||||||
label: 'Period From',
|
label: this.translateService.instant('labels.inputs.Period From'),
|
||||||
value: values ? values.fromPeriod : undefined,
|
value: values ? values.fromPeriod : undefined,
|
||||||
type: 'number',
|
type: 'number',
|
||||||
required: true,
|
required: true,
|
||||||
@@ -338,28 +340,28 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
}),
|
}),
|
||||||
new InputBase({
|
new InputBase({
|
||||||
controlName: 'toPeriod',
|
controlName: 'toPeriod',
|
||||||
label: 'Period To',
|
label: this.translateService.instant('labels.inputs.Period To'),
|
||||||
value: values ? values.toPeriod : undefined,
|
value: values ? values.toPeriod : undefined,
|
||||||
type: 'number',
|
type: 'number',
|
||||||
order: 3
|
order: 3
|
||||||
}),
|
}),
|
||||||
new InputBase({
|
new InputBase({
|
||||||
controlName: 'amountRangeFrom',
|
controlName: 'amountRangeFrom',
|
||||||
label: 'Amount Range From',
|
label: this.translateService.instant('labels.inputs.Amount Range From'),
|
||||||
value: values ? values.amountRangeFrom : undefined,
|
value: values ? values.amountRangeFrom : undefined,
|
||||||
type: 'number',
|
type: 'number',
|
||||||
order: 4
|
order: 4
|
||||||
}),
|
}),
|
||||||
new InputBase({
|
new InputBase({
|
||||||
controlName: 'amountRangeTo',
|
controlName: 'amountRangeTo',
|
||||||
label: 'Amount Range To',
|
label: this.translateService.instant('labels.inputs.Amount Range To'),
|
||||||
value: values ? values.amountRangeTo : undefined,
|
value: values ? values.amountRangeTo : undefined,
|
||||||
type: 'number',
|
type: 'number',
|
||||||
order: 5
|
order: 5
|
||||||
}),
|
}),
|
||||||
new InputBase({
|
new InputBase({
|
||||||
controlName: 'annualInterestRate',
|
controlName: 'annualInterestRate',
|
||||||
label: 'Interest',
|
label: this.translateService.instant('labels.inputs.Interest'),
|
||||||
value: values ? values.annualInterestRate : undefined,
|
value: values ? values.annualInterestRate : undefined,
|
||||||
type: 'number',
|
type: 'number',
|
||||||
required: true,
|
required: true,
|
||||||
@@ -367,7 +369,7 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
}),
|
}),
|
||||||
new InputBase({
|
new InputBase({
|
||||||
controlName: 'description',
|
controlName: 'description',
|
||||||
label: 'Description',
|
label: this.translateService.instant('labels.inputs.Description'),
|
||||||
value: values ? values.description : undefined,
|
value: values ? values.description : undefined,
|
||||||
required: true,
|
required: true,
|
||||||
order: 7
|
order: 7
|
||||||
@@ -378,14 +380,20 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On
|
|||||||
|
|
||||||
get recurringDepositProductInterestRateChart() {
|
get recurringDepositProductInterestRateChart() {
|
||||||
// TODO: Update once language and date settings are setup
|
// TODO: Update once language and date settings are setup
|
||||||
const dateFormat = this.settingsService.dateFormat;
|
const dateFormat = 'YYYY-MM-DD';
|
||||||
const locale = this.settingsService.language.code;
|
const locale = this.settingsService.language.code;
|
||||||
const recurringDepositProductInterestRateChart = this.recurringDepositProductInterestRateChartForm.value;
|
const recurringDepositProductInterestRateChart = this.recurringDepositProductInterestRateChartForm.value;
|
||||||
for (const chart of recurringDepositProductInterestRateChart.charts) {
|
for (const chart of recurringDepositProductInterestRateChart.charts) {
|
||||||
chart.dateFormat = dateFormat;
|
|
||||||
chart.locale = locale;
|
chart.locale = locale;
|
||||||
chart.fromDate = this.dateUtils.formatDate(chart.fromDate, dateFormat);
|
chart.dateFormat = 'yyyy-MM-dd';
|
||||||
chart.endDate = this.dateUtils.formatDate(chart.endDate, dateFormat) || '';
|
if (chart.fromDate instanceof Date) {
|
||||||
|
chart.fromDate = this.dateUtils.formatDateAsString(chart.fromDate, dateFormat);
|
||||||
|
}
|
||||||
|
if (chart.endDate) {
|
||||||
|
if (chart.endDate instanceof Date) {
|
||||||
|
chart.endDate = this.dateUtils.formatDateAsString(chart.endDate, dateFormat);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (chart.endDate === '') {
|
if (chart.endDate === '') {
|
||||||
delete chart.endDate;
|
delete chart.endDate;
|
||||||
}
|
}
|
||||||
|
|||||||
+66
-66
@@ -4,192 +4,192 @@
|
|||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Details</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Details' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Short Name:</span>
|
<span fxFlex="40%">{{'labels.inputs.Short Name' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.shortName }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.shortName }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.description">
|
<div fxFlexFill *ngIf="recurringDepositProduct.description">
|
||||||
<span fxFlex="40%">Description:</span>
|
<span fxFlex="40%">{{'labels.inputs.Description' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.description }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.description }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Currency</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Currency' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Currency:</span>
|
<span fxFlex="40%">{{'labels.inputs.Currency' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.currencyCode | find:recurringDepositProductsTemplate.currencyOptions:'code':'name' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.currencyCode | find:recurringDepositProductsTemplate.currencyOptions:'code':'name' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Decimal Places:</span>
|
<span fxFlex="40%">{{'labels.inputs.Decimal Places' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.digitsAfterDecimal }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.digitsAfterDecimal }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Currency in multiples of:</span>
|
<span fxFlex="40%">{{'labels.inputs.Currency in multiples of' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.inMultiplesOf }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.inMultiplesOf }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Terms</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Terms' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Deposit Amount:</span>
|
<span fxFlex="40%">{{'labels.inputs.Deposit Amount' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.depositAmount + ' (Min: ' + (recurringDepositProduct.minDepositAmount ? recurringDepositProduct.minDepositAmount : recurringDepositProduct.depositAmount) + ', Max: ' + (recurringDepositProduct.maxDepositAmount ? recurringDepositProduct.maxDepositAmount : recurringDepositProduct.depositAmount) + ')' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.depositAmount + ' (Min: ' + (recurringDepositProduct.minDepositAmount ? recurringDepositProduct.minDepositAmount : recurringDepositProduct.depositAmount) + ', Max: ' + (recurringDepositProduct.maxDepositAmount ? recurringDepositProduct.maxDepositAmount : recurringDepositProduct.depositAmount) + ')' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Interest Compounding Period:</span>
|
<span fxFlex="40%">{{'labels.inputs.Interest Compounding Period' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestCompoundingPeriodType | find:recurringDepositProductsTemplate.interestCompoundingPeriodTypeOptions:'id':'value' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestCompoundingPeriodType | find:recurringDepositProductsTemplate.interestCompoundingPeriodTypeOptions:'id':'value' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Interest Posting Period:</span>
|
<span fxFlex="40%">{{'labels.inputs.Interest Posting Period' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestPostingPeriodType | find:recurringDepositProductsTemplate.interestPostingPeriodTypeOptions:'id':'value' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestPostingPeriodType | find:recurringDepositProductsTemplate.interestPostingPeriodTypeOptions:'id':'value' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Interest Calculated using:</span>
|
<span fxFlex="40%">{{'labels.inputs.Interest Calculated using' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationType | find:recurringDepositProductsTemplate.interestCalculationTypeOptions:'id':'value' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationType | find:recurringDepositProductsTemplate.interestCalculationTypeOptions:'id':'value' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Days in Year:</span>
|
<span fxFlex="40%">{{'labels.inputs.Days in Year' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationDaysInYearType | find:recurringDepositProductsTemplate.interestCalculationDaysInYearTypeOptions:'id':'value' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationDaysInYearType | find:recurringDepositProductsTemplate.interestCalculationDaysInYearTypeOptions:'id':'value' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Settings</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Settings' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.lockinPeriodFrequency">
|
<div fxFlexFill *ngIf="recurringDepositProduct.lockinPeriodFrequency">
|
||||||
<span fxFlex="40%">Lock-in Period:</span>
|
<span fxFlex="40%">{{'labels.inputs.Lock-in Period' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.lockinPeriodFrequency + ' ' + (recurringDepositProduct.lockinPeriodFrequencyType | find:recurringDepositProductsTemplate.lockinPeriodFrequencyTypeOptions:'id':'value') }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.lockinPeriodFrequency + ' ' + (recurringDepositProduct.lockinPeriodFrequencyType | find:recurringDepositProductsTemplate.lockinPeriodFrequencyTypeOptions:'id':'value') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Minimum Deposit Term:</span>
|
<span fxFlex="40%">{{'labels.inputs.Minimum Deposit Term' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.minDepositTerm + ' ' + (recurringDepositProduct.minDepositTermTypeId | find:recurringDepositProductsTemplate.periodFrequencyTypeOptions:'id':'value') }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.minDepositTerm + ' ' + (recurringDepositProduct.minDepositTermTypeId | find:recurringDepositProductsTemplate.periodFrequencyTypeOptions:'id':'value') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.inMultiplesOfDepositTerm">
|
<div fxFlexFill *ngIf="recurringDepositProduct.inMultiplesOfDepositTerm">
|
||||||
<span fxFlex="40%">And thereafter, in Multiples of:</span>
|
<span fxFlex="40%">{{'labels.inputs.And thereafter, in Multiples of' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.inMultiplesOfDepositTerm + ' ' + (recurringDepositProduct.inMultiplesOfDepositTermTypeId | find:recurringDepositProductsTemplate.periodFrequencyTypeOptions:'id':'value') }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.inMultiplesOfDepositTerm + ' ' + (recurringDepositProduct.inMultiplesOfDepositTermTypeId | find:recurringDepositProductsTemplate.periodFrequencyTypeOptions:'id':'value') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.maxDepositTerm">
|
<div fxFlexFill *ngIf="recurringDepositProduct.maxDepositTerm">
|
||||||
<span fxFlex="40%">Minimum Deposit Term:</span>
|
<span fxFlex="40%">{{'labels.inputs.Minimum Deposit Term' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.maxDepositTerm + ' ' + (recurringDepositProduct.maxDepositTermTypeId | find:recurringDepositProductsTemplate.periodFrequencyTypeOptions:'id':'value') }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.maxDepositTerm + ' ' + (recurringDepositProduct.maxDepositTermTypeId | find:recurringDepositProductsTemplate.periodFrequencyTypeOptions:'id':'value') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- For Pre-mature closure -->
|
<!-- For Pre-mature closure -->
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Apply Penal Interest (less):</span>
|
<span fxFlex="40%">{{'labels.inputs.Apply Penal Interest (less)' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.preClosurePenalApplicable | yesNo }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.preClosurePenalApplicable | yesNo }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.preClosurePenalApplicable">
|
<div fxFlexFill *ngIf="recurringDepositProduct.preClosurePenalApplicable">
|
||||||
<span fxFlex="40%">Penal Interest (%):</span>
|
<span fxFlex="40%">{{'labels.inputs.Penal Interest' | translate}} (%):</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.preClosurePenalInterest + '% (' + (recurringDepositProduct.preClosurePenalInterestOnTypeId | find:recurringDepositProductsTemplate.preClosurePenalInterestOnTypeOptions:'id':'value') + ')' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.preClosurePenalInterest + '% (' + (recurringDepositProduct.preClosurePenalInterestOnTypeId | find:recurringDepositProductsTemplate.preClosurePenalInterestOnTypeOptions:'id':'value') + ')' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
|
<div fxFlexFill *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
|
||||||
<span fxFlex="40%">Recurring Deposit Type:</span>
|
<span fxFlex="40%">{{'labels.inputs.Recurring Deposit Type' | translate}}:</span>
|
||||||
<span fxFlex="60%" *ngIf="recurringDepositProduct.isMandatoryDeposit"> Mandatory </span>
|
<span fxFlex="60%" *ngIf="recurringDepositProduct.isMandatoryDeposit"> {{'labels.text.Mandatory' | translate}} </span>
|
||||||
<span fxFlex="60%" *ngIf="!recurringDepositProduct.isMandatoryDeposit"> Voluntary </span>
|
<span fxFlex="60%" *ngIf="!recurringDepositProduct.isMandatoryDeposit"> {{'labels.text.Voluntary' | translate}} </span>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Withhold Tax is Applicable:</span>
|
<span fxFlex="40%">{{'labels.inputs.Withhold Tax is Applicable' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.withHoldTax | yesNo }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.withHoldTax | yesNo }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.withHoldTax">
|
<div fxFlexFill *ngIf="recurringDepositProduct.withHoldTax">
|
||||||
<span fxFlex="40%">Tax Group:</span>
|
<span fxFlex="40%">{{'labels.inputs.Tax Group' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.taxGroupId | find:recurringDepositProductsTemplate.taxGroupOptions:'id':'name' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.taxGroupId | find:recurringDepositProductsTemplate.taxGroupOptions:'id':'name' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" *ngIf="recurringDepositProduct.charts.length !== 0">
|
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" *ngIf="recurringDepositProduct.charts.length !== 0">
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Interest Rate Charts</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Interest Rate Charts' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill *ngFor="let chart of recurringDepositProduct.charts; let chartIndex = index" fxLayout="row wrap" fxLayout.lt-md="column">
|
<div fxFlexFill *ngFor="let chart of recurringDepositProduct.charts; let chartIndex = index" fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="chart.name">
|
<div fxFlexFill *ngIf="chart.name">
|
||||||
<span fxFlex="40%">Name:</span>
|
<span fxFlex="40%">{{'labels.inputs.Name' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ chart.name }}</span>
|
<span fxFlex="60%">{{ chart.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Valid from Date:</span>
|
<span fxFlex="40%">{{'labels.inputs.From Date' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ chart.fromDate | dateFormat }}</span>
|
<span fxFlex="60%">{{ chart.fromDate | dateFormat }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="chart.endDate">
|
<div fxFlexFill *ngIf="chart.endDate">
|
||||||
<span fxFlex="40%">End Date:</span>
|
<span fxFlex="40%">{{'labels.inputs.End Date' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ chart.endDate | dateFormat }}</span>
|
<span fxFlex="60%">{{ chart.endDate | dateFormat }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="chart.description">
|
<div fxFlexFill *ngIf="chart.description">
|
||||||
<span fxFlex="40%">Description:</span>
|
<span fxFlex="40%">{{'labels.inputs.Description' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ chart.description }}</span>
|
<span fxFlex="60%">{{ chart.description }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Primary Grouping by Amount:</span>
|
<span fxFlex="40%">{{'labels.inputs.Primary Grouping by Amount' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.isPrimaryGroupingByAmount | yesNo }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.isPrimaryGroupingByAmount | yesNo }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chart.chartSlabs" *ngIf="chart.chartSlabs.length !== 0" multiTemplateDataRows>
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chart.chartSlabs" *ngIf="chart.chartSlabs.length !== 0" multiTemplateDataRows>
|
||||||
|
|
||||||
<ng-container matColumnDef="period">
|
<ng-container matColumnDef="period">
|
||||||
<th mat-header-cell *matHeaderCellDef> Period </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Period' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.fromPeriod + ' - ' + chartSlab.toPeriod + ' ' + (chartSlab.periodType | find:recurringDepositProductsTemplate.chartTemplate.periodTypes:'id':'value') }}
|
{{ chartSlab.fromPeriod + ' - ' + chartSlab.toPeriod + ' ' + (chartSlab.periodType | find:recurringDepositProductsTemplate.chartTemplate.periodTypes:'id':'value') }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amountRange">
|
<ng-container matColumnDef="amountRange">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount Range </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount Range' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.amountRangeFrom + ' - ' + chartSlab.amountRangeTo }}
|
{{ chartSlab.amountRangeFrom + ' - ' + chartSlab.amountRangeTo }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="annualInterestRate">
|
<ng-container matColumnDef="annualInterestRate">
|
||||||
<th mat-header-cell *matHeaderCellDef> Interest </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Interest' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.annualInterestRate }}
|
{{ chartSlab.annualInterestRate | formatNumber }} %
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="description">
|
<ng-container matColumnDef="description">
|
||||||
<th mat-header-cell *matHeaderCellDef> Description </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Description' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.description }}
|
{{ chartSlab.description }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
|
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
|
||||||
<button mat-button color="primary" (click)="expandChartSlabIndex[chartIndex] = expandChartSlabIndex[chartIndex] === chartSlabIndex ? null : chartSlabIndex" [disabled]="chartSlab.incentives.length === 0">
|
<button mat-button color="primary" (click)="expandChartSlabIndex[chartIndex] = expandChartSlabIndex[chartIndex] === chartSlabIndex ? null : chartSlabIndex" [disabled]="chartSlab.incentives.length === 0">
|
||||||
<span *ngIf="expandChartSlabIndex[chartIndex] !== chartSlabIndex">
|
<span *ngIf="expandChartSlabIndex[chartIndex] !== chartSlabIndex">
|
||||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>
|
<fa-icon icon="eye" class="m-r-10"></fa-icon>
|
||||||
View Incentives
|
{{'labels.buttons.View Incentives' | translate}}
|
||||||
</span>
|
</span>
|
||||||
<span *ngIf="expandChartSlabIndex[chartIndex] === chartSlabIndex">
|
<span *ngIf="expandChartSlabIndex[chartIndex] === chartSlabIndex">
|
||||||
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
|
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
|
||||||
Hide Incentives
|
{{'labels.buttons.Hide Incentives' | translate}}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@@ -201,34 +201,34 @@
|
|||||||
<mat-card fxLayout="row wrap" fxFlexFill>
|
<mat-card fxLayout="row wrap" fxFlexFill>
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlex="23%">
|
<h4 class="mat-h4" fxFlex="23%">
|
||||||
Incentives
|
{{'labels.heading.Incentives' | translate}}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
|
||||||
|
|
||||||
<ng-container matColumnDef="entityType">
|
<ng-container matColumnDef="entityType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Entity Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Entity Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.entityType | find:recurringDepositProductsTemplate.chartTemplate.entityTypeOptions:'id':'value' }}
|
{{ incentive.entityType | find:recurringDepositProductsTemplate.chartTemplate.entityTypeOptions:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="attributeName">
|
<ng-container matColumnDef="attributeName">
|
||||||
<th mat-header-cell *matHeaderCellDef> Attribute Name </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Attribute Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.attributeName | find:recurringDepositProductsTemplate.chartTemplate.attributeNameOptions:'id':'value' }}
|
{{ incentive.attributeName | find:recurringDepositProductsTemplate.chartTemplate.attributeNameOptions:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="conditionType">
|
<ng-container matColumnDef="conditionType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Condition Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Condition Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.conditionType | find:recurringDepositProductsTemplate.chartTemplate.conditionTypeOptions:'id':'value' }}
|
{{ incentive.conditionType | find:recurringDepositProductsTemplate.chartTemplate.conditionTypeOptions:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="attributeValue">
|
<ng-container matColumnDef="attributeValue">
|
||||||
<th mat-header-cell *matHeaderCellDef> Attribute Value </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Attribute Value' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
|
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
|
||||||
<span *ngSwitchCase="2">{{ incentive.attributeValue | find:recurringDepositProductsTemplate.chartTemplate.genderOptions:'id':'name' }}</span>
|
<span *ngSwitchCase="2">{{ incentive.attributeValue | find:recurringDepositProductsTemplate.chartTemplate.genderOptions:'id':'name' }}</span>
|
||||||
<span *ngSwitchCase="3">{{ incentive.attributeValue }}</span>
|
<span *ngSwitchCase="3">{{ incentive.attributeValue }}</span>
|
||||||
@@ -238,16 +238,16 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incentiveType">
|
<ng-container matColumnDef="incentiveType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Incentive Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Incentive Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.incentiveType | find:recurringDepositProductsTemplate.chartTemplate.incentiveTypeOptions:'id':'value'}}
|
{{ incentive.incentiveType | find:recurringDepositProductsTemplate.chartTemplate.incentiveTypeOptions:'id':'value'}}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amount">
|
<ng-container matColumnDef="amount">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.amount }}
|
{{ incentive.amount | formatNumber }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
@@ -275,35 +275,35 @@
|
|||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.charges.length" fxLayout="row wrap" fxLayout.lt-md="column">
|
<div fxFlexFill *ngIf="recurringDepositProduct.charges.length" fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Charges</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Charges' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef> Name </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.name + ', ' + charge.currency.displaySymbol }}
|
{{ charge.name + ', ' + charge.currency.displaySymbol }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeCalculationType">
|
<ng-container matColumnDef="chargeCalculationType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.chargeCalculationType.value }}
|
{{ charge.chargeCalculationType.value }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amount">
|
<ng-container matColumnDef="amount">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.amount }}
|
{{ charge.amount }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeTimeType">
|
<ng-container matColumnDef="chargeTimeType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Collected On </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.chargeTimeType.value }}
|
{{ charge.chargeTimeType.value }}
|
||||||
</td>
|
</td>
|
||||||
@@ -316,7 +316,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Accounting</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Accounting' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
@@ -328,25 +328,25 @@
|
|||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.advancedAccountingRules && (recurringDepositProduct.paymentChannelToFundSourceMappings?.length || recurringDepositProduct.feeToIncomeAccountMappings?.length || recurringDepositProduct.penaltyToIncomeAccountMappings?.length)" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
<div *ngIf="recurringDepositProduct.advancedAccountingRules && (recurringDepositProduct.paymentChannelToFundSourceMappings?.length || recurringDepositProduct.feeToIncomeAccountMappings?.length || recurringDepositProduct.penaltyToIncomeAccountMappings?.length)" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Advanced Accounting Rules</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Advanced Accounting Rules' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider fxFlexFill></mat-divider>
|
<mat-divider fxFlexFill></mat-divider>
|
||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
<div *ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlexFill>Fund Sources for Payment Channels</h4>
|
<h4 class="mat-h4" fxFlexFill>{{'labels.heading.Fund Sources for Payment Channels' | translate}}</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.paymentChannelToFundSourceMappings">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.paymentChannelToFundSourceMappings">
|
||||||
|
|
||||||
<ng-container matColumnDef="paymentTypeId">
|
<ng-container matColumnDef="paymentTypeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Payment Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Payment Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let paymentFundSource">
|
<td mat-cell *matCellDef="let paymentFundSource">
|
||||||
{{ paymentFundSource.paymentTypeId | find:recurringDepositProductsTemplate.paymentTypeOptions:'id':'name' }}
|
{{ paymentFundSource.paymentTypeId | find:recurringDepositProductsTemplate.paymentTypeOptions:'id':'name' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="fundSourceAccountId">
|
<ng-container matColumnDef="fundSourceAccountId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Fund Source </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fund Source' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let paymentFundSource">
|
<td mat-cell *matCellDef="let paymentFundSource">
|
||||||
{{ paymentFundSource.fundSourceAccountId | find:recurringDepositProductsTemplate.accountingMappingOptions.assetAccountOptions:'id':'name' }}
|
{{ paymentFundSource.fundSourceAccountId | find:recurringDepositProductsTemplate.accountingMappingOptions.assetAccountOptions:'id':'name' }}
|
||||||
</td>
|
</td>
|
||||||
@@ -361,19 +361,19 @@
|
|||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.feeToIncomeAccountMappings?.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
<div *ngIf="recurringDepositProduct.feeToIncomeAccountMappings?.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlexFill>Fees to Specific Income Accounts</h4>
|
<h4 class="mat-h4" fxFlexFill>{{'labels.heading.Fees to Specific Income Accounts' | translate}}</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.feeToIncomeAccountMappings">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.feeToIncomeAccountMappings">
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
<ng-container matColumnDef="chargeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Fees </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fees' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
{{ feesIncome.chargeId | find:recurringDepositProductsTemplate.chargeOptions:'id':'name' }}
|
{{ feesIncome.chargeId | find:recurringDepositProductsTemplate.chargeOptions:'id':'name' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Income Account </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
{{ feesIncome.incomeAccountId | find:recurringDepositProductsTemplate.accountingMappingOptions.incomeAccountOptions:'id':'name' }}
|
{{ feesIncome.incomeAccountId | find:recurringDepositProductsTemplate.accountingMappingOptions.incomeAccountOptions:'id':'name' }}
|
||||||
</td>
|
</td>
|
||||||
@@ -388,19 +388,19 @@
|
|||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.penaltyToIncomeAccountMappings?.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
<div *ngIf="recurringDepositProduct.penaltyToIncomeAccountMappings?.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlexFill>Penalties to Specific Income Accounts</h4>
|
<h4 class="mat-h4" fxFlexFill>{{'labels.heading.Penalties to Specific Income Accounts' | translate}}</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.penaltyToIncomeAccountMappings">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.penaltyToIncomeAccountMappings">
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
<ng-container matColumnDef="chargeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Penalty </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Penalty' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
{{ penaltyIncome.chargeId | find:recurringDepositProductsTemplate.penaltyOptions:'id':'name' }}
|
{{ penaltyIncome.chargeId | find:recurringDepositProductsTemplate.penaltyOptions:'id':'name' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Income Account </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
{{ penaltyIncome.incomeAccountId | find:recurringDepositProductsTemplate.accountingMappingOptions.incomeAccountOptions:'id':'name' }}
|
{{ penaltyIncome.incomeAccountId | find:recurringDepositProductsTemplate.accountingMappingOptions.incomeAccountOptions:'id':'name' }}
|
||||||
</td>
|
</td>
|
||||||
@@ -420,12 +420,12 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button [routerLink]="['../']">
|
<button mat-raised-button [routerLink]="['../']">
|
||||||
Cancel
|
{{'labels.buttons.Cancel' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button color="primary" (click)="submit.emit()">
|
<button mat-raised-button color="primary" (click)="submit.emit()">
|
||||||
Submit
|
{{'labels.buttons.Submit' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+26
-26
@@ -3,26 +3,26 @@
|
|||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="isMandatoryDeposit" class="margin-v">
|
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="isMandatoryDeposit" class="margin-v">
|
||||||
Is Mandatory Deposit?
|
{{'labels.inputs.Is Mandatory Deposit' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="adjustAdvanceTowardsFuturePayments" class="margin-v">
|
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="adjustAdvanceTowardsFuturePayments" class="margin-v">
|
||||||
Adjust advance payments toward future installments?
|
{{'labels.inputs.Adjust advance payments toward future installments' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="allowWithdrawal" class="margin-v">
|
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="allowWithdrawal" class="margin-v">
|
||||||
Allow Withdrawals?
|
{{'labels.inputs.Allow Withdrawals' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<h4 fxFlex="98%" class="mat-h4">Lock-in Period</h4>
|
<h4 fxFlex="98%" class="mat-h4">{{'labels.inputs.Lock-in Period' | translate}}</h4>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Frequency</mat-label>
|
<mat-label>{{'labels.inputs.Frequency' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="lockinPeriodFrequency" matTooltip="The number at which lock in period occurs." >
|
<input type="number" matInput formControlName="lockinPeriodFrequency" matTooltip="The number at which lock in period occurs." >
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Type</mat-label>
|
<mat-label>{{'labels.inputs.Type' | translate}}</mat-label>
|
||||||
<mat-select formControlName="lockinPeriodFrequencyType">
|
<mat-select formControlName="lockinPeriodFrequencyType">
|
||||||
<mat-option *ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData"
|
<mat-option *ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData"
|
||||||
[value]="lockinPeriodFrequencyType.id">
|
[value]="lockinPeriodFrequencyType.id">
|
||||||
@@ -31,37 +31,37 @@
|
|||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<h4 fxFlex="98%" class="mat-h4">Minimum Deposit Term</h4>
|
<h4 fxFlex="98%" class="mat-h4">{{'labels.inputs.Minimum Deposit Term' | translate}}</h4>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Frequency</mat-label>
|
<mat-label>{{'labels.inputs.Frequency' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="minDepositTerm" matTooltip="The number at which minimum deposit occurs." required>
|
<input type="number" matInput formControlName="minDepositTerm" matTooltip="The number at which minimum deposit occurs." required>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Minimum Deposit Term Frequency is <strong>required</strong>
|
{{'labels.inputs.Minimum Deposit Term Frequency' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Frequency Type</mat-label>
|
<mat-label>{{'labels.inputs.Frequency Type' | translate}}</mat-label>
|
||||||
<mat-select formControlName="minDepositTermTypeId" required>
|
<mat-select formControlName="minDepositTermTypeId" required>
|
||||||
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
|
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
|
||||||
{{ periodFrequencyType.value }}
|
{{ periodFrequencyType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Minimum Deposit Term Frequency Type is <strong>required</strong>
|
{{'labels.inputs.Minimum Deposit Term Frequency Type' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<h4 fxFlex="98%" class="mat-h4">And thereafter, in Multiples of</h4>
|
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.And thereafter, in Multiples of' | translate}}</h4>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Frequency</mat-label>
|
<mat-label>{{'labels.inputs.Frequency' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="inMultiplesOfDepositTerm" matTooltip="The number at which multiple deposits occurs.">
|
<input type="number" matInput formControlName="inMultiplesOfDepositTerm" matTooltip="The number at which multiple deposits occurs.">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Type</mat-label>
|
<mat-label>{{'labels.inputs.Type' | translate}}</mat-label>
|
||||||
<mat-select formControlName="inMultiplesOfDepositTermTypeId">
|
<mat-select formControlName="inMultiplesOfDepositTermTypeId">
|
||||||
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
|
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
|
||||||
{{ periodFrequencyType.value }}
|
{{ periodFrequencyType.value }}
|
||||||
@@ -69,15 +69,15 @@
|
|||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<h4 fxFlex="98%" class="mat-h4">Maximum Deposit Term</h4>
|
<h4 fxFlex="98%" class="mat-h4">{{'labels.inputs.Maximum Deposit Term' | translate}}</h4>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Frequency</mat-label>
|
<mat-label>{{'labels.inputs.Frequency' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="maxDepositTerm" matTooltip="The number at which minimum deposit occurs.">
|
<input type="number" matInput formControlName="maxDepositTerm" matTooltip="The number at which minimum deposit occurs.">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Type</mat-label>
|
<mat-label>{{'labels.inputs.Type' | translate}}</mat-label>
|
||||||
<mat-select formControlName="maxDepositTermTypeId">
|
<mat-select formControlName="maxDepositTermTypeId">
|
||||||
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
|
<mat-option *ngFor="let periodFrequencyType of periodFrequencyTypeData" [value]="periodFrequencyType.id">
|
||||||
{{ periodFrequencyType.value }}
|
{{ periodFrequencyType.value }}
|
||||||
@@ -87,19 +87,19 @@
|
|||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
|
|
||||||
<h4 fxFlex="23%" class="mat-h4">For Pre-mature closure</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">
|
<mat-checkbox fxFlex="73%" labelPosition="before" formControlName="preClosurePenalApplicable" class="margin-v">
|
||||||
Apply Penal Interest (less)
|
{{'labels.inputs.Apply Penal Interest (less)' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Penal Interest (%)</mat-label>
|
<mat-label>{{'labels.inputs.Penal Interest' | translate}} (%)</mat-label>
|
||||||
<input type="number" matInput formControlName="preClosurePenalInterest">
|
<input type="number" matInput formControlName="preClosurePenalInterest">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Period</mat-label>
|
<mat-label>{{'labels.inputs.Period' | translate}}</mat-label>
|
||||||
<mat-select formControlName="preClosurePenalInterestOnTypeId">
|
<mat-select formControlName="preClosurePenalInterestOnTypeId">
|
||||||
<mat-option *ngFor="let preClosurePenalInterestOnType of preClosurePenalInterestOnTypeData"
|
<mat-option *ngFor="let preClosurePenalInterestOnType of preClosurePenalInterestOnTypeData"
|
||||||
[value]="preClosurePenalInterestOnType.id">
|
[value]="preClosurePenalInterestOnType.id">
|
||||||
@@ -111,18 +111,18 @@
|
|||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="withHoldTax" class="margin-v">
|
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="withHoldTax" class="margin-v">
|
||||||
Is Withhold Tax Applicable?
|
{{'labels.inputs.Is Withhold Tax Applicable' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%" *ngIf="recurringDepositProductSettingsForm.value.withHoldTax">
|
<mat-form-field fxFlex="48%" *ngIf="recurringDepositProductSettingsForm.value.withHoldTax">
|
||||||
<mat-label>Tax Group</mat-label>
|
<mat-label>{{'labels.inputs.Tax Group' | translate}}</mat-label>
|
||||||
<mat-select formControlName="taxGroupId" required>
|
<mat-select formControlName="taxGroupId" required>
|
||||||
<mat-option *ngFor="let taxGroup of taxGroupData" [value]="taxGroup.id">
|
<mat-option *ngFor="let taxGroup of taxGroupData" [value]="taxGroup.id">
|
||||||
{{ taxGroup.name }}
|
{{ taxGroup.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Tax Group is <strong>required</strong>
|
{{'labels.inputs.Tax Group' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
@@ -131,10 +131,10 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext>
|
<button mat-raised-button matStepperNext>
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+15
-15
@@ -2,73 +2,73 @@
|
|||||||
|
|
||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 fxFlex="98%" class="mat-h4">Deposit Amount</h4>
|
<h4 fxFlex="98%" class="mat-h4">{{'labels.inputs.Deposit Amount' | translate}}</h4>
|
||||||
|
|
||||||
<mat-form-field fxFlex="31%">
|
<mat-form-field fxFlex="31%">
|
||||||
<mat-label>Minimum</mat-label>
|
<mat-label>{{'labels.inputs.Minimum' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="minDepositAmount">
|
<input type="number" matInput formControlName="minDepositAmount">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="31%">
|
<mat-form-field fxFlex="31%">
|
||||||
<mat-label>Default</mat-label>
|
<mat-label>{{'labels.inputs.Default' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="depositAmount" required>
|
<input type="number" matInput formControlName="depositAmount" required>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Default Deposit Amount is <strong>required</strong>
|
{{'labels.inputs.Default' | translate}} {{'labels.inputs.Deposit Amount' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="31%">
|
<mat-form-field fxFlex="31%">
|
||||||
<mat-label>Maximum</mat-label>
|
<mat-label>{{'labels.inputs.Maximum' | translate}}</mat-label>
|
||||||
<input type="number" matInput formControlName="maxDepositAmount">
|
<input type="number" matInput formControlName="maxDepositAmount">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Interest Compounding Period</mat-label>
|
<mat-label>{{'labels.inputs.Interest Compounding Period' | translate}}</mat-label>
|
||||||
<mat-select formControlName="interestCompoundingPeriodType" required>
|
<mat-select formControlName="interestCompoundingPeriodType" required>
|
||||||
<mat-option *ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData" [value]="interestCompoundingPeriodType.id">
|
<mat-option *ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData" [value]="interestCompoundingPeriodType.id">
|
||||||
{{ interestCompoundingPeriodType.value }}
|
{{ interestCompoundingPeriodType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Interest Compounding Period is <strong>required</strong>
|
{{'labels.inputs.Interest Compounding Period' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Interest Posting Period</mat-label>
|
<mat-label>{{'labels.inputs.Interest Posting Period' | translate}}</mat-label>
|
||||||
<mat-select formControlName="interestPostingPeriodType" required>
|
<mat-select formControlName="interestPostingPeriodType" required>
|
||||||
<mat-option *ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData" [value]="interestPostingPeriodType.id">
|
<mat-option *ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData" [value]="interestPostingPeriodType.id">
|
||||||
{{ interestPostingPeriodType.value }}
|
{{ interestPostingPeriodType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Interest Posting Period is <strong>required</strong>
|
{{'labels.inputs.Interest Posting Period' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Interest Calculated using</mat-label>
|
<mat-label>{{'labels.inputs.Interest Calculated using' | translate}}</mat-label>
|
||||||
<mat-select formControlName="interestCalculationType" required>
|
<mat-select formControlName="interestCalculationType" required>
|
||||||
<mat-option *ngFor="let interestCalculationType of interestCalculationTypeData" [value]="interestCalculationType.id">
|
<mat-option *ngFor="let interestCalculationType of interestCalculationTypeData" [value]="interestCalculationType.id">
|
||||||
{{ interestCalculationType.value }}
|
{{ interestCalculationType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Interest Calculated using is <strong>required</strong>
|
{{'labels.inputs.Interest Calculated using' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>Days in Year</mat-label>
|
<mat-label>{{'labels.inputs.Days in Year' | translate}}</mat-label>
|
||||||
<mat-select formControlName="interestCalculationDaysInYearType" required>
|
<mat-select formControlName="interestCalculationDaysInYearType" required>
|
||||||
<mat-option *ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData" [value]="interestCalculationDaysInYearType.id">
|
<mat-option *ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData" [value]="interestCalculationDaysInYearType.id">
|
||||||
{{ interestCalculationDaysInYearType.value }}
|
{{ interestCalculationDaysInYearType.value }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error>
|
<mat-error>
|
||||||
Days in Year is <strong>required</strong>
|
{{'labels.inputs.Days in Year' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
@@ -77,10 +77,10 @@
|
|||||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button matStepperPrevious>
|
<button mat-raised-button matStepperPrevious>
|
||||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||||
Previous
|
{{'labels.buttons.Previous' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button matStepperNext>
|
<button mat-raised-button matStepperNext>
|
||||||
Next
|
{{'labels.buttons.Next' | translate}}
|
||||||
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+13
-13
@@ -3,7 +3,7 @@
|
|||||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission='"CREATE_RECURRINGDEPOSITPRODUCT"'
|
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission='"CREATE_RECURRINGDEPOSITPRODUCT"'
|
||||||
matTooltip="Create Recurring Deposit Product" matTooltipPosition="above">
|
matTooltip="Create Recurring Deposit Product" matTooltipPosition="above">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Create Recurring Deposit Product
|
{{'labels.buttons.Create Recurring Deposit Product' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -22,12 +22,12 @@
|
|||||||
<table mat-table [dataSource]="dataSource" matSort>
|
<table mat-table [dataSource]="dataSource" matSort>
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let recurringDepositProduct"> {{ recurringDepositProduct.name }} </td>
|
<td mat-cell *matCellDef="let recurringDepositProduct"> {{ recurringDepositProduct.name }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="shortName">
|
<ng-container matColumnDef="shortName">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Short Name </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Short Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let recurringDepositProduct"> {{ recurringDepositProduct.shortName }} </td>
|
<td mat-cell *matCellDef="let recurringDepositProduct"> {{ recurringDepositProduct.shortName }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
@@ -46,26 +46,26 @@
|
|||||||
<h2>Create recurring deposit product</h2>
|
<h2>Create recurring deposit product</h2>
|
||||||
<p class="mw300">This option allows you to create new recurring product.</p>
|
<p class="mw300">This option allows you to create new recurring product.</p>
|
||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button>
|
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">Back</button>
|
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{'labels.buttons.Back' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter,filter, 'bottom', true)">Next</button>
|
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter,filter, 'bottom', true)">{{'labels.buttons.Next' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<ng-template #templateFilter let-popover="popover">
|
<ng-template #templateFilter let-popover="popover">
|
||||||
<h4>Search bar to filter recurring deposit products.</h4>
|
<h4>Search bar to filter recurring deposit products.</h4>
|
||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button>
|
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonCreateRecurringProduct,buttonCreateRecurringProduct , 'bottom', true)">Back</button>
|
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonCreateRecurringProduct,buttonCreateRecurringProduct , 'bottom', true)">{{'labels.buttons.Back' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateRecurringProductsTable,recurringProductsTable, 'top', true)">Next</button>
|
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateRecurringProductsTable,recurringProductsTable, 'top', true)">{{'labels.buttons.Next' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<ng-template #templateRecurringProductsTable let-popover="popover">
|
<ng-template #templateRecurringProductsTable let-popover="popover">
|
||||||
<h4 class="mw300">List of recurring deposit products in the organization. For more details click: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/102629552/Recurring+Deposit" target="_blank">Recurring Deposit Products</a></h4>
|
<h4 class="mw300">List of recurring deposit products in the organization. For more details click: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/102629552/Recurring+Deposit" target="_blank">{{'labels.heading.Recurring Deposit Products' | translate}}</a></h4>
|
||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button>
|
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter,filter, 'bottom', true)">Back</button>
|
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter,filter, 'bottom', true)">{{'labels.buttons.Back' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">Next</button>
|
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{'labels.buttons.Next' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
+66
-66
@@ -1,7 +1,7 @@
|
|||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||||
<button mat-raised-button color="primary" [routerLink]="['../edit']">
|
<button mat-raised-button color="primary" [routerLink]="['../edit']">
|
||||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||||
Edit
|
{{'labels.buttons.Edit' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -17,81 +17,81 @@
|
|||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Details</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Details' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Short Name:</span>
|
<span fxFlex="40%">{{'labels.inputs.Short Name' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.shortName }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.shortName }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.description">
|
<div fxFlexFill *ngIf="recurringDepositProduct.description">
|
||||||
<span fxFlex="40%">Description:</span>
|
<span fxFlex="40%">{{'labels.inputs.Description' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.description }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.description }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Currency Details</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Currency' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Currency:</span>
|
<span fxFlex="40%">{{'labels.heading.Currency' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.currency.name }}</span>
|
<span fxFlex="60%">({{ recurringDepositProduct.currency.code }}) {{ recurringDepositProduct.currency.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Decimal Places:</span>
|
<span fxFlex="40%">{{'labels.inputs.Decimal Places' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.currency.decimalPlaces }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.currency.decimalPlaces }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Currency in Multiples Of:</span>
|
<span fxFlex="40%">{{'labels.inputs.Currency in multiples of' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.currency.inMultiplesOf | formatNumber}}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.currency.inMultiplesOf | formatNumber}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Terms</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Terms' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Deposit Amount:</span>
|
<span fxFlex="40%">{{'labels.inputs.Deposit Amount' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.depositAmount + ' (Min: ' + (recurringDepositProduct.minDepositAmount ? recurringDepositProduct.minDepositAmount : recurringDepositProduct.depositAmount) + ', Max: ' + (recurringDepositProduct.maxDepositAmount ? recurringDepositProduct.maxDepositAmount : recurringDepositProduct.depositAmount) + ')' }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.depositAmount + ' (Min: ' + (recurringDepositProduct.minDepositAmount ? recurringDepositProduct.minDepositAmount : recurringDepositProduct.depositAmount) + ', Max: ' + (recurringDepositProduct.maxDepositAmount ? recurringDepositProduct.maxDepositAmount : recurringDepositProduct.depositAmount) + ')' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Interest Compounding Period:</span>
|
<span fxFlex="40%">{{'labels.inputs.Interest Compounding Period' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestCompoundingPeriodType.value }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestCompoundingPeriodType.value }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Interest Posting Period:</span>
|
<span fxFlex="40%">{{'labels.inputs.Interest Posting Period' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestPostingPeriodType.value }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestPostingPeriodType.value }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Interested Calculated Using:</span>
|
<span fxFlex="40%">{{'labels.inputs.Interest Calculated using' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationType.value }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationType.value }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Days in Years:</span>
|
<span fxFlex="40%">{{'labels.inputs.Days in Year' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationDaysInYearType.value }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.interestCalculationDaysInYearType.value }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Settings</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Settings' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.lockinPeriodFrequency">
|
<div fxFlexFill *ngIf="recurringDepositProduct.lockinPeriodFrequency">
|
||||||
<span fxFlex="40%">Lock-in Period:</span>
|
<span fxFlex="40%">{{'labels.inputs.Lock-in Period' | translate}}:</span>
|
||||||
<span fxFlex="60%" *ngIf="recurringDepositProduct.lockinPeriodFrequency !== undefined">
|
<span fxFlex="60%" *ngIf="recurringDepositProduct.lockinPeriodFrequency !== undefined">
|
||||||
{{ recurringDepositProduct.lockinPeriodFrequency }}
|
{{ recurringDepositProduct.lockinPeriodFrequency }}
|
||||||
{{ recurringDepositProduct.lockinPeriodFrequencyType.value }}</span>
|
{{ recurringDepositProduct.lockinPeriodFrequencyType.value }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.minDepositTerm">
|
<div fxFlexFill *ngIf="recurringDepositProduct.minDepositTerm">
|
||||||
<span fxFlex="40%">Minimum Deposit Term:</span>
|
<span fxFlex="40%">{{'labels.inputs.Minimum Deposit Term' | translate}}:</span>
|
||||||
<span fxFlex="60%"
|
<span fxFlex="60%"
|
||||||
*ngIf="recurringDepositProduct.minDepositTerm !== undefined">{{ recurringDepositProduct.minDepositTerm }}
|
*ngIf="recurringDepositProduct.minDepositTerm !== undefined">{{ recurringDepositProduct.minDepositTerm }}
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.maxDepositTerm">
|
<div fxFlexFill *ngIf="recurringDepositProduct.maxDepositTerm">
|
||||||
<span fxFlex="40%">Maximum Deposit Term:</span>
|
<span fxFlex="40%">{{'labels.inputs.Maximum Deposit Term' | translate}}:</span>
|
||||||
<span fxFlex="60%"
|
<span fxFlex="60%"
|
||||||
*ngIf="recurringDepositProduct.maxDepositTerm !== undefined">{{ recurringDepositProduct.maxDepositTerm }}
|
*ngIf="recurringDepositProduct.maxDepositTerm !== undefined">{{ recurringDepositProduct.maxDepositTerm }}
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.inMultipleOfDepositTerm">
|
<div fxFlexFill *ngIf="recurringDepositProduct.inMultipleOfDepositTerm">
|
||||||
<span fxFlex="40%">Deposit Term In multiple of:</span>
|
<span fxFlex="40%">{{'labels.inputs.Deposit Term In multiple of' | translate}}:</span>
|
||||||
<span fxFlex="60%"
|
<span fxFlex="60%"
|
||||||
*ngIf="recurringDepositProduct.inMultipleOfDepositTerm !== undefined">{{ recurringDepositProduct.inMultipleOfDepositTerm }}
|
*ngIf="recurringDepositProduct.inMultipleOfDepositTerm !== undefined">{{ recurringDepositProduct.inMultipleOfDepositTerm }}
|
||||||
-
|
-
|
||||||
@@ -115,65 +115,65 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
|
<div fxFlexFill *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
|
||||||
<span fxFlex="40%">Recurring Deposit Type:</span>
|
<span fxFlex="40%">{{'labels.inputs.Recurring Deposit Type' | translate}}:</span>
|
||||||
<span fxFlex="60%" *ngIf="recurringDepositProduct.isMandatoryDeposit"> Mandatory </span>
|
<span fxFlex="60%" *ngIf="recurringDepositProduct.isMandatoryDeposit"> {{'labels.text.Mandatory' | translate}} </span>
|
||||||
<span fxFlex="60%" *ngIf="!recurringDepositProduct.isMandatoryDeposit"> Voluntary </span>
|
<span fxFlex="60%" *ngIf="!recurringDepositProduct.isMandatoryDeposit"> {{'labels.text.Voluntary' | translate}} </span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.preClosurePenalInterest">
|
<div fxFlexFill *ngIf="recurringDepositProduct.preClosurePenalInterest">
|
||||||
<span fxFlex="40%">Apply penal interest (less):</span>
|
<span fxFlex="40%">{{'labels.inputs.Apply penal interest (less)' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{recurringDepositProduct.preClosurePenalInterest}} % On
|
<span fxFlex="60%"><span class="m-r-5">{{recurringDepositProduct.preClosurePenalInterest}}</span>%<span class="m-r-5">On</span>
|
||||||
|
{{recurringDepositProduct.preClosurePenalInterestOnType.value}}
|
||||||
{{recurringDepositProduct.preClosurePenalInterestOnType.value}}</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Is withhold tax Applicable:</span>
|
<span fxFlex="40%">{{'labels.inputs.Withhold Tax is Applicable' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.withHoldTax }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.withHoldTax | yesNo }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.withHoldTax">
|
<div fxFlexFill *ngIf="recurringDepositProduct.withHoldTax">
|
||||||
<span fxFlex="40%">Withhold Tax group:</span>
|
<span fxFlex="40%">{{'labels.inputs.Withhold Tax group' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.taxGroup.name }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.taxGroup.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.activeChart" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" >
|
<div *ngIf="recurringDepositProduct.activeChart" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" >
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Interest Rate Charts</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Interest Rate Charts' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.activeChart.name">
|
<div fxFlexFill *ngIf="recurringDepositProduct.activeChart.name">
|
||||||
<span fxFlex="40%">Name:</span>
|
<span fxFlex="40%">{{'labels.inputs.Name' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.name }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Valid from Date:</span>
|
<span fxFlex="40%">{{'labels.inputs.Valid from Date' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.fromDate | dateFormat }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.fromDate | dateFormat }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.activeChart.endDate">
|
<div fxFlexFill *ngIf="recurringDepositProduct.activeChart.endDate">
|
||||||
<span fxFlex="40%">End Date:</span>
|
<span fxFlex="40%">{{'labels.inputs.End Date' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.endDate | dateFormat }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.endDate | dateFormat }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.activeChart.description">
|
<div fxFlexFill *ngIf="recurringDepositProduct.activeChart.description">
|
||||||
<span fxFlex="40%">Description:</span>
|
<span fxFlex="40%">{{'labels.inputs.Description' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.description }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.description }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill>
|
<div fxFlexFill>
|
||||||
<span fxFlex="40%">Primary Grouping by Amount:</span>
|
<span fxFlex="40%">{{'labels.inputs.Primary Grouping by Amount' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.isPrimaryGroupingByAmount | yesNo }}</span>
|
<span fxFlex="60%">{{ recurringDepositProduct.activeChart.isPrimaryGroupingByAmount | yesNo }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.activeChart.chartSlabs" multiTemplateDataRows>
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.activeChart.chartSlabs" multiTemplateDataRows>
|
||||||
|
|
||||||
<ng-container matColumnDef="period">
|
<ng-container matColumnDef="period">
|
||||||
<th mat-header-cell *matHeaderCellDef> Period </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Period' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
<div *ngIf="chartSlab.fromPeriod !== undefined">
|
<div *ngIf="chartSlab.fromPeriod !== undefined">
|
||||||
{{ chartSlab.fromPeriod }} - {{ chartSlab.toPeriod }} {{ chartSlab.periodType.value }}
|
{{ chartSlab.fromPeriod }} - {{ chartSlab.toPeriod }} {{ chartSlab.periodType.value }}
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amountRange">
|
<ng-container matColumnDef="amountRange">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount Range </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount Range' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
<div *ngIf="chartSlab.amountRangeFrom !== undefined">
|
<div *ngIf="chartSlab.amountRangeFrom !== undefined">
|
||||||
{{ chartSlab.amountRangeFrom }} - {{ chartSlab.amountRangeTo }}
|
{{ chartSlab.amountRangeFrom }} - {{ chartSlab.amountRangeTo }}
|
||||||
@@ -198,30 +198,30 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="annualInterestRate">
|
<ng-container matColumnDef="annualInterestRate">
|
||||||
<th mat-header-cell *matHeaderCellDef> Interest </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Interest' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.annualInterestRate }}
|
{{ chartSlab.annualInterestRate }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="description">
|
<ng-container matColumnDef="description">
|
||||||
<th mat-header-cell *matHeaderCellDef> Description </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Description' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab">
|
<td mat-cell *matCellDef="let chartSlab">
|
||||||
{{ chartSlab.description }}
|
{{ chartSlab.description }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let chartSlab; let chartSlabIndex = dataIndex">
|
<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">
|
<span *ngIf="expandChartSlabIndex !== chartSlabIndex">
|
||||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>
|
<fa-icon icon="eye" class="m-r-10"></fa-icon>
|
||||||
View Incentives
|
{{'labels.buttons.View Incentives' | translate}}
|
||||||
</span>
|
</span>
|
||||||
<span *ngIf="expandChartSlabIndex === chartSlabIndex">
|
<span *ngIf="expandChartSlabIndex === chartSlabIndex">
|
||||||
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
|
<fa-icon icon="eye-slash" class="m-r-10"></fa-icon>
|
||||||
Hide Incentives
|
{{'labels.buttons.Hide Incentives' | translate}}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@@ -233,34 +233,34 @@
|
|||||||
<mat-card fxLayout="row wrap" fxFlexFill>
|
<mat-card fxLayout="row wrap" fxFlexFill>
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlex="23%">
|
<h4 class="mat-h4" fxFlex="23%">
|
||||||
Incentives
|
{{'labels.heading.Incentives' | translate}}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
|
||||||
|
|
||||||
<ng-container matColumnDef="entityType">
|
<ng-container matColumnDef="entityType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Entity Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Entity Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.entityType | find:recurringDepositProductTemplate.chartTemplate.entityTypeOptions:'id':'value' }}
|
{{ incentive.entityType | find:recurringDepositProductTemplate.chartTemplate.entityTypeOptions:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="attributeName">
|
<ng-container matColumnDef="attributeName">
|
||||||
<th mat-header-cell *matHeaderCellDef> Attribute Name </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Attribute Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.attributeName | find:recurringDepositProductTemplate.chartTemplate.attributeNameOptions:'id':'value' }}
|
{{ incentive.attributeName | find:recurringDepositProductTemplate.chartTemplate.attributeNameOptions:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="conditionType">
|
<ng-container matColumnDef="conditionType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Condition Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Condition Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.conditionType | find:recurringDepositProductTemplate.chartTemplate.conditionTypeOptions:'id':'value' }}
|
{{ incentive.conditionType | find:recurringDepositProductTemplate.chartTemplate.conditionTypeOptions:'id':'value' }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="attributeValue">
|
<ng-container matColumnDef="attributeValue">
|
||||||
<th mat-header-cell *matHeaderCellDef> Attribute Value </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Attribute Value' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
|
<td mat-cell *matCellDef="let incentive" [ngSwitch]="incentive.attributeName">
|
||||||
<span *ngSwitchCase="2">{{ incentive.attributeValue | find:recurringDepositProductTemplate.chartTemplate.genderOptions:'id':'name' }}</span>
|
<span *ngSwitchCase="2">{{ incentive.attributeValue | find:recurringDepositProductTemplate.chartTemplate.genderOptions:'id':'name' }}</span>
|
||||||
<span *ngSwitchCase="3">{{ incentive.attributeValue }}</span>
|
<span *ngSwitchCase="3">{{ incentive.attributeValue }}</span>
|
||||||
@@ -270,14 +270,14 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incentiveType">
|
<ng-container matColumnDef="incentiveType">
|
||||||
<th mat-header-cell *matHeaderCellDef> Incentive Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Incentive Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.incentiveType | find:recurringDepositProductTemplate.chartTemplate.incentiveTypeOptions:'id':'value'}}
|
{{ incentive.incentiveType | find:recurringDepositProductTemplate.chartTemplate.incentiveTypeOptions:'id':'value'}}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amount">
|
<ng-container matColumnDef="amount">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let incentive">
|
<td mat-cell *matCellDef="let incentive">
|
||||||
{{ incentive.amount }}
|
{{ incentive.amount }}
|
||||||
</td>
|
</td>
|
||||||
@@ -307,35 +307,35 @@
|
|||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.charges.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
<div *ngIf="recurringDepositProduct.charges.length" fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Charges</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Charges' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
|
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef> Name </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.name }}
|
{{ charge.name }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="type">
|
<ng-container matColumnDef="type">
|
||||||
<th mat-header-cell *matHeaderCellDef> Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.chargeCalculationType.value }}
|
{{ charge.chargeCalculationType.value }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="amount">
|
<ng-container matColumnDef="amount">
|
||||||
<th mat-header-cell *matHeaderCellDef> Amount </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.amount | formatNumber }}
|
{{ charge.amount | formatNumber }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="collectedon">
|
<ng-container matColumnDef="collectedon">
|
||||||
<th mat-header-cell *matHeaderCellDef> Collected On </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let charge">
|
<td mat-cell *matCellDef="let charge">
|
||||||
{{ charge.chargeTimeType.value }}
|
{{ charge.chargeTimeType.value }}
|
||||||
</td>
|
</td>
|
||||||
@@ -348,7 +348,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Accounting</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Accounting' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
@@ -360,26 +360,26 @@
|
|||||||
|
|
||||||
<div fxFlexFill *ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length || recurringDepositProduct.feeToIncomeAccountMappings?.length || recurringDepositProduct.penaltyToIncomeAccountMappings?.length " fxLayout="row wrap" fxLayout.lt-md="column">
|
<div fxFlexFill *ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length || recurringDepositProduct.feeToIncomeAccountMappings?.length || recurringDepositProduct.penaltyToIncomeAccountMappings?.length " fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h3 class="mat-h3" fxFlexFill>Advanced Accounting Rules</h3>
|
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Advanced Accounting Rules' | translate}}</h3>
|
||||||
|
|
||||||
<mat-divider [inset]="true"></mat-divider>
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
<div *ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length" fxFlexFill fxLayout="row wrap"
|
<div *ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length" fxFlexFill fxLayout="row wrap"
|
||||||
fxLayout.lt-md="column">
|
fxLayout.lt-md="column">
|
||||||
<h4 class="mat-h4" fxFlexFill>Configure Fund Sources for Payment Channels</h4>
|
<h4 class="mat-h4" fxFlexFill>{{'labels.inputs.Configure Fund Sources for Payment Channels' | translate}}</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table
|
<table fxFlexFill class="mat-elevation-z1" mat-table
|
||||||
[dataSource]="recurringDepositProduct.paymentChannelToFundSourceMappings">
|
[dataSource]="recurringDepositProduct.paymentChannelToFundSourceMappings">
|
||||||
|
|
||||||
<ng-container matColumnDef="paymentTypeId">
|
<ng-container matColumnDef="paymentTypeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Payment Type </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Payment Type' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let paymentFundSource">
|
<td mat-cell *matCellDef="let paymentFundSource">
|
||||||
{{ paymentFundSource.paymentType.name }}
|
{{ paymentFundSource.paymentType.name }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="fundSourceAccountId">
|
<ng-container matColumnDef="fundSourceAccountId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Fund Source </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fund Source' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let paymentFundSource">
|
<td mat-cell *matCellDef="let paymentFundSource">
|
||||||
{{ paymentFundSource.fundSourceAccount.name }}
|
{{ paymentFundSource.fundSourceAccount.name }}
|
||||||
</td>
|
</td>
|
||||||
@@ -396,20 +396,20 @@
|
|||||||
fxLayout.lt-md="column">
|
fxLayout.lt-md="column">
|
||||||
|
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlexFill>Fees to Specific Income Accounts</h4>
|
<h4 class="mat-h4" fxFlexFill>{{'labels.inputs.Fees to Specific Income Accounts' | translate}}</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table
|
<table fxFlexFill class="mat-elevation-z1" mat-table
|
||||||
[dataSource]="recurringDepositProduct.feeToIncomeAccountMappings">
|
[dataSource]="recurringDepositProduct.feeToIncomeAccountMappings">
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
<ng-container matColumnDef="chargeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Fees </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fees' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
{{ feesIncome.charge.name }}
|
{{ feesIncome.charge.name }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Income Account </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
{{ feesIncome.incomeAccount.name }}
|
{{ feesIncome.incomeAccount.name }}
|
||||||
</td>
|
</td>
|
||||||
@@ -425,20 +425,20 @@
|
|||||||
<div *ngIf="recurringDepositProduct.penaltyToIncomeAccountMappings?.length" fxFlexFill fxLayout="row wrap"
|
<div *ngIf="recurringDepositProduct.penaltyToIncomeAccountMappings?.length" fxFlexFill fxLayout="row wrap"
|
||||||
fxLayout.lt-md="column">
|
fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 class="mat-h4" fxFlexFill>Penalties to Specific Income Accounts</h4>
|
<h4 class="mat-h4" fxFlexFill>{{'labels.inputs.Penalties to Specific Income Accounts' | translate}}</h4>
|
||||||
|
|
||||||
<table fxFlexFill class="mat-elevation-z1" mat-table
|
<table fxFlexFill class="mat-elevation-z1" mat-table
|
||||||
[dataSource]="recurringDepositProduct.penaltyToIncomeAccountMappings">
|
[dataSource]="recurringDepositProduct.penaltyToIncomeAccountMappings">
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
<ng-container matColumnDef="chargeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Penalty </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Penalty' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
{{ penaltyIncome.charge.name }}
|
{{ penaltyIncome.charge.name }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
<th mat-header-cell *matHeaderCellDef> Income Account </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
{{ penaltyIncome.incomeAccount.name }}
|
{{ penaltyIncome.incomeAccount.name }}
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
<nav mat-tab-nav-bar class="navigation-tabs">
|
<nav mat-tab-nav-bar class="navigation-tabs">
|
||||||
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
|
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
|
||||||
[active]="general.isActive">
|
[active]="general.isActive">
|
||||||
General
|
{{'labels.heading.General' | translate}}
|
||||||
</a>
|
</a>
|
||||||
<ng-container *ngFor="let recurringDepositDatatable of recurringDepositDatatables">
|
<ng-container *ngFor="let recurringDepositDatatable of recurringDepositDatatables">
|
||||||
<a mat-tab-link [routerLink]="['./datatables',recurringDepositDatatable.registeredTableName]" routerLinkActive
|
<a mat-tab-link [routerLink]="['./datatables',recurringDepositDatatable.registeredTableName]" routerLinkActive
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="savingProductDetailsForm">
|
<mat-step [stepControl]="savingProductDetailsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>{{'labels.inputs.Details' | translate}}</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.DETAILS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-saving-product-details-step></mifosx-saving-product-details-step>
|
<mifosx-saving-product-details-step></mifosx-saving-product-details-step>
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="savingProductCurrencyForm">
|
<mat-step [stepControl]="savingProductCurrencyForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>{{'labels.inputs.Currency' | translate}}</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CURRENCY' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-saving-product-currency-step [savingProductsTemplate]="savingProductsTemplate"></mifosx-saving-product-currency-step>
|
<mifosx-saving-product-currency-step [savingProductsTemplate]="savingProductsTemplate"></mifosx-saving-product-currency-step>
|
||||||
|
|
||||||
|
|||||||
+115
-133
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<mat-radio-group fxFlex="98%" fxLayout="row" fxLayoutGap="5%" fxLayout.lt-md="column" formControlName="accountingRule">
|
<mat-radio-group fxFlex="98%" fxLayout="row" fxLayoutGap="5%" fxLayout.lt-md="column"
|
||||||
|
formControlName="accountingRule">
|
||||||
<mat-radio-button *ngFor="let accountingRule of accountingRuleData; let i = index" [value]="i+1">
|
<mat-radio-button *ngFor="let accountingRule of accountingRuleData; let i = index" [value]="i+1">
|
||||||
{{ 'labels.accounting.' + accountingRule | translate }}
|
{{ 'labels.accounting.' + accountingRule | translate }}
|
||||||
</mat-radio-button>
|
</mat-radio-button>
|
||||||
@@ -16,34 +17,22 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.savingsReferenceAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.savingsReferenceAccountId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Saving reference'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Saving reference'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.overdraftPortfolioControlId"
|
[inputFormControl]="savingProductAccountingForm.controls.overdraftPortfolioControlId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Overdraft portfolio'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Overdraft portfolio'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.feesReceivableAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.feesReceivableAccountId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Fees Receivable'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Fees Receivable'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.penaltiesReceivableAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.penaltiesReceivableAccountId"
|
||||||
[glAccountList]="assetAccountData"
|
[glAccountList]="assetAccountData" [required]="true" [inputLabel]="'Penalties Receivable'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Penalties Receivable'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
@@ -52,52 +41,34 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.savingsControlAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.savingsControlAccountId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Saving control'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Saving control'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.transfersInSuspenseAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.transfersInSuspenseAccountId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Savings transfers in suspense'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Savings transfers in suspense'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isAccrualAccounting()"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.interestPayableAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.interestPayableAccountId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Interest Payable'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Interest Payable'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isDormancyTrackingActive.value"
|
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isDormancyTrackingActive.value"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.escheatLiabilityId"
|
[inputFormControl]="savingProductAccountingForm.controls.escheatLiabilityId"
|
||||||
[glAccountList]="liabilityAccountData"
|
[glAccountList]="liabilityAccountData" [required]="true" [inputLabel]="'Escheat liability'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Escheat liability'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Expenses' | translate}}</h4>
|
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Expenses' | translate}}</h4>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.interestOnSavingsAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.interestOnSavingsAccountId"
|
||||||
[glAccountList]="expenseAccountData"
|
[glAccountList]="expenseAccountData" [required]="true" [inputLabel]="'Interest on savings'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Interest on savings'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.writeOffAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.writeOffAccountId" [glAccountList]="expenseAccountData"
|
||||||
[glAccountList]="expenseAccountData"
|
[required]="true" [inputLabel]="'Write-off'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Write-off'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
@@ -106,44 +77,42 @@
|
|||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.incomeFromFeeAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.incomeFromFeeAccountId"
|
||||||
[glAccountList]="incomeAccountData"
|
[glAccountList]="incomeAccountData" [required]="true" [inputLabel]="'Income from fees'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Income from fees'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.incomeFromPenaltyAccountId"
|
[inputFormControl]="savingProductAccountingForm.controls.incomeFromPenaltyAccountId"
|
||||||
[glAccountList]="incomeAccountData"
|
[glAccountList]="incomeAccountData" [required]="true" [inputLabel]="'Income from penalties'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Income from penalties'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mifosx-gl-account-selector fxFlex="48%"
|
<mifosx-gl-account-selector fxFlex="48%"
|
||||||
[inputFormControl]="savingProductAccountingForm.controls.incomeFromInterestId"
|
[inputFormControl]="savingProductAccountingForm.controls.incomeFromInterestId"
|
||||||
[glAccountList]="incomeAccountData"
|
[glAccountList]="incomeAccountData" [required]="true" [inputLabel]="'Overdraft Interest Income'">
|
||||||
[required]="true"
|
|
||||||
[inputLabel]="'Overdraft Interest Income'"
|
|
||||||
>
|
|
||||||
</mifosx-gl-account-selector>
|
</mifosx-gl-account-selector>
|
||||||
|
|
||||||
<mat-divider fxFlex="98%"></mat-divider>
|
<mat-divider fxFlex="98%"></mat-divider>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="73%" formControlName="advancedAccountingRules">{{'labels.heading.Advanced Accounting Rules' | translate}}</mat-checkbox>
|
<mat-checkbox fxFlex="73%" formControlName="advancedAccountingRules">{{'labels.heading.Advanced Accounting Rules'
|
||||||
|
| translate}}</mat-checkbox>
|
||||||
|
|
||||||
<div *ngIf="savingProductAccountingForm.value.advancedAccountingRules" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div *ngIf="savingProductAccountingForm.value.advancedAccountingRules" fxFlexFill fxLayout="row wrap"
|
||||||
|
fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|
||||||
<h4 fxFlex="33%" class="mat-h4">{{'labels.heading.Configure Fund Sources for Payment Channels' | translate}}</h4>
|
<div fxFlex="100%">
|
||||||
|
|
||||||
<div fxFlex="63%">
|
<h4 fxFlex="63%" class="mat-h4">{{'labels.heading.Configure Fund Sources for Payment Channels' | translate}}
|
||||||
<button type="button" mat-raised-button color="primary" (click)="add('PaymentFundSource', paymentChannelToFundSourceMappings)">
|
</h4>
|
||||||
|
|
||||||
|
<div fxFlex="33%">
|
||||||
|
<button type="button" mat-raised-button color="primary"
|
||||||
|
(click)="add('PaymentFundSource', paymentChannelToFundSourceMappings)">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
{{'labels.buttons.Add' | translate}}
|
{{'labels.buttons.Add' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="paymentChannelToFundSourceMappings.value" *ngIf="paymentChannelToFundSourceMappings.value.length !== 0">
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="paymentChannelToFundSourceMappings.value"
|
||||||
|
*ngIf="paymentChannelToFundSourceMappings.value.length !== 0">
|
||||||
|
|
||||||
<ng-container matColumnDef="paymentTypeId">
|
<ng-container matColumnDef="paymentTypeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Payment Type' | translate}} </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Payment Type' | translate}} </th>
|
||||||
@@ -160,9 +129,10 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<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 paymentFundSource; let i = index">
|
<td mat-cell *matCellDef="let paymentFundSource; let i = index">
|
||||||
<button mat-icon-button color="primary" (click)="edit('PaymentFundSource', paymentChannelToFundSourceMappings, i)">
|
<button mat-icon-button color="primary"
|
||||||
|
(click)="edit('PaymentFundSource', paymentChannelToFundSourceMappings, i)">
|
||||||
<fa-icon icon="edit"></fa-icon>
|
<fa-icon icon="edit"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
<button mat-icon-button color="warn" (click)="delete(paymentChannelToFundSourceMappings, i)">
|
<button mat-icon-button color="warn" (click)="delete(paymentChannelToFundSourceMappings, i)">
|
||||||
@@ -175,91 +145,103 @@
|
|||||||
<tr mat-row *matRowDef="let row; columns: paymentFundSourceDisplayedColumns;"></tr>
|
<tr mat-row *matRowDef="let row; columns: paymentFundSourceDisplayedColumns;"></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h4 fxFlex="33%" class="mat-h4">{{'labels.heading.Map Fees to Specific Income Accounts' | translate}}</h4>
|
|
||||||
|
|
||||||
<div fxFlex="63%" *ngIf="existCharges()">
|
|
||||||
<button type="button" mat-raised-button color="primary" (click)="add('FeesIncome', feeToIncomeAccountMappings)">
|
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
|
||||||
{{'labels.buttons.Add' | translate}}
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="feeToIncomeAccountMappings.value" *ngIf="feeToIncomeAccountMappings.value.length !== 0">
|
<div fxFlex="100%" *ngIf="existCharges()">
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
<h4 fxFlex="63%" class="mat-h4">{{'labels.heading.Map Fees to Specific Income Accounts' | translate}}</h4>
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fees' | translate}} </th>
|
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
|
||||||
{{ feesIncome.chargeId | find:chargeData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
<div fxFlex="33%" *ngIf="existCharges()">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
<button type="button" mat-raised-button color="primary"
|
||||||
<td mat-cell *matCellDef="let feesIncome">
|
(click)="add('FeesIncome', feeToIncomeAccountMappings)">
|
||||||
{{ feesIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
</td>
|
{{'labels.buttons.Add' | translate}}
|
||||||
</ng-container>
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="feeToIncomeAccountMappings.value"
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
*ngIf="feeToIncomeAccountMappings.value.length !== 0">
|
||||||
<td mat-cell *matCellDef="let feesIncome; let i = index">
|
|
||||||
<button mat-icon-button color="primary" (click)="edit('FeesIncome', feeToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="edit"></fa-icon>
|
|
||||||
</button>
|
|
||||||
<button mat-icon-button color="warn" (click)="delete(feeToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="trash"></fa-icon>
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
<ng-container matColumnDef="chargeId">
|
||||||
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Fees' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
|
{{ feesIncome.chargeId | find:chargeData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
</table>
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let feesIncome">
|
||||||
|
{{ feesIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<h4 fxFlex="33%" class="mat-h4">{{'labels.heading.Map Penalties to Specific Income Accounts' | translate}}</h4>
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let feesIncome; let i = index">
|
||||||
|
<button mat-icon-button color="primary" (click)="edit('FeesIncome', feeToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="edit"></fa-icon>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button color="warn" (click)="delete(feeToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="trash"></fa-icon>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<div fxFlex="63%" *ngIf="existCharges()">
|
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
||||||
<button type="button" mat-raised-button color="primary" (click)="add('PenaltyIncome', penaltyToIncomeAccountMappings)">
|
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
|
||||||
{{'labels.buttons.Add' | translate}}
|
</table>
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div fxFlex="100%" *ngIf="existCharges()">
|
||||||
|
|
||||||
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="penaltyToIncomeAccountMappings.value" *ngIf="penaltyToIncomeAccountMappings.value.length !== 0">
|
<h4 fxFlex="63%" class="mat-h4">{{'labels.heading.Map Penalties to Specific Income Accounts' | translate}}
|
||||||
|
</h4>
|
||||||
|
|
||||||
<ng-container matColumnDef="chargeId">
|
<div fxFlex="33%">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Penalty' | translate}} </th>
|
<button type="button" mat-raised-button color="primary"
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
(click)="add('PenaltyIncome', penaltyToIncomeAccountMappings)">
|
||||||
{{ penaltyIncome.chargeId | find:penaltyData:'id':'name' }}
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
</td>
|
{{'labels.buttons.Add' | translate}}
|
||||||
</ng-container>
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ng-container matColumnDef="incomeAccountId">
|
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="penaltyToIncomeAccountMappings.value"
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
*ngIf="penaltyToIncomeAccountMappings.value.length !== 0">
|
||||||
<td mat-cell *matCellDef="let penaltyIncome">
|
|
||||||
{{ penaltyIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="chargeId">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions </th>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Penalty' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let penaltyIncome; let i = index">
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
<button mat-icon-button color="primary" (click)="edit('PenaltyIncome', penaltyToIncomeAccountMappings, i)">
|
{{ penaltyIncome.chargeId | find:penaltyData:'id':'name' }}
|
||||||
<fa-icon icon="edit"></fa-icon>
|
</td>
|
||||||
</button>
|
</ng-container>
|
||||||
<button mat-icon-button color="warn" (click)="delete(penaltyToIncomeAccountMappings, i)">
|
|
||||||
<fa-icon icon="trash"></fa-icon>
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
<ng-container matColumnDef="incomeAccountId">
|
||||||
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Income Account' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let penaltyIncome">
|
||||||
|
{{ penaltyIncome.incomeAccountId | find:incomeAccountData:'id':'name' }}
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
</table>
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let penaltyIncome; let i = index">
|
||||||
|
<button mat-icon-button color="primary"
|
||||||
|
(click)="edit('PenaltyIncome', penaltyToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="edit"></fa-icon>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button color="warn" (click)="delete(penaltyToIncomeAccountMappings, i)">
|
||||||
|
<fa-icon icon="trash"></fa-icon>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="feesPenaltyIncomeDisplayedColumns"></tr>
|
||||||
|
<tr mat-row *matRowDef="let row; columns: feesPenaltyIncomeDisplayedColumns;"></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -278,4 +260,4 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
+15
-10
@@ -7,6 +7,7 @@ import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.co
|
|||||||
|
|
||||||
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
|
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
|
||||||
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-saving-product-accounting-step',
|
selector: 'mifosx-saving-product-accounting-step',
|
||||||
@@ -36,7 +37,8 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
feesPenaltyIncomeDisplayedColumns: string[] = ['chargeId', 'incomeAccountId', 'actions'];
|
feesPenaltyIncomeDisplayedColumns: string[] = ['chargeId', 'incomeAccountId', 'actions'];
|
||||||
|
|
||||||
constructor(private formBuilder: UntypedFormBuilder,
|
constructor(private formBuilder: UntypedFormBuilder,
|
||||||
public dialog: MatDialog) {
|
private dialog: MatDialog,
|
||||||
|
private translateService: TranslateService) {
|
||||||
this.createsavingProductAccountingForm();
|
this.createsavingProductAccountingForm();
|
||||||
this.setConditionalControls();
|
this.setConditionalControls();
|
||||||
}
|
}
|
||||||
@@ -240,9 +242,12 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
|
|
||||||
getData(formType: string, values?: any) {
|
getData(formType: string, values?: any) {
|
||||||
switch (formType) {
|
switch (formType) {
|
||||||
case 'PaymentFundSource': return { title: 'Configure Fund Sources for Payment Channels', formfields: this.getPaymentFundSourceFormfields(values) };
|
case 'PaymentFundSource': return { title: this.translateService.instant('labels.heading.Configure Fund Sources for Payment Channels'),
|
||||||
case 'FeesIncome': return { title: 'Map Fees to Income Accounts', formfields: this.getFeesIncomeFormfields(values) };
|
formfields: this.getPaymentFundSourceFormfields(values) };
|
||||||
case 'PenaltyIncome': return { title: 'Map Penalties to Specific Income Accounts', formfields: this.getPenaltyIncomeFormfields(values) };
|
case 'FeesIncome': return { title: this.translateService.instant('labels.heading.Map Fees to Specific Income Accounts'),
|
||||||
|
formfields: this.getFeesIncomeFormfields(values) };
|
||||||
|
case 'PenaltyIncome': return { title: this.translateService.instant('labels.heading.Map Penalties to Specific Income Accounts'),
|
||||||
|
formfields: this.getPenaltyIncomeFormfields(values) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -250,7 +255,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
const formfields: FormfieldBase[] = [
|
const formfields: FormfieldBase[] = [
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'paymentTypeId',
|
controlName: 'paymentTypeId',
|
||||||
label: 'Payment Type',
|
label: this.translateService.instant('labels.inputs.Payment Type'),
|
||||||
value: values ? values.paymentTypeId : this.paymentTypeData[0].id,
|
value: values ? values.paymentTypeId : this.paymentTypeData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.paymentTypeData },
|
options: { label: 'name', value: 'id', data: this.paymentTypeData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -258,7 +263,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
}),
|
}),
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'fundSourceAccountId',
|
controlName: 'fundSourceAccountId',
|
||||||
label: 'Fund Source',
|
label: this.translateService.instant('labels.inputs.Fund Source'),
|
||||||
value: values ? values.fundSourceAccountId : this.combinedAccountData[0].id,
|
value: values ? values.fundSourceAccountId : this.combinedAccountData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.combinedAccountData },
|
options: { label: 'name', value: 'id', data: this.combinedAccountData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -272,7 +277,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
const formfields: FormfieldBase[] = [
|
const formfields: FormfieldBase[] = [
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'chargeId',
|
controlName: 'chargeId',
|
||||||
label: 'Fees',
|
label: this.translateService.instant('labels.inputs.Fees'),
|
||||||
value: values ? values.chargeId : this.chargeData[0].id,
|
value: values ? values.chargeId : this.chargeData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.chargeData },
|
options: { label: 'name', value: 'id', data: this.chargeData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -280,7 +285,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
}),
|
}),
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'incomeAccountId',
|
controlName: 'incomeAccountId',
|
||||||
label: 'Income Account',
|
label: this.translateService.instant('labels.inputs.Income Account'),
|
||||||
value: values ? values.incomeAccountId : this.incomeAccountData[0].id,
|
value: values ? values.incomeAccountId : this.incomeAccountData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.incomeAccountData },
|
options: { label: 'name', value: 'id', data: this.incomeAccountData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -294,7 +299,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
const formfields: FormfieldBase[] = [
|
const formfields: FormfieldBase[] = [
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'chargeId',
|
controlName: 'chargeId',
|
||||||
label: 'Penalty',
|
label: this.translateService.instant('labels.inputs.Penalty'),
|
||||||
value: values ? values.chargeId : this.penaltyData[0].id,
|
value: values ? values.chargeId : this.penaltyData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.penaltyData },
|
options: { label: 'name', value: 'id', data: this.penaltyData },
|
||||||
required: true,
|
required: true,
|
||||||
@@ -302,7 +307,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
|
|||||||
}),
|
}),
|
||||||
new SelectBase({
|
new SelectBase({
|
||||||
controlName: 'incomeAccountId',
|
controlName: 'incomeAccountId',
|
||||||
label: 'Income Account',
|
label: this.translateService.instant('labels.inputs.Income Account'),
|
||||||
value: values ? values.incomeAccountId : this.incomeAccountData[0].id,
|
value: values ? values.incomeAccountId : this.incomeAccountData[0].id,
|
||||||
options: { label: 'name', value: 'id', data: this.incomeAccountData },
|
options: { label: 'name', value: 'id', data: this.incomeAccountData },
|
||||||
required: true,
|
required: true,
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<mat-form-field fxFlex="48%">
|
<mat-form-field fxFlex="48%">
|
||||||
<mat-label>{{'labels.inputs.Currency in multiples of' | translate}}</mat-label>
|
<mat-label>{{'labels.inputs.Currency in multiples of' | translate}}</mat-label>
|
||||||
<input type="number" matInput matTooltip="The amount to be rounded off (example: 100 rounds off to 200, 300, 400, etc)" formControlName="inMultiplesOf" required>
|
<input type="number" matInput matTooltip="The amount to be rounded off (example: 100 rounds off to 200, 300, 400, etc)" formControlName="inMultiplesOf">
|
||||||
<mat-error>
|
<mat-error>
|
||||||
{{'labels.inputs.Currency in multiples of' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
{{'labels.inputs.Currency in multiples of' | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,7 @@ export class SavingProductCurrencyStepComponent implements OnInit {
|
|||||||
this.savingProductCurrencyForm.patchValue({
|
this.savingProductCurrencyForm.patchValue({
|
||||||
'currencyCode': this.savingProductsTemplate.currency.code || this.currencyData[0].code,
|
'currencyCode': this.savingProductsTemplate.currency.code || this.currencyData[0].code,
|
||||||
'digitsAfterDecimal': this.savingProductsTemplate.currency.code ? this.savingProductsTemplate.currency.decimalPlaces : 2,
|
'digitsAfterDecimal': this.savingProductsTemplate.currency.code ? this.savingProductsTemplate.currency.decimalPlaces : 2,
|
||||||
'inMultiplesOf': this.savingProductsTemplate.currency.inMultiplesOf || 1
|
'inMultiplesOf': this.savingProductsTemplate.currency.inMultiplesOf || ''
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ export class SavingProductCurrencyStepComponent implements OnInit {
|
|||||||
this.savingProductCurrencyForm = this.formBuilder.group({
|
this.savingProductCurrencyForm = this.formBuilder.group({
|
||||||
'currencyCode': ['', Validators.required],
|
'currencyCode': ['', Validators.required],
|
||||||
'digitsAfterDecimal': ['', Validators.required],
|
'digitsAfterDecimal': ['', Validators.required],
|
||||||
'inMultiplesOf': ['', Validators.required]
|
'inMultiplesOf': ['']
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -41,7 +41,7 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="48%" labelPosition="before" matTooltip="An boolean flag to attach taxes to interest posting" formControlName="withHoldTax" class="margin-v">
|
<mat-checkbox fxFlex="48%" labelPosition="before" matTooltip="An boolean flag to attach taxes to interest posting" formControlName="withHoldTax" class="margin-v">
|
||||||
{{'labels.inputs.Is Withhold Tax Applicable' | translate}}?
|
{{'labels.inputs.Is Withhold Tax Applicable' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<mat-form-field fxFlex="48%" *ngIf="savingProductSettingsForm.value.withHoldTax">
|
<mat-form-field fxFlex="48%" *ngIf="savingProductSettingsForm.value.withHoldTax">
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<h3 fxFlex="23%" class="mat-h3">{{'labels.inputs.Overdraft' | translate}}</h3>
|
<h3 fxFlex="23%" class="mat-h3">{{'labels.inputs.Overdraft' | translate}}</h3>
|
||||||
|
|
||||||
<mat-checkbox fxFlex="73%" labelPosition="before" matTooltip="Indicates whether saving accounts based on this saving product may have an overdraft" formControlName="allowOverdraft" class="margin-b">
|
<mat-checkbox fxFlex="73%" labelPosition="before" matTooltip="Indicates whether saving accounts based on this saving product may have an overdraft" formControlName="allowOverdraft" class="margin-b">
|
||||||
{{'labels.inputs.Is Overdraft Allowed' | translate}}?
|
{{'labels.inputs.Is Overdraft Allowed' | translate}}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
|
|
||||||
<div *ngIf="savingProductSettingsForm.value.allowOverdraft" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div *ngIf="savingProductSettingsForm.value.allowOverdraft" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="savingsAccountDetailsForm">
|
<mat-step [stepControl]="savingsAccountDetailsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>DETAILS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.DETAILS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-details-step
|
<mifosx-savings-account-details-step
|
||||||
[savingsAccountTemplate]="savingsAccountTemplate"
|
[savingsAccountTemplate]="savingsAccountTemplate"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="savingsAccountTermsForm">
|
<mat-step [stepControl]="savingsAccountTermsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>TERMS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.TERMS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-terms-step
|
<mifosx-savings-account-terms-step
|
||||||
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
<mat-step>
|
<mat-step>
|
||||||
|
|
||||||
<ng-template matStepLabel>CHARGES</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CHARGES' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-charges-step
|
<mifosx-savings-account-charges-step
|
||||||
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
<mat-step *ngIf="savingsAccountFormValid" completed>
|
<mat-step *ngIf="savingsAccountFormValid" completed>
|
||||||
|
|
||||||
<ng-template matStepLabel>PREVIEW</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.PREVIEW' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-preview-step
|
<mifosx-savings-account-preview-step
|
||||||
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="savingsAccountDetailsForm">
|
<mat-step [stepControl]="savingsAccountDetailsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>DETAILS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.DETAILS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-details-step
|
<mifosx-savings-account-details-step
|
||||||
[savingsAccountTemplate]="savingsAccountAndTemplate"
|
[savingsAccountTemplate]="savingsAccountAndTemplate"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
<mat-step [stepControl]="savingsAccountTermsForm">
|
<mat-step [stepControl]="savingsAccountTermsForm">
|
||||||
|
|
||||||
<ng-template matStepLabel>TERMS</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.TERMS' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-terms-step
|
<mifosx-savings-account-terms-step
|
||||||
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
<mat-step>
|
<mat-step>
|
||||||
|
|
||||||
<ng-template matStepLabel>CHARGES</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.CHARGES' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-charges-step
|
<mifosx-savings-account-charges-step
|
||||||
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
<mat-step *ngIf="savingsAccountFormValidAndNotPristine" completed>
|
<mat-step *ngIf="savingsAccountFormValidAndNotPristine" completed>
|
||||||
|
|
||||||
<ng-template matStepLabel>PREVIEW</ng-template>
|
<ng-template matStepLabel>{{'labels.inputs.PREVIEW' | translate}}</ng-template>
|
||||||
|
|
||||||
<mifosx-savings-account-preview-step
|
<mifosx-savings-account-preview-step
|
||||||
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
[savingsAccountProductTemplate]="savingsAccountProductTemplate"
|
||||||
|
|||||||
@@ -121,6 +121,17 @@ export class SettingsService {
|
|||||||
return JSON.parse(localStorage.getItem('mifosXLanguage'));
|
return JSON.parse(localStorage.getItem('mifosXLanguage'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get languageCode() {
|
||||||
|
const currentLanguage = this.language.code;
|
||||||
|
if (currentLanguage === 'es') {
|
||||||
|
return 'es-MX';
|
||||||
|
}
|
||||||
|
if (currentLanguage === 'en') {
|
||||||
|
return 'en-US';
|
||||||
|
}
|
||||||
|
return currentLanguage + '-' + currentLanguage.toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns Decimals to Display setting
|
* Returns Decimals to Display setting
|
||||||
*/
|
*/
|
||||||
@@ -236,4 +247,13 @@ export class SettingsService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setThemeDarkEnabled(enabled: string) {
|
||||||
|
localStorage.setItem('mifosXThemeDarkEnabled', enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
get themeDarkEnabled() {
|
||||||
|
return JSON.parse(localStorage.getItem('mifosXThemeDarkEnabled'));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ export interface GLAccount {
|
|||||||
manualEntriesAllowed: boolean;
|
manualEntriesAllowed: boolean;
|
||||||
type: OptionData;
|
type: OptionData;
|
||||||
usage: OptionData;
|
usage: OptionData;
|
||||||
|
parentId?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AccountingMapping {
|
export interface AccountingMapping {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
||||||
import { ThemingService } from './theming.service';
|
import { ThemingService } from './theming.service';
|
||||||
|
import { SettingsService } from 'app/settings/settings.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-theme-toggle',
|
selector: 'mifosx-theme-toggle',
|
||||||
@@ -10,20 +11,20 @@ export class ThemeToggleComponent implements OnInit, OnChanges {
|
|||||||
|
|
||||||
darkModeOn: boolean;
|
darkModeOn: boolean;
|
||||||
|
|
||||||
constructor(private themingService: ThemingService) {
|
constructor(private themingService: ThemingService,
|
||||||
this.darkModeOn = this.themingService.isDarkMode();
|
private settingsService: SettingsService) { }
|
||||||
}
|
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.darkModeOn = this.themingService.isDarkMode();
|
this.darkModeOn = (this.settingsService.themeDarkEnabled === 'true');
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges): void {
|
ngOnChanges(changes: SimpleChanges): void {
|
||||||
this.darkModeOn = this.themingService.isDarkMode();
|
this.darkModeOn = (this.settingsService.themeDarkEnabled === 'true');
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleTheme() {
|
toggleTheme() {
|
||||||
this.darkModeOn = !this.darkModeOn;
|
this.darkModeOn = !this.darkModeOn;
|
||||||
|
this.settingsService.setThemeDarkEnabled(this.darkModeOn ? 'true' : 'false');
|
||||||
this.themingService.setDarkMode(this.darkModeOn);
|
this.themingService.setDarkMode(this.darkModeOn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -126,15 +126,14 @@ export class WebAppComponent implements OnInit {
|
|||||||
*
|
*
|
||||||
* 3) Page Title
|
* 3) Page Title
|
||||||
*
|
*
|
||||||
* 4) Theme
|
* 4) Alerts
|
||||||
*
|
|
||||||
* 5) Alerts
|
|
||||||
*/
|
*/
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.themingService.theme.subscribe((value: string) => {
|
this.themingService.theme.subscribe((value: string) => {
|
||||||
this.cssClass = value;
|
this.cssClass = value;
|
||||||
});
|
});
|
||||||
this.themingService.setInitialDarkMode();
|
this.themingService.setInitialDarkMode();
|
||||||
|
this.themingService.setDarkMode((this.settingsService.themeDarkEnabled === 'true'));
|
||||||
|
|
||||||
// Setup logger
|
// Setup logger
|
||||||
if (environment.production) {
|
if (environment.production) {
|
||||||
@@ -144,7 +143,11 @@ export class WebAppComponent implements OnInit {
|
|||||||
|
|
||||||
// Setup translations
|
// Setup translations
|
||||||
this.translateService.addLangs(environment.supportedLanguages.split(','));
|
this.translateService.addLangs(environment.supportedLanguages.split(','));
|
||||||
this.translateService.use(environment.defaultLanguage);
|
if (this.settingsService.language) {
|
||||||
|
this.translateService.use(this.settingsService.languageCode);
|
||||||
|
} else {
|
||||||
|
this.translateService.use(environment.defaultLanguage);
|
||||||
|
}
|
||||||
|
|
||||||
this.i18nService = new I18nService(this.translateService);
|
this.i18nService = new I18nService(this.translateService);
|
||||||
|
|
||||||
@@ -185,12 +188,6 @@ export class WebAppComponent implements OnInit {
|
|||||||
localStorage.setItem('mifosXLocation', JSON.stringify(activities));
|
localStorage.setItem('mifosXLocation', JSON.stringify(activities));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Setup theme
|
|
||||||
const theme = this.themeStorageService.getTheme();
|
|
||||||
if (theme) {
|
|
||||||
this.themeStorageService.installTheme(theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup alerts
|
// Setup alerts
|
||||||
this.alertService.alertEvent.subscribe((alertEvent: Alert) => {
|
this.alertService.alertEvent.subscribe((alertEvent: Alert) => {
|
||||||
this.snackBar.open(`${alertEvent.message}`, 'Close', {
|
this.snackBar.open(`${alertEvent.message}`, 'Close', {
|
||||||
|
|||||||
@@ -623,6 +623,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Nakonfigurujte zdroje prostředků pro platební kanály",
|
"Configure Fund Sources for Payment Channels": "Nakonfigurujte zdroje prostředků pro platební kanály",
|
||||||
"Configure Maker Checker Tasks": "Konfigurace úloh Maker Checker",
|
"Configure Maker Checker Tasks": "Konfigurace úloh Maker Checker",
|
||||||
"Configure Maker-Checker Tasks": "Konfigurace úloh Maker-Checker",
|
"Configure Maker-Checker Tasks": "Konfigurace úloh Maker-Checker",
|
||||||
|
"Customer Attributes": "Atributy zákazníka",
|
||||||
"Configure Mifos Organization Needs": "Následující průvodce vám pomůže nakonfigurovat Mifos podle potřeb vaší organizace.",
|
"Configure Mifos Organization Needs": "Následující průvodce vám pomůže nakonfigurovat Mifos podle potřeb vaší organizace.",
|
||||||
"Create Charge": "Vytvořit poplatek",
|
"Create Charge": "Vytvořit poplatek",
|
||||||
"Create Closure": "Vytvořit uzavření",
|
"Create Closure": "Vytvořit uzavření",
|
||||||
@@ -718,7 +719,7 @@
|
|||||||
"Interest Rate Charts": "Grafy úrokových sazeb",
|
"Interest Rate Charts": "Grafy úrokových sazeb",
|
||||||
"Interest Recalculation": "Přepočet úroků",
|
"Interest Recalculation": "Přepočet úroků",
|
||||||
"Interest Transfer": "Převod úroků",
|
"Interest Transfer": "Převod úroků",
|
||||||
"It's required to add at least one Slab": "Je nutné přidat alespoň jednu desku",
|
"It is required to add at least one Slab": "Je nutné přidat alespoň jednu desku",
|
||||||
"Journal Entries": "Účetní zápisy",
|
"Journal Entries": "Účetní zápisy",
|
||||||
"Keyboard Shortcuts": "Klávesové zkratky",
|
"Keyboard Shortcuts": "Klávesové zkratky",
|
||||||
"Last Active": "poslední aktivní",
|
"Last Active": "poslední aktivní",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Je práce aktivní",
|
"Is job active": "Je práce aktivní",
|
||||||
"Is staff": "Je personál",
|
"Is staff": "Je personál",
|
||||||
"Is Zero Interest Rate?": "Je nulová úroková sazba?",
|
"Is Zero Interest Rate?": "Je nulová úroková sazba?",
|
||||||
|
"Is primary grouping by amount?": "Je primární seskupení podle množství?",
|
||||||
"JLG Loan Application": "Žádost o půjčku JLG",
|
"JLG Loan Application": "Žádost o půjčku JLG",
|
||||||
"Job Name": "Název povolání",
|
"Job Name": "Název povolání",
|
||||||
"Joined On": "Připojeno",
|
"Joined On": "Připojeno",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Procento k základně",
|
"Percentage To Base": "Procento k základně",
|
||||||
"Percentage to Base": "Procento k základně",
|
"Percentage to Base": "Procento k základně",
|
||||||
"Period": "Doba",
|
"Period": "Doba",
|
||||||
|
"Period From": "Období od",
|
||||||
|
"Period To": "Období do",
|
||||||
|
"Period Type": "Typ období",
|
||||||
|
"Amount Range From": "Rozsah částky Od",
|
||||||
|
"Amount Range To": "Rozsah částky do",
|
||||||
"Person": "Osoba",
|
"Person": "Osoba",
|
||||||
"Phone Number": "Telefonní číslo",
|
"Phone Number": "Telefonní číslo",
|
||||||
"Place Guarantee Funds On-Hold": "Pozastavení záručních fondů",
|
"Place Guarantee Funds On-Hold": "Pozastavení záručních fondů",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Částka opakovaného vkladu",
|
"Recurring Deposit Amount": "Částka opakovaného vkladu",
|
||||||
"Recurring Deposit Product": "Produkt s opakovaným vkladem",
|
"Recurring Deposit Product": "Produkt s opakovaným vkladem",
|
||||||
"Recurring Deposit Products": "Produkty s opakovaným vkladem",
|
"Recurring Deposit Products": "Produkty s opakovaným vkladem",
|
||||||
|
"Recurring Deposit Type": "Typ opakovaného vkladu",
|
||||||
"Reference Number": "Referenční číslo",
|
"Reference Number": "Referenční číslo",
|
||||||
"Rejected Date": "Datum odmítnutí",
|
"Rejected Date": "Datum odmítnutí",
|
||||||
"Rejected On": "Zamítnuto Zapnuto",
|
"Rejected On": "Zamítnuto Zapnuto",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "nedefinované",
|
"undefined": "nedefinované",
|
||||||
"withhold tax for this account": "srazit daň pro tento účet",
|
"withhold tax for this account": "srazit daň pro tento účet",
|
||||||
"Journal Entries": "Záznamy v časopise",
|
"Journal Entries": "Záznamy v časopise",
|
||||||
|
"Mandatory": "Povinné",
|
||||||
|
"Voluntary": "Dobrovolný",
|
||||||
"“Maker-Checker” principle requires every tasks": "Princip „Maker-Checker“ vyžaduje, aby každý úkol prováděli dva lidé, aby se snížila pravděpodobnost chyb a zneužití. Jedna osoba proces iniciuje a druhá jej dokončí."
|
"“Maker-Checker” principle requires every tasks": "Princip „Maker-Checker“ vyžaduje, aby každý úkol prováděli dva lidé, aby se snížila pravděpodobnost chyb a zneužití. Jedna osoba proces iniciuje a druhá jej dokončí."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Konfigurieren Sie Geldquellen für Zahlungskanäle",
|
"Configure Fund Sources for Payment Channels": "Konfigurieren Sie Geldquellen für Zahlungskanäle",
|
||||||
"Configure Maker Checker Tasks": "Konfigurieren Sie Maker Checker-Aufgaben",
|
"Configure Maker Checker Tasks": "Konfigurieren Sie Maker Checker-Aufgaben",
|
||||||
"Configure Maker-Checker Tasks": "Konfigurieren Sie Maker-Checker-Aufgaben",
|
"Configure Maker-Checker Tasks": "Konfigurieren Sie Maker-Checker-Aufgaben",
|
||||||
|
"Customer Attributes": "Kundenattribute",
|
||||||
"Configure Mifos Organization Needs": "Die folgende Führung hilft Ihnen dabei, Mifos entsprechend den Anforderungen Ihres Unternehmens zu konfigurieren.",
|
"Configure Mifos Organization Needs": "Die folgende Führung hilft Ihnen dabei, Mifos entsprechend den Anforderungen Ihres Unternehmens zu konfigurieren.",
|
||||||
"Create Charge": "Ladung erstellen",
|
"Create Charge": "Ladung erstellen",
|
||||||
"Create Closure": "Abschluss erstellen",
|
"Create Closure": "Abschluss erstellen",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Zinsdiagramme",
|
"Interest Rate Charts": "Zinsdiagramme",
|
||||||
"Interest Recalculation": "Neuberechnung der Zinsen",
|
"Interest Recalculation": "Neuberechnung der Zinsen",
|
||||||
"Interest Transfer": "Zinsübertragung",
|
"Interest Transfer": "Zinsübertragung",
|
||||||
"It's required to add at least one Slab": "Es ist erforderlich, mindestens eine Platte hinzuzufügen",
|
"It is required to add at least one Slab": "Es ist erforderlich, mindestens eine Platte hinzuzufügen",
|
||||||
"Journal Entries": "Journaleinträge",
|
"Journal Entries": "Journaleinträge",
|
||||||
"Keyboard Shortcuts": "Tastatürkürzel",
|
"Keyboard Shortcuts": "Tastatürkürzel",
|
||||||
"Last Active": "letzte Aktivität",
|
"Last Active": "letzte Aktivität",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Ist der Job aktiv?",
|
"Is job active": "Ist der Job aktiv?",
|
||||||
"Is staff": "Ist Personal",
|
"Is staff": "Ist Personal",
|
||||||
"Is Zero Interest Rate?": "Ist der Nullzins?",
|
"Is Zero Interest Rate?": "Ist der Nullzins?",
|
||||||
|
"Is primary grouping by amount?": "Ist die primäre Gruppierung nach Betrag?",
|
||||||
"JLG Loan Application": "JLG-Kreditantrag",
|
"JLG Loan Application": "JLG-Kreditantrag",
|
||||||
"Job Name": "Berufsbezeichnung",
|
"Job Name": "Berufsbezeichnung",
|
||||||
"Joined On": "Beigetreten am",
|
"Joined On": "Beigetreten am",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Prozentsatz zur Basis",
|
"Percentage To Base": "Prozentsatz zur Basis",
|
||||||
"Percentage to Base": "Prozentsatz zur Basis",
|
"Percentage to Base": "Prozentsatz zur Basis",
|
||||||
"Period": "Zeitraum",
|
"Period": "Zeitraum",
|
||||||
|
"Period From": "Zeitraum Von",
|
||||||
|
"Period To": "Zeitraum bis",
|
||||||
|
"Period Type": "Periodentyp",
|
||||||
|
"Amount Range From": "Betragsbereich von",
|
||||||
|
"Amount Range To": "Betragsbereich bis",
|
||||||
"Person": "Person",
|
"Person": "Person",
|
||||||
"Phone Number": "Telefonnummer",
|
"Phone Number": "Telefonnummer",
|
||||||
"Place Guarantee Funds On-Hold": "Stellen Sie Garantiefonds auf Eis",
|
"Place Guarantee Funds On-Hold": "Stellen Sie Garantiefonds auf Eis",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Wiederkehrender Einzahlungsbetrag",
|
"Recurring Deposit Amount": "Wiederkehrender Einzahlungsbetrag",
|
||||||
"Recurring Deposit Product": "Produkt mit wiederkehrender Einzahlung",
|
"Recurring Deposit Product": "Produkt mit wiederkehrender Einzahlung",
|
||||||
"Recurring Deposit Products": "Produkte mit wiederkehrender Einzahlung",
|
"Recurring Deposit Products": "Produkte mit wiederkehrender Einzahlung",
|
||||||
|
"Recurring Deposit Type": "Art der wiederkehrenden Einzahlung",
|
||||||
"Reference Number": "Referenznummer",
|
"Reference Number": "Referenznummer",
|
||||||
"Rejected Date": "Abgelehntes Datum",
|
"Rejected Date": "Abgelehntes Datum",
|
||||||
"Rejected On": "Abgelehnt am",
|
"Rejected On": "Abgelehnt am",
|
||||||
@@ -2869,6 +2877,8 @@
|
|||||||
"undefined": "nicht definiert",
|
"undefined": "nicht definiert",
|
||||||
"withhold tax for this account": "für dieses Konto die Steuer einbehalten",
|
"withhold tax for this account": "für dieses Konto die Steuer einbehalten",
|
||||||
"Journal Entries": "Journaleinträge",
|
"Journal Entries": "Journaleinträge",
|
||||||
|
"Mandatory": "Obligatorisch",
|
||||||
|
"Voluntary": "Freiwillig",
|
||||||
"“Maker-Checker” principle requires every tasks": "Das „Maker-Checker“-Prinzip erfordert, dass jede Aufgabe von zwei Personen erledigt wird, um das Risiko von Fehlern und Missbrauch zu verringern. Eine Person leitet den Prozess ein und die zweite Person schließt ihn ab."
|
"“Maker-Checker” principle requires every tasks": "Das „Maker-Checker“-Prinzip erfordert, dass jede Aufgabe von zwei Personen erledigt wird, um das Risiko von Fehlern und Missbrauch zu verringern. Eine Person leitet den Prozess ein und die zweite Person schließt ihn ab."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Configure Fund Sources for Payment Channels",
|
"Configure Fund Sources for Payment Channels": "Configure Fund Sources for Payment Channels",
|
||||||
"Configure Maker Checker Tasks": "Configure Maker Checker Tasks",
|
"Configure Maker Checker Tasks": "Configure Maker Checker Tasks",
|
||||||
"Configure Maker-Checker Tasks": "Configure Maker-Checker Tasks",
|
"Configure Maker-Checker Tasks": "Configure Maker-Checker Tasks",
|
||||||
|
"Customer Attributes": "Customer Attributes",
|
||||||
"Configure Mifos Organization Needs": "Following guide tour will help you configure Mifos according to your organization needs.",
|
"Configure Mifos Organization Needs": "Following guide tour will help you configure Mifos according to your organization needs.",
|
||||||
"Create Charge": "Create Charge",
|
"Create Charge": "Create Charge",
|
||||||
"Create Closure": "Create Closure",
|
"Create Closure": "Create Closure",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Interest Rate Charts",
|
"Interest Rate Charts": "Interest Rate Charts",
|
||||||
"Interest Recalculation": "Interest Recalculation",
|
"Interest Recalculation": "Interest Recalculation",
|
||||||
"Interest Transfer": "Interest Transfer",
|
"Interest Transfer": "Interest Transfer",
|
||||||
"It's required to add at least one Slab": "It's required to add at least one Slab",
|
"It is required to add at least one Slab": "It is required to add at least one Slab",
|
||||||
"Journal Entries": "Journal Entries",
|
"Journal Entries": "Journal Entries",
|
||||||
"Keyboard Shortcuts": "Keyboard Shortcuts",
|
"Keyboard Shortcuts": "Keyboard Shortcuts",
|
||||||
"Last Active": "Last Active",
|
"Last Active": "Last Active",
|
||||||
@@ -1504,6 +1505,7 @@
|
|||||||
"Is job active": "Is job active",
|
"Is job active": "Is job active",
|
||||||
"Is staff": "Is staff",
|
"Is staff": "Is staff",
|
||||||
"Is Zero Interest Rate?": "Is Zero Interest Rate?",
|
"Is Zero Interest Rate?": "Is Zero Interest Rate?",
|
||||||
|
"Is primary grouping by amount?": "Is primary grouping by amount?",
|
||||||
"JLG Loan Application": "JLG Loan Application",
|
"JLG Loan Application": "JLG Loan Application",
|
||||||
"Job Name": "Job Name",
|
"Job Name": "Job Name",
|
||||||
"Joined On": "Joined On",
|
"Joined On": "Joined On",
|
||||||
@@ -1771,6 +1773,11 @@
|
|||||||
"Percentage To Base": "Percentage To Base",
|
"Percentage To Base": "Percentage To Base",
|
||||||
"Percentage to Base": "Percentage to Base",
|
"Percentage to Base": "Percentage to Base",
|
||||||
"Period": "Period",
|
"Period": "Period",
|
||||||
|
"Period From": "Period From",
|
||||||
|
"Period To": "Period To",
|
||||||
|
"Period Type": "Period Type",
|
||||||
|
"Amount Range From": "Amount Range From",
|
||||||
|
"Amount Range To": "Amount Range To",
|
||||||
"Person": "Person",
|
"Person": "Person",
|
||||||
"Phone Number": "Phone Number",
|
"Phone Number": "Phone Number",
|
||||||
"Place Guarantee Funds On-Hold": "Place Guarantee Funds On-Hold",
|
"Place Guarantee Funds On-Hold": "Place Guarantee Funds On-Hold",
|
||||||
@@ -1835,6 +1842,7 @@
|
|||||||
"Recurring Deposit Amount": "Recurring Deposit Amount",
|
"Recurring Deposit Amount": "Recurring Deposit Amount",
|
||||||
"Recurring Deposit Product": "Recurring Deposit Product",
|
"Recurring Deposit Product": "Recurring Deposit Product",
|
||||||
"Recurring Deposit Products": "Recurring Deposit Products",
|
"Recurring Deposit Products": "Recurring Deposit Products",
|
||||||
|
"Recurring Deposit Type": "Recurring Deposit Type",
|
||||||
"Reference Number": "Reference Number",
|
"Reference Number": "Reference Number",
|
||||||
"Rejected Date": "Rejected Date",
|
"Rejected Date": "Rejected Date",
|
||||||
"Rejected On": "Rejected On",
|
"Rejected On": "Rejected On",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "undefined",
|
"undefined": "undefined",
|
||||||
"withhold tax for this account": "withhold tax for this account",
|
"withhold tax for this account": "withhold tax for this account",
|
||||||
"Journal Entries": "Journal Entries",
|
"Journal Entries": "Journal Entries",
|
||||||
|
"Mandatory": "Mandatory",
|
||||||
|
"Voluntary": "Voluntary",
|
||||||
"“Maker-Checker” principle requires every tasks": "The “Maker-Checker” principle requires every tasks to be completed by two people to reduce the chance of errors and misuse. One person initiates the process and the second completes it."
|
"“Maker-Checker” principle requires every tasks": "The “Maker-Checker” principle requires every tasks to be completed by two people to reduce the chance of errors and misuse. One person initiates the process and the second completes it."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -312,7 +312,7 @@
|
|||||||
"Add Report Parameter": "Agregar parámetro de reporte",
|
"Add Report Parameter": "Agregar parámetro de reporte",
|
||||||
"Add Role": "Agregar Rol",
|
"Add Role": "Agregar Rol",
|
||||||
"Add Rule": "Agregar regla",
|
"Add Rule": "Agregar regla",
|
||||||
"Add Slab": "Agregar losa",
|
"Add Slab": "Agregar Rango de Montos",
|
||||||
"Add/Edit": "Agregar/Editar",
|
"Add/Edit": "Agregar/Editar",
|
||||||
"Adjustment": "Ajustamiento",
|
"Adjustment": "Ajustamiento",
|
||||||
"Advance Options": "Opciones Avanzadas",
|
"Advance Options": "Opciones Avanzadas",
|
||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Configurar fuentes de fondos para canales de pago",
|
"Configure Fund Sources for Payment Channels": "Configurar fuentes de fondos para canales de pago",
|
||||||
"Configure Maker Checker Tasks": "Configurar tareas de Realizador Aprobador",
|
"Configure Maker Checker Tasks": "Configurar tareas de Realizador Aprobador",
|
||||||
"Configure Maker-Checker Tasks": "Configurar tareas de Realizador Aprobador",
|
"Configure Maker-Checker Tasks": "Configurar tareas de Realizador Aprobador",
|
||||||
|
"Customer Attributes": "Atributos personalizados",
|
||||||
"Configure Mifos Organization Needs": "La siguiente guía le ayudará a configurar Mifos según las necesidades de su organización.",
|
"Configure Mifos Organization Needs": "La siguiente guía le ayudará a configurar Mifos según las necesidades de su organización.",
|
||||||
"Create Charge": "Crear Comisión",
|
"Create Charge": "Crear Comisión",
|
||||||
"Create Closure": "Crear Cierre",
|
"Create Closure": "Crear Cierre",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Gráficos de tasas de interés",
|
"Interest Rate Charts": "Gráficos de tasas de interés",
|
||||||
"Interest Recalculation": "Recálculo de intereses",
|
"Interest Recalculation": "Recálculo de intereses",
|
||||||
"Interest Transfer": "Transferencia de intereses",
|
"Interest Transfer": "Transferencia de intereses",
|
||||||
"It's required to add at least one Slab": "Es necesario agregar al menos una losa.",
|
"It is required to add at least one Slab": "Es necesario agregar al menos un rango de montos",
|
||||||
"Journal Entries": "Entradas de diario",
|
"Journal Entries": "Entradas de diario",
|
||||||
"Keyboard Shortcuts": "Atajos de teclado",
|
"Keyboard Shortcuts": "Atajos de teclado",
|
||||||
"Last Active": "Último Activo",
|
"Last Active": "Último Activo",
|
||||||
@@ -778,7 +779,7 @@
|
|||||||
"Manage Tax Configurations": "Administrar configuraciones de impuestos",
|
"Manage Tax Configurations": "Administrar configuraciones de impuestos",
|
||||||
"Manage Tax Groups": "Administrar grupos de impuestos",
|
"Manage Tax Groups": "Administrar grupos de impuestos",
|
||||||
"Map Fees to Specific Income Accounts": "Asignar comisiones a cuentas de ingresos específicas",
|
"Map Fees to Specific Income Accounts": "Asignar comisiones a cuentas de ingresos específicas",
|
||||||
"Map Penalties to Specific Income Accounts": "Asignar sanciones a cuentas de ingresos específicas",
|
"Map Penalties to Specific Income Accounts": "Asignar penalizaciones a cuentas de ingresos específicas",
|
||||||
"Market Price Periods": "Períodos de precios de mercado",
|
"Market Price Periods": "Períodos de precios de mercado",
|
||||||
"Maximum Deposit Term": "Plazo máximo de depósito",
|
"Maximum Deposit Term": "Plazo máximo de depósito",
|
||||||
"Migrate Opening Balances (Office-wise)": "Migrar saldos iniciales (en la oficina)",
|
"Migrate Opening Balances (Office-wise)": "Migrar saldos iniciales (en la oficina)",
|
||||||
@@ -796,7 +797,7 @@
|
|||||||
"Overdue Charges": "Comisiones Moratorias",
|
"Overdue Charges": "Comisiones Moratorias",
|
||||||
"Password Preferences": "Preferencias de contraseña",
|
"Password Preferences": "Preferencias de contraseña",
|
||||||
"Payment Type": "Tipo de pago",
|
"Payment Type": "Tipo de pago",
|
||||||
"Penalties to Specific Income Accounts": "Sanciones a Cuentas de Ingresos Específicas",
|
"Penalties to Specific Income Accounts": "Penalizaciones a Cuentas de Ingresos Específicas",
|
||||||
"Performance History": "Historial de rendimiento",
|
"Performance History": "Historial de rendimiento",
|
||||||
"Post Interest": "Publicar interés",
|
"Post Interest": "Publicar interés",
|
||||||
"Principal by loan cycle": "Principal por ciclo de Crédito",
|
"Principal by loan cycle": "Principal por ciclo de Crédito",
|
||||||
@@ -907,7 +908,7 @@
|
|||||||
"accounting": {
|
"accounting": {
|
||||||
"ASSET": "ACTIVO",
|
"ASSET": "ACTIVO",
|
||||||
"LIABILITY": "PASIVO",
|
"LIABILITY": "PASIVO",
|
||||||
"EQUITY": "CAPITAL",
|
"EQUITY": "PATRIMONIO",
|
||||||
"INCOME": "INGRESO",
|
"INCOME": "INGRESO",
|
||||||
"EXPENSE": "EGRESO"
|
"EXPENSE": "EGRESO"
|
||||||
},
|
},
|
||||||
@@ -1203,8 +1204,8 @@
|
|||||||
"Days in Year": "Días en el año",
|
"Days in Year": "Días en el año",
|
||||||
"Days in month": "Dias en el mes",
|
"Days in month": "Dias en el mes",
|
||||||
"Days in year": "Dias en el año",
|
"Days in year": "Dias en el año",
|
||||||
"Days to Dormancy": "Días hasta la latencia",
|
"Days to Dormancy": "Días hasta la Inactividad",
|
||||||
"Days to Escheat": "Días para evitar",
|
"Days to Escheat": "Días para sin reclamo",
|
||||||
"Days to Inactive": "Días para inactivo",
|
"Days to Inactive": "Días para inactivo",
|
||||||
"Debit": "Débito",
|
"Debit": "Débito",
|
||||||
"Debit Account": "Cuenta de debito",
|
"Debit Account": "Cuenta de debito",
|
||||||
@@ -1264,7 +1265,7 @@
|
|||||||
"Dividend Period Start Date": "Fecha de inicio del período de dividendos",
|
"Dividend Period Start Date": "Fecha de inicio del período de dividendos",
|
||||||
"Dividends": "Dividendos",
|
"Dividends": "Dividendos",
|
||||||
"Documents": "Documentos",
|
"Documents": "Documentos",
|
||||||
"Dormancy Tracking": "Seguimiento de latencia",
|
"Dormancy Tracking": "Seguimiento de Inactivdad",
|
||||||
"Download": "Descargar",
|
"Download": "Descargar",
|
||||||
"Due": "Pendiente",
|
"Due": "Pendiente",
|
||||||
"Due As Of": "Vencimiento a partir de",
|
"Due As Of": "Vencimiento a partir de",
|
||||||
@@ -1300,7 +1301,7 @@
|
|||||||
"Equal Amortization": "Amortización igual",
|
"Equal Amortization": "Amortización igual",
|
||||||
"Error": "Error",
|
"Error": "Error",
|
||||||
"Error Log": "Registro de errores",
|
"Error Log": "Registro de errores",
|
||||||
"Escheat liability": "Renunciar a la responsabilidad",
|
"Escheat liability": "Renunciar a la propiedad",
|
||||||
"Event Type": "Tipo de evento",
|
"Event Type": "Tipo de evento",
|
||||||
"Events": "Eventos",
|
"Events": "Eventos",
|
||||||
"Excel 2007 format": "Formato excel 2007",
|
"Excel 2007 format": "Formato excel 2007",
|
||||||
@@ -1382,7 +1383,7 @@
|
|||||||
"GCM End Point": "Punto final del GCM",
|
"GCM End Point": "Punto final del GCM",
|
||||||
"GENERAL": "GENERAL",
|
"GENERAL": "GENERAL",
|
||||||
"GL Account Name or Code": "Nombre o código de cuenta del libro mayor",
|
"GL Account Name or Code": "Nombre o código de cuenta del libro mayor",
|
||||||
"GL Code": "Código GL",
|
"GL Code": "Número de Cuenta",
|
||||||
"GSIM Id": "Id GSM",
|
"GSIM Id": "Id GSM",
|
||||||
"Gap between Installments": "Brecha entre Cuotas:",
|
"Gap between Installments": "Brecha entre Cuotas:",
|
||||||
"Gender": "Género",
|
"Gender": "Género",
|
||||||
@@ -1433,7 +1434,7 @@
|
|||||||
"Income from Recovery Repayments": "Ingresos por amortizaciones de recuperación",
|
"Income from Recovery Repayments": "Ingresos por amortizaciones de recuperación",
|
||||||
"Income from fees": "Ingresos por Comisiones",
|
"Income from fees": "Ingresos por Comisiones",
|
||||||
"Income from fees Repayments": "Ingresos por comisiones Amortizaciones",
|
"Income from fees Repayments": "Ingresos por comisiones Amortizaciones",
|
||||||
"Income from penalties": "Ingresos por sanciones",
|
"Income from penalties": "Ingresos por penalizaciones",
|
||||||
"Incorporation No": "Número de constitución",
|
"Incorporation No": "Número de constitución",
|
||||||
"Incorporation Number": "Número de constitución",
|
"Incorporation Number": "Número de constitución",
|
||||||
"Incorporation Validity Till Date": "Validez de constitución hasta la fecha",
|
"Incorporation Validity Till Date": "Validez de constitución hasta la fecha",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "¿Está activo el proceso?",
|
"Is job active": "¿Está activo el proceso?",
|
||||||
"Is staff": "¿Es personal",
|
"Is staff": "¿Es personal",
|
||||||
"Is Zero Interest Rate?": "¿Es tasa de interés cero?",
|
"Is Zero Interest Rate?": "¿Es tasa de interés cero?",
|
||||||
|
"Is primary grouping by amount?": "¿La agrupación primaria es por monto?",
|
||||||
"JLG Loan Application": "Solicitud de Crédito JLG",
|
"JLG Loan Application": "Solicitud de Crédito JLG",
|
||||||
"Job Name": "Nombre del proceso",
|
"Job Name": "Nombre del proceso",
|
||||||
"Joined On": "Se unió",
|
"Joined On": "Se unió",
|
||||||
@@ -1589,7 +1591,7 @@
|
|||||||
"Manage Roles and Permission": "Administrar roles y permisos",
|
"Manage Roles and Permission": "Administrar roles y permisos",
|
||||||
"Mandatory": "Obligatorio",
|
"Mandatory": "Obligatorio",
|
||||||
"Mandatory Guarantee(%)": "Garantía obligatoria(%)",
|
"Mandatory Guarantee(%)": "Garantía obligatoria(%)",
|
||||||
"Manual Entries Allowed": "Entradas manuales permitidas",
|
"Manual Entries Allowed": "Permitir Entradas manuales",
|
||||||
"Mapper Key": "Clave del asignador",
|
"Mapper Key": "Clave del asignador",
|
||||||
"Mapper Value": "Valor del asignador",
|
"Mapper Value": "Valor del asignador",
|
||||||
"Mapping Between Entities": "Mapeo entre entidades",
|
"Mapping Between Entities": "Mapeo entre entidades",
|
||||||
@@ -1679,8 +1681,8 @@
|
|||||||
"Number of Active Overdue Group Loans": "Número de Créditos grupales vencidos activos",
|
"Number of Active Overdue Group Loans": "Número de Créditos grupales vencidos activos",
|
||||||
"Number of Centers": "Número de Centros",
|
"Number of Centers": "Número de Centros",
|
||||||
"Number of Clients": "Número de clientes",
|
"Number of Clients": "Número de clientes",
|
||||||
"Number of Days to Dormant sub-status": "Número de días hasta el subestado inactivo",
|
"Number of Days to Dormant sub-status": "Número de días hasta el estado inactivo",
|
||||||
"Number of Days to Escheat": "Número de días para evitar",
|
"Number of Days to Escheat": "Número de días para no reclamo",
|
||||||
"Number of Days to Inactive sub-status": "Número de días hasta el subestado inactivo",
|
"Number of Days to Inactive sub-status": "Número de días hasta el subestado inactivo",
|
||||||
"Number of Groups": "Número de grupos",
|
"Number of Groups": "Número de grupos",
|
||||||
"Number of Installments": "Número de cuotas",
|
"Number of Installments": "Número de cuotas",
|
||||||
@@ -1738,7 +1740,7 @@
|
|||||||
"Paid Date": "Fecha de pago",
|
"Paid Date": "Fecha de pago",
|
||||||
"Parameter": "Parámetro",
|
"Parameter": "Parámetro",
|
||||||
"Parameter Name Passed to Pentaho": "Nombre del parámetro pasado a Pentaho",
|
"Parameter Name Passed to Pentaho": "Nombre del parámetro pasado a Pentaho",
|
||||||
"Parent": "Padre",
|
"Parent": "Cuenta de Mayor",
|
||||||
"Parent Account Name": "Nombre de la cuenta principal",
|
"Parent Account Name": "Nombre de la cuenta principal",
|
||||||
"Parent Name": "Nombre del padre",
|
"Parent Name": "Nombre del padre",
|
||||||
"Parent Office": "Oficina matriz",
|
"Parent Office": "Oficina matriz",
|
||||||
@@ -1763,7 +1765,7 @@
|
|||||||
"Penal Interest": "Interés Penal",
|
"Penal Interest": "Interés Penal",
|
||||||
"Penalties": "Penalizaciones",
|
"Penalties": "Penalizaciones",
|
||||||
"Penalties Outstanding": "Penalizaciones pendientes",
|
"Penalties Outstanding": "Penalizaciones pendientes",
|
||||||
"Penalties Receivable": "Sanciones por Cobrar",
|
"Penalties Receivable": "Penalizaciones por Cobrar",
|
||||||
"Penalty": "Multa",
|
"Penalty": "Multa",
|
||||||
"Penalty Amount": "Monto de la multa",
|
"Penalty Amount": "Monto de la multa",
|
||||||
"Pending For Approval Shares": "Acciones pendientes de aprobación",
|
"Pending For Approval Shares": "Acciones pendientes de aprobación",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Porcentaje a la base",
|
"Percentage To Base": "Porcentaje a la base",
|
||||||
"Percentage to Base": "Porcentaje a la base",
|
"Percentage to Base": "Porcentaje a la base",
|
||||||
"Period": "Período",
|
"Period": "Período",
|
||||||
|
"Period From": "Periodo desde",
|
||||||
|
"Period To": "Período hasta",
|
||||||
|
"Period Type": "Tipo de período",
|
||||||
|
"Amount Range From": "Monto desde",
|
||||||
|
"Amount Range To": "Monto hasta",
|
||||||
"Person": "Persona",
|
"Person": "Persona",
|
||||||
"Phone Number": "Número de teléfono",
|
"Phone Number": "Número de teléfono",
|
||||||
"Place Guarantee Funds On-Hold": "Poner los fondos de garantía en espera",
|
"Place Guarantee Funds On-Hold": "Poner los fondos de garantía en espera",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Monto del Depósito Recurrente",
|
"Recurring Deposit Amount": "Monto del Depósito Recurrente",
|
||||||
"Recurring Deposit Product": "Producto de Depósito Recurrente",
|
"Recurring Deposit Product": "Producto de Depósito Recurrente",
|
||||||
"Recurring Deposit Products": "Productos de Depósito Recurrentes",
|
"Recurring Deposit Products": "Productos de Depósito Recurrentes",
|
||||||
|
"Recurring Deposit Type": "Tipo de depósito recurrente",
|
||||||
"Reference Number": "Número de referencia",
|
"Reference Number": "Número de referencia",
|
||||||
"Rejected Date": "Fecha rechazada",
|
"Rejected Date": "Fecha rechazada",
|
||||||
"Rejected On": "Rechazado el",
|
"Rejected On": "Rechazado el",
|
||||||
@@ -1912,14 +1920,14 @@
|
|||||||
"Saturday": "Sábado",
|
"Saturday": "Sábado",
|
||||||
"Saving Account": "Cuenta de Ahorros",
|
"Saving Account": "Cuenta de Ahorros",
|
||||||
"Saving control": "Control de ahorro",
|
"Saving control": "Control de ahorro",
|
||||||
"Saving reference": "Guardar referencia",
|
"Saving reference": "Referencia Ahorros",
|
||||||
"Savings Account": "Cuenta de Ahorros",
|
"Savings Account": "Cuenta de Ahorros",
|
||||||
"Savings Account No": "Cuenta de Ahorros No",
|
"Savings Account No": "Cuenta de Ahorros No",
|
||||||
"Savings Account Number": "Número de Cuenta de Ahorros",
|
"Savings Account Number": "Número de Cuenta de Ahorros",
|
||||||
"Savings Documents": "Documentos de ahorro",
|
"Savings Documents": "Documentos de ahorro",
|
||||||
"Savings Product": "Producto de Ahorro",
|
"Savings Product": "Producto de Ahorro",
|
||||||
"Savings SubType": "Subtipo de ahorro",
|
"Savings SubType": "Subtipo de ahorro",
|
||||||
"Savings transfers in suspense": "Transferencias de ahorro en vilo",
|
"Savings transfers in suspense": "Transferencias de ahorro en suspenso",
|
||||||
"Scheduler Jobs": "Procesos calendarizados",
|
"Scheduler Jobs": "Procesos calendarizados",
|
||||||
"Schedule Date": "Fecha de programacion",
|
"Schedule Date": "Fecha de programacion",
|
||||||
"Score": "Puntos",
|
"Score": "Puntos",
|
||||||
@@ -2470,7 +2478,7 @@
|
|||||||
"Define Tax Groups": "Definir grupos de impuestos",
|
"Define Tax Groups": "Definir grupos de impuestos",
|
||||||
"Define Tax components": "Definir componentes de impuestos",
|
"Define Tax components": "Definir componentes de impuestos",
|
||||||
"Define Tax components and Tax groups": "Definir componentes de impuestos y grupos de impuestos",
|
"Define Tax components and Tax groups": "Definir componentes de impuestos y grupos de impuestos",
|
||||||
"Define charges/penalties for loan products, savings and deposit products": "Definir cargos/sanciones para productos de Crédito, ahorro y depósito.",
|
"Define charges/penalties for loan products, savings and deposit products": "Definir cargos/penalizaciones para productos de Crédito, ahorro y depósito.",
|
||||||
"Define collaterals for Collateral Management": "Definir garantías para la gestión de garantías",
|
"Define collaterals for Collateral Management": "Definir garantías para la gestión de garantías",
|
||||||
"Define delinquency bucket as set of ranges": "Definir el segmento de morosidad como un conjunto de rangos",
|
"Define delinquency bucket as set of ranges": "Definir el segmento de morosidad como un conjunto de rangos",
|
||||||
"Define delinquency day ranges": "Definir rangos de días de morosidad",
|
"Define delinquency day ranges": "Definir rangos de días de morosidad",
|
||||||
@@ -2779,7 +2787,7 @@
|
|||||||
"Transaction": "Transacción",
|
"Transaction": "Transacción",
|
||||||
"Transactions": "Transacciones",
|
"Transactions": "Transacciones",
|
||||||
"Two Factor Authentication": "Autenticación de dos factores",
|
"Two Factor Authentication": "Autenticación de dos factores",
|
||||||
"Two types of charges—fees and penalties": "Mifos admite dos tipos de cargos: comisiones y sanciones. Se cobran comisiones por los servicios, por ejemplo, cuotas de membresía, comisiones de desembolso de Créditos y comisiones de retiro. Se cobran sanciones para disuadir a los clientes de desviarse de los términos de un producto.",
|
"Two types of charges—fees and penalties": "Mifos admite dos tipos de cargos: comisiones y penalizaciones. Se cobran comisiones por los servicios, por ejemplo, cuotas de membresía, comisiones de desembolso de Créditos y comisiones de retiro. Se cobran penalizaciones para disuadir a los clientes de desviarse de los términos de un producto.",
|
||||||
"Two-factor authentication configuration": "Ajustes de configuración de autenticación de dos factores",
|
"Two-factor authentication configuration": "Ajustes de configuración de autenticación de dos factores",
|
||||||
"Unassign Staff client": "¿Está seguro de que desea desasignar el asesor de este cliente?",
|
"Unassign Staff client": "¿Está seguro de que desea desasignar el asesor de este cliente?",
|
||||||
"Unassign role for client member": "¿Está seguro de que desea cancelar la asignación del rol del miembro cliente con ID?",
|
"Unassign role for client member": "¿Está seguro de que desea cancelar la asignación del rol del miembro cliente con ID?",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "No definido",
|
"undefined": "No definido",
|
||||||
"withhold tax for this account": "retener impuestos para esta cuenta",
|
"withhold tax for this account": "retener impuestos para esta cuenta",
|
||||||
"Journal Entries": "Entradas de diario",
|
"Journal Entries": "Entradas de diario",
|
||||||
|
"Mandatory": "Obligatorio",
|
||||||
|
"Voluntary": "Voluntario",
|
||||||
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa."
|
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
@@ -2961,7 +2971,7 @@
|
|||||||
"If the Interest Free Period": "Si el Período Libre de Intereses es '4' y la Frecuencia de Pago del cliente es cada semana, entonces durante las primeras cuatro semanas el cliente no necesita pagar intereses, debe pagar el principio adeudado solo para esa semana.",
|
"If the Interest Free Period": "Si el Período Libre de Intereses es '4' y la Frecuencia de Pago del cliente es cada semana, entonces durante las primeras cuatro semanas el cliente no necesita pagar intereses, debe pagar el principio adeudado solo para esa semana.",
|
||||||
"Inactivate Charge": "Inactivar Comisión",
|
"Inactivate Charge": "Inactivar Comisión",
|
||||||
"Inactive period to mark an account as Dormant": "Número consecutivo de días de período inactivo para marcar una cuenta como inactiva",
|
"Inactive period to mark an account as Dormant": "Número consecutivo de días de período inactivo para marcar una cuenta como inactiva",
|
||||||
"Inactive period to mark an account as Escheat": "Número consecutivo de días de período inactivo para marcar una cuenta como Escheat",
|
"Inactive period to mark an account as Escheat": "Número consecutivo de días de período inactivo para marcar una cuenta como sin reclamo",
|
||||||
"Inactive period to mark an account as Inactive": "Número consecutivo de días de período inactivo para marcar una cuenta como inactiva",
|
"Inactive period to mark an account as Inactive": "Número consecutivo de días de período inactivo para marcar una cuenta como inactiva",
|
||||||
"Indicates whether saving accounts based on this saving product": "Indica si las cuentas de ahorro basadas en este producto de ahorro pueden tener un sobregiro",
|
"Indicates whether saving accounts based on this saving product": "Indica si las cuentas de ahorro basadas en este producto de ahorro pueden tener un sobregiro",
|
||||||
"Indicates whether the withdrawal fee": "Indica si se debe aplicar la comisión de retiro cuando se transfieren fondos entre cuentas",
|
"Indicates whether the withdrawal fee": "Indica si se debe aplicar la comisión de retiro cuando se transfieren fondos entre cuentas",
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Configurer les sources de fonds pour les canaux de paiement",
|
"Configure Fund Sources for Payment Channels": "Configurer les sources de fonds pour les canaux de paiement",
|
||||||
"Configure Maker Checker Tasks": "Configurer les tâches de Maker Checker",
|
"Configure Maker Checker Tasks": "Configurer les tâches de Maker Checker",
|
||||||
"Configure Maker-Checker Tasks": "Configurer les tâches Maker-Checker",
|
"Configure Maker-Checker Tasks": "Configurer les tâches Maker-Checker",
|
||||||
|
"Customer Attributes": "Attributs du client",
|
||||||
"Configure Mifos Organization Needs": "La visite guidée suivante vous aidera à configurer Mifos en fonction des besoins de votre organisation.",
|
"Configure Mifos Organization Needs": "La visite guidée suivante vous aidera à configurer Mifos en fonction des besoins de votre organisation.",
|
||||||
"Create Charge": "Créer des frais",
|
"Create Charge": "Créer des frais",
|
||||||
"Create Closure": "Créer une fermeture",
|
"Create Closure": "Créer une fermeture",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Graphiques des taux d'intérêt",
|
"Interest Rate Charts": "Graphiques des taux d'intérêt",
|
||||||
"Interest Recalculation": "Recalcul des intérêts",
|
"Interest Recalculation": "Recalcul des intérêts",
|
||||||
"Interest Transfer": "Transfert d'intérêt",
|
"Interest Transfer": "Transfert d'intérêt",
|
||||||
"It's required to add at least one Slab": "Il est nécessaire d'ajouter au moins une dalle",
|
"It is required to add at least one Slab": "Il est nécessaire d'ajouter au moins une dalle",
|
||||||
"Journal Entries": "Entrées de journal",
|
"Journal Entries": "Entrées de journal",
|
||||||
"Keyboard Shortcuts": "Raccourcis clavier",
|
"Keyboard Shortcuts": "Raccourcis clavier",
|
||||||
"Last Active": "Dernier actif",
|
"Last Active": "Dernier actif",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Le travail est-il actif",
|
"Is job active": "Le travail est-il actif",
|
||||||
"Is staff": "Le personnel est-il",
|
"Is staff": "Le personnel est-il",
|
||||||
"Is Zero Interest Rate?": "Le taux d’intérêt est-il nul ?",
|
"Is Zero Interest Rate?": "Le taux d’intérêt est-il nul ?",
|
||||||
|
"Is primary grouping by amount?": "Le regroupement primaire est-il par montant ?",
|
||||||
"JLG Loan Application": "Demande de prêt JLG",
|
"JLG Loan Application": "Demande de prêt JLG",
|
||||||
"Job Name": "Nom du travail",
|
"Job Name": "Nom du travail",
|
||||||
"Joined On": "Rejoint",
|
"Joined On": "Rejoint",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Pourcentage à la base",
|
"Percentage To Base": "Pourcentage à la base",
|
||||||
"Percentage to Base": "Pourcentage à la base",
|
"Percentage to Base": "Pourcentage à la base",
|
||||||
"Period": "Période",
|
"Period": "Période",
|
||||||
|
"Period From": "Période de",
|
||||||
|
"Period To": "Période jusqu'à",
|
||||||
|
"Period Type": "Type de période",
|
||||||
|
"Amount Range From": "Fourchette de montant",
|
||||||
|
"Amount Range To": "Fourchette de montant à",
|
||||||
"Person": "Personne",
|
"Person": "Personne",
|
||||||
"Phone Number": "Numéro de téléphone",
|
"Phone Number": "Numéro de téléphone",
|
||||||
"Place Guarantee Funds On-Hold": "Mettre les fonds de garantie en attente",
|
"Place Guarantee Funds On-Hold": "Mettre les fonds de garantie en attente",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Montant du dépôt récurrent",
|
"Recurring Deposit Amount": "Montant du dépôt récurrent",
|
||||||
"Recurring Deposit Product": "Produit de dépôt récurrent",
|
"Recurring Deposit Product": "Produit de dépôt récurrent",
|
||||||
"Recurring Deposit Products": "Produits de dépôt récurrents",
|
"Recurring Deposit Products": "Produits de dépôt récurrents",
|
||||||
|
"Recurring Deposit Type": "Type de dépôt récurrent",
|
||||||
"Reference Number": "Numéro de réference",
|
"Reference Number": "Numéro de réference",
|
||||||
"Rejected Date": "Date de rejet",
|
"Rejected Date": "Date de rejet",
|
||||||
"Rejected On": "Rejeté le",
|
"Rejected On": "Rejeté le",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "indéfini",
|
"undefined": "indéfini",
|
||||||
"withhold tax for this account": "retenir l'impôt sur ce compte",
|
"withhold tax for this account": "retenir l'impôt sur ce compte",
|
||||||
"Journal Entries": "{titre : Entrées de journal",
|
"Journal Entries": "{titre : Entrées de journal",
|
||||||
|
"Mandatory": "Obligatoire",
|
||||||
|
"Voluntary": "Volontaire",
|
||||||
"“Maker-Checker” principle requires every tasks": "Le principe « Maker-Checker » exige que chaque tâche soit effectuée par deux personnes afin de réduire les risques d'erreurs et de mauvaise utilisation. Une personne lance le processus et la seconde le termine."
|
"“Maker-Checker” principle requires every tasks": "Le principe « Maker-Checker » exige que chaque tâche soit effectuée par deux personnes afin de réduire les risques d'erreurs et de mauvaise utilisation. Une personne lance le processus et la seconde le termine."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Configura le origini dei fondi per i canali di pagamento",
|
"Configure Fund Sources for Payment Channels": "Configura le origini dei fondi per i canali di pagamento",
|
||||||
"Configure Maker Checker Tasks": "Configura le attività di Maker Checker",
|
"Configure Maker Checker Tasks": "Configura le attività di Maker Checker",
|
||||||
"Configure Maker-Checker Tasks": "Configura le attività di Maker-Checker",
|
"Configure Maker-Checker Tasks": "Configura le attività di Maker-Checker",
|
||||||
|
"Customer Attributes": "Attributi del cliente",
|
||||||
"Configure Mifos Organization Needs": "Il seguente tour guidato ti aiuterà a configurare Mifos in base alle esigenze della tua organizzazione.",
|
"Configure Mifos Organization Needs": "Il seguente tour guidato ti aiuterà a configurare Mifos in base alle esigenze della tua organizzazione.",
|
||||||
"Create Charge": "Crea carica",
|
"Create Charge": "Crea carica",
|
||||||
"Create Closure": "Crea chiusura",
|
"Create Closure": "Crea chiusura",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Grafici dei tassi di interesse",
|
"Interest Rate Charts": "Grafici dei tassi di interesse",
|
||||||
"Interest Recalculation": "Ricalcolo degli interessi",
|
"Interest Recalculation": "Ricalcolo degli interessi",
|
||||||
"Interest Transfer": "Trasferimento di interessi",
|
"Interest Transfer": "Trasferimento di interessi",
|
||||||
"It's required to add at least one Slab": "È necessario aggiungere almeno una lastra",
|
"It is required to add at least one Slab": "È necessario aggiungere almeno una lastra",
|
||||||
"Journal Entries": "Voci del diario",
|
"Journal Entries": "Voci del diario",
|
||||||
"Keyboard Shortcuts": "Tasti rapidi",
|
"Keyboard Shortcuts": "Tasti rapidi",
|
||||||
"Last Active": "Ultimo attivo",
|
"Last Active": "Ultimo attivo",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Il lavoro è attivo",
|
"Is job active": "Il lavoro è attivo",
|
||||||
"Is staff": "È personale",
|
"Is staff": "È personale",
|
||||||
"Is Zero Interest Rate?": "Il tasso di interesse è zero?",
|
"Is Zero Interest Rate?": "Il tasso di interesse è zero?",
|
||||||
|
"Is primary grouping by amount?": "Il raggruppamento primario è per importo?",
|
||||||
"JLG Loan Application": "Richiesta di prestito JLG",
|
"JLG Loan Application": "Richiesta di prestito JLG",
|
||||||
"Job Name": "Nome del lavoro",
|
"Job Name": "Nome del lavoro",
|
||||||
"Joined On": "Iscritto su",
|
"Joined On": "Iscritto su",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Percentuale rispetto alla base",
|
"Percentage To Base": "Percentuale rispetto alla base",
|
||||||
"Percentage to Base": "Percentuale rispetto alla base",
|
"Percentage to Base": "Percentuale rispetto alla base",
|
||||||
"Period": "Periodo",
|
"Period": "Periodo",
|
||||||
|
"Period From": "Periodo da",
|
||||||
|
"Period To": "Periodo a",
|
||||||
|
"Period Type": "Tipo di periodo",
|
||||||
|
"Amount Range From": "Intervallo di importo da",
|
||||||
|
"Amount Range To": "Intervallo di importo fino a",
|
||||||
"Person": "Persona",
|
"Person": "Persona",
|
||||||
"Phone Number": "Numero di telefono",
|
"Phone Number": "Numero di telefono",
|
||||||
"Place Guarantee Funds On-Hold": "Posizionare i fondi di garanzia in sospeso",
|
"Place Guarantee Funds On-Hold": "Posizionare i fondi di garanzia in sospeso",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Importo del deposito ricorrente",
|
"Recurring Deposit Amount": "Importo del deposito ricorrente",
|
||||||
"Recurring Deposit Product": "Prodotto con deposito ricorrente",
|
"Recurring Deposit Product": "Prodotto con deposito ricorrente",
|
||||||
"Recurring Deposit Products": "Prodotti con deposito ricorrente",
|
"Recurring Deposit Products": "Prodotti con deposito ricorrente",
|
||||||
|
"Recurring Deposit Type": "Tipo di deposito ricorrente",
|
||||||
"Reference Number": "Numero di riferimento",
|
"Reference Number": "Numero di riferimento",
|
||||||
"Rejected Date": "Data rifiutata",
|
"Rejected Date": "Data rifiutata",
|
||||||
"Rejected On": "Rifiutato",
|
"Rejected On": "Rifiutato",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "non definito",
|
"undefined": "non definito",
|
||||||
"withhold tax for this account": "trattenere l'imposta per questo conto",
|
"withhold tax for this account": "trattenere l'imposta per questo conto",
|
||||||
"Journal Entries": "{titolo: Voci di diario",
|
"Journal Entries": "{titolo: Voci di diario",
|
||||||
|
"Mandatory": "Obbligatorio",
|
||||||
|
"Voluntary": "Volontario",
|
||||||
"“Maker-Checker” principle requires every tasks": "Il principio “Maker-Checker” richiede che ogni attività venga completata da due persone per ridurre la possibilità di errori e usi impropri. Una persona avvia il processo e la seconda lo completa."
|
"“Maker-Checker” principle requires every tasks": "Il principio “Maker-Checker” richiede che ogni attività venga completata da due persone per ridurre la possibilità di errori e usi impropri. Una persona avvia il processo e la seconda lo completa."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "지불 채널에 대한 자금 출처 구성",
|
"Configure Fund Sources for Payment Channels": "지불 채널에 대한 자금 출처 구성",
|
||||||
"Configure Maker Checker Tasks": "Maker Checker 작업 구성",
|
"Configure Maker Checker Tasks": "Maker Checker 작업 구성",
|
||||||
"Configure Maker-Checker Tasks": "Maker-Checker 작업 구성",
|
"Configure Maker-Checker Tasks": "Maker-Checker 작업 구성",
|
||||||
|
"Customer Attributes": "고객 속성",
|
||||||
"Configure Mifos Organization Needs": "다음 가이드 투어는 조직의 필요에 따라 Mifos를 구성하는 데 도움이 됩니다.",
|
"Configure Mifos Organization Needs": "다음 가이드 투어는 조직의 필요에 따라 Mifos를 구성하는 데 도움이 됩니다.",
|
||||||
"Create Charge": "청구 생성",
|
"Create Charge": "청구 생성",
|
||||||
"Create Closure": "클로저 생성",
|
"Create Closure": "클로저 생성",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "금리 차트",
|
"Interest Rate Charts": "금리 차트",
|
||||||
"Interest Recalculation": "이자 재계산",
|
"Interest Recalculation": "이자 재계산",
|
||||||
"Interest Transfer": "이자 이전",
|
"Interest Transfer": "이자 이전",
|
||||||
"It's required to add at least one Slab": "하나 이상의 Slab을 추가해야 합니다.",
|
"It is required to add at least one Slab": "하나 이상의 Slab을 추가해야 합니다.",
|
||||||
"Journal Entries": "분개 항목",
|
"Journal Entries": "분개 항목",
|
||||||
"Keyboard Shortcuts": "키보드 단축키",
|
"Keyboard Shortcuts": "키보드 단축키",
|
||||||
"Last Active": "마지막 활성",
|
"Last Active": "마지막 활성",
|
||||||
@@ -1506,6 +1507,7 @@
|
|||||||
"Is job active": "작업이 활성 상태입니까?",
|
"Is job active": "작업이 활성 상태입니까?",
|
||||||
"Is staff": "직원인가",
|
"Is staff": "직원인가",
|
||||||
"Is Zero Interest Rate?": "제로금리인가?",
|
"Is Zero Interest Rate?": "제로금리인가?",
|
||||||
|
"Is primary grouping by amount?": "기본 그룹화는 금액별로 이루어 집니까?",
|
||||||
"JLG Loan Application": "JLG 대출 신청",
|
"JLG Loan Application": "JLG 대출 신청",
|
||||||
"Job Name": "직업 이름",
|
"Job Name": "직업 이름",
|
||||||
"Joined On": "가입 날짜",
|
"Joined On": "가입 날짜",
|
||||||
@@ -1773,6 +1775,11 @@
|
|||||||
"Percentage To Base": "베이스에 대한 백분율",
|
"Percentage To Base": "베이스에 대한 백분율",
|
||||||
"Percentage to Base": "베이스에 대한 백분율",
|
"Percentage to Base": "베이스에 대한 백분율",
|
||||||
"Period": "기간",
|
"Period": "기간",
|
||||||
|
"Period From": "기간: 부터",
|
||||||
|
"Period To": "기간: 까지",
|
||||||
|
"Period Type": "기간 유형",
|
||||||
|
"Amount Range From": "금액 범위: 부터",
|
||||||
|
"Amount Range To": "금액 범위:",
|
||||||
"Person": "사람",
|
"Person": "사람",
|
||||||
"Phone Number": "전화 번호",
|
"Phone Number": "전화 번호",
|
||||||
"Place Guarantee Funds On-Hold": "보증 자금 보류",
|
"Place Guarantee Funds On-Hold": "보증 자금 보류",
|
||||||
@@ -1837,6 +1844,7 @@
|
|||||||
"Recurring Deposit Amount": "정기입금액",
|
"Recurring Deposit Amount": "정기입금액",
|
||||||
"Recurring Deposit Product": "정기예금 상품",
|
"Recurring Deposit Product": "정기예금 상품",
|
||||||
"Recurring Deposit Products": "정기예금 상품",
|
"Recurring Deposit Products": "정기예금 상품",
|
||||||
|
"Recurring Deposit Type": "정기예금 유형",
|
||||||
"Reference Number": "참조번호",
|
"Reference Number": "참조번호",
|
||||||
"Rejected Date": "거부된 날짜",
|
"Rejected Date": "거부된 날짜",
|
||||||
"Rejected On": "거부 날짜",
|
"Rejected On": "거부 날짜",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "한정되지 않은",
|
"undefined": "한정되지 않은",
|
||||||
"withhold tax for this account": "이 계정에 대한 원천징수세",
|
"withhold tax for this account": "이 계정에 대한 원천징수세",
|
||||||
"Journal Entries": "{제목: 저널 항목",
|
"Journal Entries": "{제목: 저널 항목",
|
||||||
|
"Mandatory": "필수적인",
|
||||||
|
"Voluntary": "자발적인",
|
||||||
"“Maker-Checker” principle requires every tasks": "\"Maker-Checker\" 원칙은 오류와 오용 가능성을 줄이기 위해 모든 작업을 두 사람이 완료하도록 요구합니다. 한 사람이 프로세스를 시작하고 두 번째 사람이 프로세스를 완료합니다."
|
"“Maker-Checker” principle requires every tasks": "\"Maker-Checker\" 원칙은 오류와 오용 가능성을 줄이기 위해 모든 작업을 두 사람이 완료하도록 요구합니다. 한 사람이 프로세스를 시작하고 두 번째 사람이 프로세스를 완료합니다."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Konfigūruokite mokėjimo kanalų lėšų šaltinius",
|
"Configure Fund Sources for Payment Channels": "Konfigūruokite mokėjimo kanalų lėšų šaltinius",
|
||||||
"Configure Maker Checker Tasks": "Konfigūruokite Maker Checker užduotis",
|
"Configure Maker Checker Tasks": "Konfigūruokite Maker Checker užduotis",
|
||||||
"Configure Maker-Checker Tasks": "Konfigūruokite Maker-Checker užduotis",
|
"Configure Maker-Checker Tasks": "Konfigūruokite Maker-Checker užduotis",
|
||||||
|
"Customer Attributes": "Kliento atributai",
|
||||||
"Configure Mifos Organization Needs": "Šis vadovas padės sukonfigūruoti „Mifos“ pagal jūsų organizacijos poreikius.",
|
"Configure Mifos Organization Needs": "Šis vadovas padės sukonfigūruoti „Mifos“ pagal jūsų organizacijos poreikius.",
|
||||||
"Create Charge": "Sukurti mokestį",
|
"Create Charge": "Sukurti mokestį",
|
||||||
"Create Closure": "Sukurti uždarymą",
|
"Create Closure": "Sukurti uždarymą",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Palūkanų normų diagramos",
|
"Interest Rate Charts": "Palūkanų normų diagramos",
|
||||||
"Interest Recalculation": "Palūkanų perskaičiavimas",
|
"Interest Recalculation": "Palūkanų perskaičiavimas",
|
||||||
"Interest Transfer": "Palūkanų pervedimas",
|
"Interest Transfer": "Palūkanų pervedimas",
|
||||||
"It's required to add at least one Slab": "Būtina pridėti bent vieną plokštę",
|
"It is required to add at least one Slab": "Būtina pridėti bent vieną plokštę",
|
||||||
"Journal Entries": "Žurnalo įrašai",
|
"Journal Entries": "Žurnalo įrašai",
|
||||||
"Keyboard Shortcuts": "Klaviatūros nuorodos",
|
"Keyboard Shortcuts": "Klaviatūros nuorodos",
|
||||||
"Last Active": "Paskutinis aktyvus",
|
"Last Active": "Paskutinis aktyvus",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Darbas aktyvus",
|
"Is job active": "Darbas aktyvus",
|
||||||
"Is staff": "Yra personalas",
|
"Is staff": "Yra personalas",
|
||||||
"Is Zero Interest Rate?": "Ar nulinė palūkanų norma?",
|
"Is Zero Interest Rate?": "Ar nulinė palūkanų norma?",
|
||||||
|
"Is primary grouping by amount?": "Ar pirminis grupavimas pagal sumą?",
|
||||||
"JLG Loan Application": "JLG paskolos paraiška",
|
"JLG Loan Application": "JLG paskolos paraiška",
|
||||||
"Job Name": "Darbo pavadinimas",
|
"Job Name": "Darbo pavadinimas",
|
||||||
"Joined On": "Prisijungė",
|
"Joined On": "Prisijungė",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Procentai iki bazės",
|
"Percentage To Base": "Procentai iki bazės",
|
||||||
"Percentage to Base": "Procentai iki bazės",
|
"Percentage to Base": "Procentai iki bazės",
|
||||||
"Period": "Laikotarpis",
|
"Period": "Laikotarpis",
|
||||||
|
"Period From": "Laikotarpis Nuo",
|
||||||
|
"Period To": "Laikotarpis iki",
|
||||||
|
"Period Type": "Laikotarpio tipas",
|
||||||
|
"Amount Range From": "Sumos diapazonas nuo",
|
||||||
|
"Amount Range To": "Sumos diapazonas Iki",
|
||||||
"Person": "Asmuo",
|
"Person": "Asmuo",
|
||||||
"Phone Number": "Telefono numeris",
|
"Phone Number": "Telefono numeris",
|
||||||
"Place Guarantee Funds On-Hold": "Vietos garantijos lėšos yra sulaikytos",
|
"Place Guarantee Funds On-Hold": "Vietos garantijos lėšos yra sulaikytos",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Pasikartojanti indėlio suma",
|
"Recurring Deposit Amount": "Pasikartojanti indėlio suma",
|
||||||
"Recurring Deposit Product": "Pasikartojančio indėlio produktas",
|
"Recurring Deposit Product": "Pasikartojančio indėlio produktas",
|
||||||
"Recurring Deposit Products": "Pasikartojančių indėlių produktai",
|
"Recurring Deposit Products": "Pasikartojančių indėlių produktai",
|
||||||
|
"Recurring Deposit Type": "Pasikartojančio indėlio tipas",
|
||||||
"Reference Number": "Šaltinio numeris",
|
"Reference Number": "Šaltinio numeris",
|
||||||
"Rejected Date": "Atmetimo data",
|
"Rejected Date": "Atmetimo data",
|
||||||
"Rejected On": "Atmesta",
|
"Rejected On": "Atmesta",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "neapibrėžtas",
|
"undefined": "neapibrėžtas",
|
||||||
"withhold tax for this account": "išskaičiuoti mokesčius už šią sąskaitą",
|
"withhold tax for this account": "išskaičiuoti mokesčius už šią sąskaitą",
|
||||||
"Journal Entries": "{pavadinimas: žurnalo įrašai",
|
"Journal Entries": "{pavadinimas: žurnalo įrašai",
|
||||||
|
"Mandatory": "Privaloma",
|
||||||
|
"Voluntary": "Savanoriškas",
|
||||||
"“Maker-Checker” principle requires every tasks": "„Maker-Checker“ principas reikalauja, kad kiekvieną užduotį atliktų du žmonės, kad būtų sumažinta klaidų ir netinkamo naudojimo galimybė. Vienas asmuo pradeda procesą, o antrasis jį užbaigia."
|
"“Maker-Checker” principle requires every tasks": "„Maker-Checker“ principas reikalauja, kad kiekvieną užduotį atliktų du žmonės, kad būtų sumažinta klaidų ir netinkamo naudojimo galimybė. Vienas asmuo pradeda procesą, o antrasis jį užbaigia."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Konfigurējiet līdzekļu avotus maksājumu kanāliem",
|
"Configure Fund Sources for Payment Channels": "Konfigurējiet līdzekļu avotus maksājumu kanāliem",
|
||||||
"Configure Maker Checker Tasks": "Konfigurējiet Maker Checker uzdevumus",
|
"Configure Maker Checker Tasks": "Konfigurējiet Maker Checker uzdevumus",
|
||||||
"Configure Maker-Checker Tasks": "Konfigurējiet Maker-Checker uzdevumus",
|
"Configure Maker-Checker Tasks": "Konfigurējiet Maker-Checker uzdevumus",
|
||||||
|
"Customer Attributes": "Klientu atribūti",
|
||||||
"Configure Mifos Organization Needs": "Sekojošais ceļvedis palīdzēs konfigurēt Mifos atbilstoši jūsu organizācijas vajadzībām.",
|
"Configure Mifos Organization Needs": "Sekojošais ceļvedis palīdzēs konfigurēt Mifos atbilstoši jūsu organizācijas vajadzībām.",
|
||||||
"Create Charge": "Izveidot maksu",
|
"Create Charge": "Izveidot maksu",
|
||||||
"Create Closure": "Izveidot slēgšanu",
|
"Create Closure": "Izveidot slēgšanu",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Procentu likmju diagrammas",
|
"Interest Rate Charts": "Procentu likmju diagrammas",
|
||||||
"Interest Recalculation": "Procentu pārrēķins",
|
"Interest Recalculation": "Procentu pārrēķins",
|
||||||
"Interest Transfer": "Procentu pārskaitījums",
|
"Interest Transfer": "Procentu pārskaitījums",
|
||||||
"It's required to add at least one Slab": "Ir jāpievieno vismaz viena plāksne",
|
"It is required to add at least one Slab": "Ir jāpievieno vismaz viena plāksne",
|
||||||
"Journal Entries": "Dienasgrāmatas ieraksti",
|
"Journal Entries": "Dienasgrāmatas ieraksti",
|
||||||
"Keyboard Shortcuts": "Tastatūras īsinājumtaustiņi",
|
"Keyboard Shortcuts": "Tastatūras īsinājumtaustiņi",
|
||||||
"Last Active": "Pēdējā aktīva",
|
"Last Active": "Pēdējā aktīva",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Vai darbs ir aktīvs",
|
"Is job active": "Vai darbs ir aktīvs",
|
||||||
"Is staff": "Ir personāls",
|
"Is staff": "Ir personāls",
|
||||||
"Is Zero Interest Rate?": "Vai procentu likme ir nulle?",
|
"Is Zero Interest Rate?": "Vai procentu likme ir nulle?",
|
||||||
|
"Is primary grouping by amount?": "Vai primārā grupēšana ir pēc summas?",
|
||||||
"JLG Loan Application": "JLG aizdevuma pieteikums",
|
"JLG Loan Application": "JLG aizdevuma pieteikums",
|
||||||
"Job Name": "Darba nosaukums",
|
"Job Name": "Darba nosaukums",
|
||||||
"Joined On": "Pievienojās",
|
"Joined On": "Pievienojās",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Procenti līdz bāzei",
|
"Percentage To Base": "Procenti līdz bāzei",
|
||||||
"Percentage to Base": "Procenti līdz bāzei",
|
"Percentage to Base": "Procenti līdz bāzei",
|
||||||
"Period": "Periods",
|
"Period": "Periods",
|
||||||
|
"Period From": "Periods No",
|
||||||
|
"Period To": "Periods līdz",
|
||||||
|
"Period Type": "Perioda veids",
|
||||||
|
"Amount Range From": "Summa diapazons no",
|
||||||
|
"Amount Range To": "Summa diapazons Līdz",
|
||||||
"Person": "Persona",
|
"Person": "Persona",
|
||||||
"Phone Number": "Telefona numurs",
|
"Phone Number": "Telefona numurs",
|
||||||
"Place Guarantee Funds On-Hold": "Vietas garantijas fondu aizturēšana",
|
"Place Guarantee Funds On-Hold": "Vietas garantijas fondu aizturēšana",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Periodiskā depozīta summa",
|
"Recurring Deposit Amount": "Periodiskā depozīta summa",
|
||||||
"Recurring Deposit Product": "Atkārtota depozīta produkts",
|
"Recurring Deposit Product": "Atkārtota depozīta produkts",
|
||||||
"Recurring Deposit Products": "Atkārtota depozīta produkti",
|
"Recurring Deposit Products": "Atkārtota depozīta produkti",
|
||||||
|
"Recurring Deposit Type": "Atkārtota depozīta veids",
|
||||||
"Reference Number": "Atsauces numurs",
|
"Reference Number": "Atsauces numurs",
|
||||||
"Rejected Date": "Noraidīšanas datums",
|
"Rejected Date": "Noraidīšanas datums",
|
||||||
"Rejected On": "Noraidīts",
|
"Rejected On": "Noraidīts",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "nenoteikts",
|
"undefined": "nenoteikts",
|
||||||
"withhold tax for this account": "ieturēt nodokli par šo kontu",
|
"withhold tax for this account": "ieturēt nodokli par šo kontu",
|
||||||
"Journal Entries": "Žurnāla ieraksti",
|
"Journal Entries": "Žurnāla ieraksti",
|
||||||
|
"Mandatory": "Obligāts",
|
||||||
|
"Voluntary": "Brīvprātīgi",
|
||||||
"“Maker-Checker” principle requires every tasks": "“Maker-Checker” princips paredz, ka katrs uzdevums ir jāveic diviem cilvēkiem, lai samazinātu kļūdu un nepareizas lietošanas iespējamību. Viens cilvēks uzsāk procesu, bet otrs to pabeidz."
|
"“Maker-Checker” principle requires every tasks": "“Maker-Checker” princips paredz, ka katrs uzdevums ir jāveic diviem cilvēkiem, lai samazinātu kļūdu un nepareizas lietošanas iespējamību. Viens cilvēks uzsāk procesu, bet otrs to pabeidz."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "भुक्तानी च्यानलहरूको लागि कोष स्रोतहरू कन्फिगर गर्नुहोस्",
|
"Configure Fund Sources for Payment Channels": "भुक्तानी च्यानलहरूको लागि कोष स्रोतहरू कन्फिगर गर्नुहोस्",
|
||||||
"Configure Maker Checker Tasks": "मेकर जाँचकर्ता कार्यहरू कन्फिगर गर्नुहोस्",
|
"Configure Maker Checker Tasks": "मेकर जाँचकर्ता कार्यहरू कन्फिगर गर्नुहोस्",
|
||||||
"Configure Maker-Checker Tasks": "मेकर-चेकर कार्यहरू कन्फिगर गर्नुहोस्",
|
"Configure Maker-Checker Tasks": "मेकर-चेकर कार्यहरू कन्फिगर गर्नुहोस्",
|
||||||
|
"Customer Attributes": "ग्राहक विशेषताहरू",
|
||||||
"Configure Mifos Organization Needs": "निम्न गाईड टूरले तपाइँलाई तपाइँको संगठन आवश्यकता अनुसार Mifos कन्फिगर गर्न मद्दत गर्नेछ।",
|
"Configure Mifos Organization Needs": "निम्न गाईड टूरले तपाइँलाई तपाइँको संगठन आवश्यकता अनुसार Mifos कन्फिगर गर्न मद्दत गर्नेछ।",
|
||||||
"Create Charge": "चार्ज सिर्जना गर्नुहोस्",
|
"Create Charge": "चार्ज सिर्जना गर्नुहोस्",
|
||||||
"Create Closure": "बन्द सिर्जना गर्नुहोस्",
|
"Create Closure": "बन्द सिर्जना गर्नुहोस्",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "ब्याज दर चार्टहरू",
|
"Interest Rate Charts": "ब्याज दर चार्टहरू",
|
||||||
"Interest Recalculation": "ब्याज पुन: गणना",
|
"Interest Recalculation": "ब्याज पुन: गणना",
|
||||||
"Interest Transfer": "ब्याज स्थानान्तरण",
|
"Interest Transfer": "ब्याज स्थानान्तरण",
|
||||||
"It's required to add at least one Slab": "कम्तिमा एउटा स्ल्याब थप्न आवश्यक छ",
|
"It is required to add at least one Slab": "कम्तिमा एउटा स्ल्याब थप्न आवश्यक छ",
|
||||||
"Journal Entries": "जर्नल प्रविष्टिहरू",
|
"Journal Entries": "जर्नल प्रविष्टिहरू",
|
||||||
"Keyboard Shortcuts": "किबोर्ड सर्टकटहरू",
|
"Keyboard Shortcuts": "किबोर्ड सर्टकटहरू",
|
||||||
"Last Active": "पछिल्लो सक्रिय",
|
"Last Active": "पछिल्लो सक्रिय",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "काम सक्रिय छ",
|
"Is job active": "काम सक्रिय छ",
|
||||||
"Is staff": "कर्मचारी छ",
|
"Is staff": "कर्मचारी छ",
|
||||||
"Is Zero Interest Rate?": "शून्य ब्याजदर हो ?",
|
"Is Zero Interest Rate?": "शून्य ब्याजदर हो ?",
|
||||||
|
"Is primary grouping by amount?": "रकम द्वारा प्राथमिक समूहीकरण छ?",
|
||||||
"JLG Loan Application": "JLG ऋण आवेदन",
|
"JLG Loan Application": "JLG ऋण आवेदन",
|
||||||
"Job Name": "कामको नाम",
|
"Job Name": "कामको नाम",
|
||||||
"Joined On": "मा सामेल हुनुभयो",
|
"Joined On": "मा सामेल हुनुभयो",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "आधारमा प्रतिशत",
|
"Percentage To Base": "आधारमा प्रतिशत",
|
||||||
"Percentage to Base": "आधार को प्रतिशत",
|
"Percentage to Base": "आधार को प्रतिशत",
|
||||||
"Period": "अवधि",
|
"Period": "अवधि",
|
||||||
|
"Period From": "बाट अवधि",
|
||||||
|
"Period To": "को अवधि",
|
||||||
|
"Period Type": "अवधि प्रकार",
|
||||||
|
"Amount Range From": "बाट रकम दायरा",
|
||||||
|
"Amount Range To": "रकम दायरा",
|
||||||
"Person": "व्यक्ति",
|
"Person": "व्यक्ति",
|
||||||
"Phone Number": "फोन नम्बर",
|
"Phone Number": "फोन नम्बर",
|
||||||
"Place Guarantee Funds On-Hold": "ग्यारेन्टी कोष अन-होल्ड राख्नुहोस्",
|
"Place Guarantee Funds On-Hold": "ग्यारेन्टी कोष अन-होल्ड राख्नुहोस्",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "आवर्ती जम्मा रकम",
|
"Recurring Deposit Amount": "आवर्ती जम्मा रकम",
|
||||||
"Recurring Deposit Product": "आवर्ती जम्मा उत्पादन",
|
"Recurring Deposit Product": "आवर्ती जम्मा उत्पादन",
|
||||||
"Recurring Deposit Products": "आवर्ती जम्मा उत्पादनहरू",
|
"Recurring Deposit Products": "आवर्ती जम्मा उत्पादनहरू",
|
||||||
|
"Recurring Deposit Type": "आवर्ती जम्मा प्रकार",
|
||||||
"Reference Number": "सन्दर्भ नम्बर",
|
"Reference Number": "सन्दर्भ नम्बर",
|
||||||
"Rejected Date": "अस्वीकार गरिएको मिति",
|
"Rejected Date": "अस्वीकार गरिएको मिति",
|
||||||
"Rejected On": "मा अस्वीकार गरियो",
|
"Rejected On": "मा अस्वीकार गरियो",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "अपरिभाषित",
|
"undefined": "अपरिभाषित",
|
||||||
"withhold tax for this account": "यस खाताको लागि कर रोक्नुहोस्",
|
"withhold tax for this account": "यस खाताको लागि कर रोक्नुहोस्",
|
||||||
"Journal Entries": "{शीर्षक: जर्नल प्रविष्टिहरू",
|
"Journal Entries": "{शीर्षक: जर्नल प्रविष्टिहरू",
|
||||||
|
"Mandatory": "अनिवार्य",
|
||||||
|
"Voluntary": "स्वैच्छिक",
|
||||||
"“Maker-Checker” principle requires every tasks": "\"मेकर-चेकर\" सिद्धान्तले त्रुटि र दुरुपयोगको सम्भावना कम गर्न प्रत्येक कार्यहरू दुई व्यक्तिद्वारा पूरा गर्न आवश्यक छ। एक व्यक्तिले प्रक्रिया सुरु गर्छ र दोस्रोले यसलाई पूरा गर्दछ।"
|
"“Maker-Checker” principle requires every tasks": "\"मेकर-चेकर\" सिद्धान्तले त्रुटि र दुरुपयोगको सम्भावना कम गर्न प्रत्येक कार्यहरू दुई व्यक्तिद्वारा पूरा गर्न आवश्यक छ। एक व्यक्तिले प्रक्रिया सुरु गर्छ र दोस्रोले यसलाई पूरा गर्दछ।"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Configurar fontes de fundos para canais de pagamento",
|
"Configure Fund Sources for Payment Channels": "Configurar fontes de fundos para canais de pagamento",
|
||||||
"Configure Maker Checker Tasks": "Configurar tarefas do Maker Checker",
|
"Configure Maker Checker Tasks": "Configurar tarefas do Maker Checker",
|
||||||
"Configure Maker-Checker Tasks": "Configurar tarefas do Maker-Checker",
|
"Configure Maker-Checker Tasks": "Configurar tarefas do Maker-Checker",
|
||||||
|
"Customer Attributes": "Atributos do cliente",
|
||||||
"Configure Mifos Organization Needs": "O guia a seguir o ajudará a configurar o Mifos de acordo com as necessidades da sua organização.",
|
"Configure Mifos Organization Needs": "O guia a seguir o ajudará a configurar o Mifos de acordo com as necessidades da sua organização.",
|
||||||
"Create Charge": "Criar cobrança",
|
"Create Charge": "Criar cobrança",
|
||||||
"Create Closure": "Criar encerramento",
|
"Create Closure": "Criar encerramento",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Gráficos de taxas de juros",
|
"Interest Rate Charts": "Gráficos de taxas de juros",
|
||||||
"Interest Recalculation": "Recálculo de juros",
|
"Interest Recalculation": "Recálculo de juros",
|
||||||
"Interest Transfer": "Transferência de juros",
|
"Interest Transfer": "Transferência de juros",
|
||||||
"It's required to add at least one Slab": "É necessário adicionar pelo menos uma Laje",
|
"It is required to add at least one Slab": "É necessário adicionar pelo menos uma Laje",
|
||||||
"Journal Entries": "Lançamentos de diário",
|
"Journal Entries": "Lançamentos de diário",
|
||||||
"Keyboard Shortcuts": "Atalhos do teclado",
|
"Keyboard Shortcuts": "Atalhos do teclado",
|
||||||
"Last Active": "ativo pela última vez",
|
"Last Active": "ativo pela última vez",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "O trabalho está ativo",
|
"Is job active": "O trabalho está ativo",
|
||||||
"Is staff": "É pessoal",
|
"Is staff": "É pessoal",
|
||||||
"Is Zero Interest Rate?": "A taxa de juros é zero?",
|
"Is Zero Interest Rate?": "A taxa de juros é zero?",
|
||||||
|
"Is primary grouping by amount?": "O agrupamento primário é por valor?",
|
||||||
"JLG Loan Application": "Solicitação de empréstimo JLG",
|
"JLG Loan Application": "Solicitação de empréstimo JLG",
|
||||||
"Job Name": "Nome do trabalho",
|
"Job Name": "Nome do trabalho",
|
||||||
"Joined On": "Entrou em",
|
"Joined On": "Entrou em",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Porcentagem até a base",
|
"Percentage To Base": "Porcentagem até a base",
|
||||||
"Percentage to Base": "Porcentagem para Base",
|
"Percentage to Base": "Porcentagem para Base",
|
||||||
"Period": "Período",
|
"Period": "Período",
|
||||||
|
"Period From": "Periodo de",
|
||||||
|
"Period To": "Período até",
|
||||||
|
"Period Type": "Tipo de período",
|
||||||
|
"Amount Range From": "Faixa de valor de",
|
||||||
|
"Amount Range To": "Faixa de valor até",
|
||||||
"Person": "Pessoa",
|
"Person": "Pessoa",
|
||||||
"Phone Number": "Número de telefone",
|
"Phone Number": "Número de telefone",
|
||||||
"Place Guarantee Funds On-Hold": "Colocar fundos de garantia em espera",
|
"Place Guarantee Funds On-Hold": "Colocar fundos de garantia em espera",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Valor do depósito recorrente",
|
"Recurring Deposit Amount": "Valor do depósito recorrente",
|
||||||
"Recurring Deposit Product": "Produto de Depósito Recorrente",
|
"Recurring Deposit Product": "Produto de Depósito Recorrente",
|
||||||
"Recurring Deposit Products": "Produtos de Depósito Recorrente",
|
"Recurring Deposit Products": "Produtos de Depósito Recorrente",
|
||||||
|
"Recurring Deposit Type": "Tipo de depósito recorrente",
|
||||||
"Reference Number": "Número de referência",
|
"Reference Number": "Número de referência",
|
||||||
"Rejected Date": "Data de rejeição",
|
"Rejected Date": "Data de rejeição",
|
||||||
"Rejected On": "Rejeitado em",
|
"Rejected On": "Rejeitado em",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "indefinido",
|
"undefined": "indefinido",
|
||||||
"withhold tax for this account": "reter imposto para esta conta",
|
"withhold tax for this account": "reter imposto para esta conta",
|
||||||
"Journal Entries": "{título: Lançamentos Diários",
|
"Journal Entries": "{título: Lançamentos Diários",
|
||||||
|
"Mandatory": "Obrigatório",
|
||||||
|
"Voluntary": "Voluntário",
|
||||||
"“Maker-Checker” principle requires every tasks": "O princípio “Maker-Checker” exige que todas as tarefas sejam concluídas por duas pessoas para reduzir a chance de erros e uso indevido. Uma pessoa inicia o processo e a segunda o conclui."
|
"“Maker-Checker” principle requires every tasks": "O princípio “Maker-Checker” exige que todas as tarefas sejam concluídas por duas pessoas para reduzir a chance de erros e uso indevido. Uma pessoa inicia o processo e a segunda o conclui."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"Configure Fund Sources for Payment Channels": "Sanidi Vyanzo vya Fedha vya Njia za Malipo",
|
"Configure Fund Sources for Payment Channels": "Sanidi Vyanzo vya Fedha vya Njia za Malipo",
|
||||||
"Configure Maker Checker Tasks": "Sanidi Majukumu ya Kikagua Kitengeneza",
|
"Configure Maker Checker Tasks": "Sanidi Majukumu ya Kikagua Kitengeneza",
|
||||||
"Configure Maker-Checker Tasks": "Sanidi Majukumu ya Kikagua",
|
"Configure Maker-Checker Tasks": "Sanidi Majukumu ya Kikagua",
|
||||||
|
"Customer Attributes": "Sifa za Wateja",
|
||||||
"Configure Mifos Organization Needs": "Ziara ya kufuata itakusaidia kusanidi Mifos kulingana na mahitaji ya shirika lako.",
|
"Configure Mifos Organization Needs": "Ziara ya kufuata itakusaidia kusanidi Mifos kulingana na mahitaji ya shirika lako.",
|
||||||
"Create Charge": "Unda Malipo",
|
"Create Charge": "Unda Malipo",
|
||||||
"Create Closure": "Unda Kufungwa",
|
"Create Closure": "Unda Kufungwa",
|
||||||
@@ -719,7 +720,7 @@
|
|||||||
"Interest Rate Charts": "Chati za Kiwango cha Riba",
|
"Interest Rate Charts": "Chati za Kiwango cha Riba",
|
||||||
"Interest Recalculation": "Uhesabuji wa Maslahi",
|
"Interest Recalculation": "Uhesabuji wa Maslahi",
|
||||||
"Interest Transfer": "Uhamisho wa Riba",
|
"Interest Transfer": "Uhamisho wa Riba",
|
||||||
"It's required to add at least one Slab": "Inahitajika kuongeza angalau Slab moja",
|
"It is required to add at least one Slab": "Inahitajika kuongeza angalau Slab moja",
|
||||||
"Journal Entries": "Maingizo ya Jarida",
|
"Journal Entries": "Maingizo ya Jarida",
|
||||||
"Keyboard Shortcuts": "Njia za mkato za Kibodi",
|
"Keyboard Shortcuts": "Njia za mkato za Kibodi",
|
||||||
"Last Active": "Iliyotumika Mwisho",
|
"Last Active": "Iliyotumika Mwisho",
|
||||||
@@ -1505,6 +1506,7 @@
|
|||||||
"Is job active": "Je, kazi ipo",
|
"Is job active": "Je, kazi ipo",
|
||||||
"Is staff": "Ni wafanyakazi",
|
"Is staff": "Ni wafanyakazi",
|
||||||
"Is Zero Interest Rate?": "Je, Kiwango cha Riba Sifuri?",
|
"Is Zero Interest Rate?": "Je, Kiwango cha Riba Sifuri?",
|
||||||
|
"Is primary grouping by amount?": "Je, upangaji wa msingi kwa kiasi?",
|
||||||
"JLG Loan Application": "Maombi ya Mkopo ya JLG",
|
"JLG Loan Application": "Maombi ya Mkopo ya JLG",
|
||||||
"Job Name": "Jina la Kazi",
|
"Job Name": "Jina la Kazi",
|
||||||
"Joined On": "Amejiunga kwenye",
|
"Joined On": "Amejiunga kwenye",
|
||||||
@@ -1772,6 +1774,11 @@
|
|||||||
"Percentage To Base": "Asilimia Kwa Msingi",
|
"Percentage To Base": "Asilimia Kwa Msingi",
|
||||||
"Percentage to Base": "Asilimia kwa Msingi",
|
"Percentage to Base": "Asilimia kwa Msingi",
|
||||||
"Period": "Kipindi",
|
"Period": "Kipindi",
|
||||||
|
"Period From": "Kipindi Kutoka",
|
||||||
|
"Period To": "Kipindi Kwa",
|
||||||
|
"Period Type": "Aina ya Kipindi",
|
||||||
|
"Amount Range From": "Kiwango cha kuanzia",
|
||||||
|
"Amount Range To": "Kiasi cha Masafa Kwa",
|
||||||
"Person": "Mtu",
|
"Person": "Mtu",
|
||||||
"Phone Number": "Nambari ya simu",
|
"Phone Number": "Nambari ya simu",
|
||||||
"Place Guarantee Funds On-Hold": "Weka Pesa za Dhamana Kwa Muda",
|
"Place Guarantee Funds On-Hold": "Weka Pesa za Dhamana Kwa Muda",
|
||||||
@@ -1836,6 +1843,7 @@
|
|||||||
"Recurring Deposit Amount": "Kiasi cha Amana ya Mara kwa Mara",
|
"Recurring Deposit Amount": "Kiasi cha Amana ya Mara kwa Mara",
|
||||||
"Recurring Deposit Product": "Bidhaa ya Amana ya Mara kwa Mara",
|
"Recurring Deposit Product": "Bidhaa ya Amana ya Mara kwa Mara",
|
||||||
"Recurring Deposit Products": "Bidhaa za Amana za Mara kwa Mara",
|
"Recurring Deposit Products": "Bidhaa za Amana za Mara kwa Mara",
|
||||||
|
"Recurring Deposit Type": "Aina ya Amana Inayojirudia",
|
||||||
"Reference Number": "Nambari ya Marejeleo",
|
"Reference Number": "Nambari ya Marejeleo",
|
||||||
"Rejected Date": "Tarehe ya Kukataliwa",
|
"Rejected Date": "Tarehe ya Kukataliwa",
|
||||||
"Rejected On": "Imekataliwa",
|
"Rejected On": "Imekataliwa",
|
||||||
@@ -2870,6 +2878,8 @@
|
|||||||
"undefined": "haijafafanuliwa",
|
"undefined": "haijafafanuliwa",
|
||||||
"withhold tax for this account": "zuio la ushuru kwa akaunti hii",
|
"withhold tax for this account": "zuio la ushuru kwa akaunti hii",
|
||||||
"Journal Entries": "{kichwa: Maingizo ya Jarida",
|
"Journal Entries": "{kichwa: Maingizo ya Jarida",
|
||||||
|
"Mandatory": "Lazima",
|
||||||
|
"Voluntary": "Kwa hiari",
|
||||||
"“Maker-Checker” principle requires every tasks": "Kanuni ya \"Mtengenezaji-Kikagua\" inahitaji kila kazi kukamilishwa na watu wawili ili kupunguza uwezekano wa makosa na matumizi mabaya. Mtu mmoja anaanzisha mchakato na wa pili anakamilisha."
|
"“Maker-Checker” principle requires every tasks": "Kanuni ya \"Mtengenezaji-Kikagua\" inahitaji kila kazi kukamilishwa na watu wawili ili kupunguza uwezekano wa makosa na matumizi mabaya. Mtu mmoja anaanzisha mchakato na wa pili anakamilisha."
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
|
|||||||
Reference in New Issue
Block a user