Charges with translations

This commit is contained in:
Jose Alberto Hernandez
2024-04-27 17:39:40 -06:00
committed by Jose Alberto Hernandez
parent 8ac82cc6a6
commit b380f7f630
56 changed files with 2139 additions and 415 deletions
@@ -19,7 +19,7 @@
</ng-container>
<ng-container matColumnDef="documentKey">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Key" | translate}} </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Document Key" | translate}} </th>
<td mat-cell *matCellDef="let identity"> {{identity.documentKey}} </td>
</ng-container>
@@ -16,6 +16,7 @@ import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.componen
/** Custom Services */
import { ClientsService } from '../../clients.service';
import { TranslateService } from '@ngx-translate/core';
/**
* Identities Tab Component
@@ -45,8 +46,9 @@ export class IdentitiesTabComponent {
* @param {ClientsService} clientService Clients Service
*/
constructor(private route: ActivatedRoute,
public dialog: MatDialog,
private clientService: ClientsService) {
private dialog: MatDialog,
private clientService: ClientsService,
private translateService: TranslateService) {
this.clientId = this.route.parent.snapshot.paramMap.get('clientId');
this.route.data.subscribe((data: { clientIdentities: any, clientIdentifierTemplate: any }) => {
this.clientIdentities = data.clientIdentities;
@@ -73,7 +75,7 @@ export class IdentitiesTabComponent {
const formfields: FormfieldBase[] = [
new SelectBase({
controlName: 'documentTypeId',
label: 'Document Type',
label: this.translateService.instant('labels.inputs.Document Type'),
value: '',
options: { label: 'name', value: 'id', data: this.clientIdentifierTemplate.allowedDocumentTypes },
required: true,
@@ -81,15 +83,18 @@ export class IdentitiesTabComponent {
}),
new SelectBase({
controlName: 'status',
label: 'Status',
label: this.translateService.instant('labels.inputs.Status'),
value: '2',
options: { label: 'value', value: 'value', data: [{ value: 'Active' }, { value: 'Inactive' }] },
options: { label: 'label', value: 'value', data: [
{ label: this.translateService.instant('labels.catalogs.Active'), value: 'Active' },
{ label: this.translateService.instant('labels.catalogs.Inactive'), value: 'Inactive' }
] },
required: true,
order: 2
}),
new InputBase({
controlName: 'documentKey',
label: 'Unique Id',
label: this.translateService.instant('labels.inputs.Document Key'),
value: '',
type: 'text',
required: true,
@@ -97,14 +102,14 @@ export class IdentitiesTabComponent {
}),
new InputBase({
controlName: 'description',
label: 'Description',
label: this.translateService.instant('labels.inputs.Description'),
value: '',
type: 'text',
order: 4
})
];
const data = {
title: 'Add Client Identifier',
title: this.translateService.instant('labels.heading.Add Client Identifier'),
formfields: formfields
};
const addIdentifierDialogRef = this.dialog.open(FormDialogComponent, { data });
+3 -3
View File
@@ -17,14 +17,14 @@ import { OptionData } from 'app/shared/models/option-data.model';
}
public getAccountRuleName(value: string): string {
if (value === 'ACCRUAL PERIODIC') {
if (['ACCRUAL PERIODIC', 'ACCRUAL (PERIODIC)'].includes(value)) {
return 'Accrual (periodic)';
} else if (value === 'ACCRUAL UPFRONT') {
} else if (['ACCRUAL UPFRONT', 'ACCRUAL (UPFRONT)'].includes(value)) {
return 'Accrual (upfront)';
} else if (value === 'CASH BASED') {
return 'Cash';
} else if (value === 'NONE') {
return 'None';
return 'NONE';
}
return '';
}
@@ -22,7 +22,7 @@
<ng-container matColumnDef="period">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ 'labels.inputs.Period' | translate }} </th>
<td mat-cell *matCellDef="let cashier"> {{ cashier.startDate | dateFormat }} - {{ cashier.endDate | dateFormat }}</td>
<td mat-cell *matCellDef="let cashier"> {{ cashier.startDate | dateFormat }} - {{ cashier.endDate | dateFormat }}</td>
</ng-container>
<ng-container matColumnDef="staffName">
@@ -32,7 +32,7 @@
<ng-container matColumnDef="isFullDay">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ 'labels.inputs.Full Day/Time' | translate }} </th>
<td mat-cell *matCellDef="let cashier"> {{ cashier.isFullDay ? 'Yes' : 'No' }} </td>
<td mat-cell *matCellDef="let cashier"> {{ cashier.isFullDay | yesNo }} </td>
</ng-container>
<ng-container matColumnDef="vaultActions">
@@ -1,5 +1,5 @@
<div fxLayout="row" fxLayoutGap="1%" fxLayoutAlign="end" class="container m-b-20">
<button mat-raised-button color="accent" [routerLink]="['../allocate']" *mifosxHasPermission="'ALLOCATECASHIER_TELLER'">
<button mat-raised-button color="primary" [routerLink]="['../allocate']" *mifosxHasPermission="'ALLOCATECASHIER_TELLER'">
<fa-icon icon="arrow-up" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Allocate Cash' | translate }}
</button>
@@ -59,7 +59,7 @@
</div>
<div fxFlex="50%" class="header">
{{'labels.inputs.Full Day?' | translate}}
{{'labels.inputs.Full Day/Time' | translate}}
</div>
<div fxFlex="50%">
@@ -69,8 +69,9 @@
</div>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['..']">{{"labels.buttons.Back" | translate}}</button>
<button type="button" color="primary" mat-raised-button [routerLink]="['..']">{{ "labels.buttons.Back" | translate}}</button>
</mat-card-actions>
</mat-card>
+2 -2
View File
@@ -11,9 +11,9 @@ export class FormatNumberPipe implements PipeTransform {
private settingsService: SettingsService) {
}
transform(value: string | number, ...args: unknown[]): string {
transform(value: string | number, defaultValue: any): string {
if (!value) {
return '';
return defaultValue ? defaultValue : '';
}
const locale = this.settingsService.language.code;
const decimals = this.settingsService.decimals;
+40 -3
View File
@@ -12,13 +12,50 @@ import { ExternalIdentifierPipe } from './external-identifier.pipe';
import { FormatNumberPipe } from './format-number.pipe';
import { YesnoPipe } from './yesno.pipe';
import { PrettyPrintPipe } from './pretty-print.pipe';
import { TranslateCatalogPipe } from './translate-catalog.pipe';
@NgModule({
imports: [
CommonModule
],
declarations: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe, YesnoPipe, PrettyPrintPipe ],
providers: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe, YesnoPipe, PrettyPrintPipe ],
exports: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe, YesnoPipe, PrettyPrintPipe ]
declarations: [StatusLookupPipe,
AccountsFilterPipe,
ChargesFilterPipe,
ChargesPenaltyFilterPipe,
FindPipe,
UrlToStringPipe,
DateFormatPipe,
DatetimeFormatPipe,
ExternalIdentifierPipe,
FormatNumberPipe,
YesnoPipe,
PrettyPrintPipe,
TranslateCatalogPipe],
providers: [StatusLookupPipe,
AccountsFilterPipe,
ChargesFilterPipe,
ChargesPenaltyFilterPipe,
FindPipe,
UrlToStringPipe,
DateFormatPipe,
DatetimeFormatPipe,
ExternalIdentifierPipe,
FormatNumberPipe,
YesnoPipe,
PrettyPrintPipe,
TranslateCatalogPipe],
exports: [StatusLookupPipe,
AccountsFilterPipe,
ChargesFilterPipe,
ChargesPenaltyFilterPipe,
FindPipe,
UrlToStringPipe,
DateFormatPipe,
DatetimeFormatPipe,
ExternalIdentifierPipe,
FormatNumberPipe,
YesnoPipe,
PrettyPrintPipe,
TranslateCatalogPipe]
})
export class PipesModule { }
+15
View File
@@ -0,0 +1,15 @@
import { Pipe, PipeTransform } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Pipe({
name: 'translateCatalog'
})
export class TranslateCatalogPipe implements PipeTransform {
constructor(private translateService: TranslateService) { }
transform(attributeValue: any, suffix?: string): string {
return this.translateService.instant('labels.catalogs.' + attributeValue);
}
}
@@ -27,17 +27,17 @@
<ng-container matColumnDef="chargeAppliesTo">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Applies To" | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeAppliesTo.value }} </td>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeAppliesTo.value | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Time" | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value }} </td>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Calculation" | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeCalculationType.value }} </td>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeCalculationType.value | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="amount">
@@ -13,7 +13,7 @@
<mat-select required formControlName="chargeAppliesTo">
<mat-option *ngFor="let chargeAppliesTo of chargesTemplateData.chargeAppliesToOptions"
[value]="chargeAppliesTo.id">
{{ chargeAppliesTo.value }}
{{ chargeAppliesTo.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargeAppliesTo.hasError('required')">
@@ -50,7 +50,7 @@
<mat-label>{{"labels.inputs.Charge Time Type" | translate}}</mat-label>
<mat-select required formControlName="chargeTimeType">
<mat-option *ngFor="let chargeTimeType of chargeTimeTypeData" [value]="chargeTimeType.id">
{{ chargeTimeType.value }}
{{ chargeTimeType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargeTimeType.hasError('required')">
@@ -63,7 +63,7 @@
<mat-select required formControlName="chargeCalculationType">
<mat-option *ngFor="let chargeCalculationType of filteredChargeCalculationType()"
[value]="chargeCalculationType.id">
{{ chargeCalculationType.value }}
{{ chargeCalculationType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargeCalculationType.hasError('required')">
@@ -76,7 +76,7 @@
<mat-select required formControlName="chargePaymentMode">
<mat-option *ngFor="let chargePaymentMode of chargesTemplateData.chargePaymetModeOptions"
[value]="chargePaymentMode.id">
{{ chargePaymentMode.value }}
{{ chargePaymentMode.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargePaymentMode.hasError('required')">
@@ -110,7 +110,7 @@
<mat-select required formControlName="feeFrequency">
<mat-option *ngFor="let feeFrequency of chargesTemplateData.feeFrequencyOptions"
[value]="feeFrequency.id">
{{ feeFrequency.value }}
{{ feeFrequency.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.feeFrequency.hasError('required')">
@@ -13,7 +13,7 @@
<mat-select required formControlName="chargeAppliesTo">
<mat-option *ngFor="let chargeAppliesTo of chargeData.chargeAppliesToOptions"
[value]="chargeAppliesTo.id">
{{ chargeAppliesTo.value }}
{{ chargeAppliesTo.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -47,7 +47,7 @@
<mat-label>{{"labels.inputs.Charge Time Type" | translate}}</mat-label>
<mat-select required formControlName="chargeTimeType">
<mat-option *ngFor="let chargeTime of chargeTimeTypeOptions" [value]="chargeTime.id">
{{ chargeTime.value }}
{{ chargeTime.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargeTimeType.hasError('required')">
@@ -60,7 +60,7 @@
<mat-label>{{"labels.inputs.Charge Calculation" | translate}}</mat-label>
<mat-select required formControlName="chargeCalculationType">
<mat-option *ngFor="let chargeCalculation of chargeCalculationTypeOptions" [value]="chargeCalculation.id">
{{ chargeCalculation.value }}
{{ chargeCalculation.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargeCalculationType.hasError('required')">
@@ -73,7 +73,7 @@
<mat-select required formControlName="chargePaymentMode">
<mat-option *ngFor="let chargePaymentMode of chargeData.chargePaymetModeOptions"
[value]="chargePaymentMode.id">
{{ chargePaymentMode.value }}
{{ chargePaymentMode.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.chargePaymentMode.hasError('required')">
@@ -152,7 +152,7 @@
<mat-label>{{"labels.inputs.Charge Frequency" | translate}}</mat-label>
<mat-select required formControlName="feeFrequency">
<mat-option *ngFor="let chargeFrequency of chargeData.feeFrequencyOptions" [value]="chargeFrequency.id">
{{ chargeFrequency.value }}
{{ chargeFrequency.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error *ngIf="chargeForm.controls.feeFrequency.hasError('required')">
@@ -26,11 +26,19 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
{{"labels.inputs.Charge Type" | translate}}
{{"labels.inputs.Charge Applies To" | translate}}
</div>
<div fxFlex="50%">
{{ chargeData.penalty === true ? 'Penalty' : 'Charge' }}
{{ chargeData.chargeAppliesTo.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
{{"labels.inputs.Penalty" | translate}}
</div>
<div fxFlex="50%">
{{ chargeData.penalty === true | yesNo }}
</div>
<div fxFlex="50%" class="mat-body-strong">
@@ -46,7 +54,7 @@
</div>
<div fxFlex="50%">
{{ chargeData.amount }}
{{ chargeData.amount | formatNumber }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="minCap">
@@ -70,15 +78,7 @@
</div>
<div fxFlex="50%">
{{ chargeData.chargeTimeType.value }}
</div>
<div fxFlex="50%" class="mat-body-strong">
{{"labels.inputs.Charge Applies To" | translate}}
</div>
<div fxFlex="50%">
{{ chargeData.chargeAppliesTo.value }}
{{ chargeData.chargeTimeType.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
@@ -86,7 +86,7 @@
</div>
<div fxFlex="50%">
{{ chargeData.chargeCalculationType.value }}
{{ chargeData.chargeCalculationType.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
@@ -94,7 +94,7 @@
</div>
<div fxFlex="50%">
{{ chargeData.chargePaymentMode.value }}
{{ chargeData.chargePaymentMode.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
@@ -111,7 +111,7 @@
<div fxFlex="50%"
*ngIf="chargeData.chargeTimeType.id == 9 && chargeData.feeFrequency && chargeData.feeFrequency">
{{ chargeData.feeFrequency.value }}
{{ chargeData.feeFrequency.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="chargeData.chargeTimeType.id == 9 && chargeData.feeInterval">
@@ -1,79 +1,79 @@
<div class="tab-container mat-typography" *ngIf="loanProduct">
<h3 class="mat-h3" fxFlexFill>Details</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Details' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Name:</span>
<span fxFlex="47%">{{ 'labels.inputs.Name' | translate}}:</span>
<span fxFlex="53%"><b>{{ loanProduct.name }}</b></span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Short Name:</span>
<span fxFlex="47%">{{ 'labels.inputs.Short Name' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.shortName }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.fundId">
<span fxFlex="47%">Fund Name:</span>
<span fxFlex="47%">{{ 'labels.inputs.Fund Name' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.fundName }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Include in Customer Loan Counter:</span>
<span fxFlex="47%">{{ 'labels.inputs.Include in Customer Loan Counter' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.includeInBorrowerCycle | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.startDate">
<span fxFlex="47%">Start Date:</span>
<span fxFlex="47%">{{ 'labels.inputs.Start Date' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.startDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.closeDate">
<span fxFlex="47%">Close Date:</span>
<span fxFlex="47%">{{ 'labels.inputs.Close Date' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.closeDate | dateFormat }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.description">
<span fxFlex="47%">Description:</span>
<span fxFlex="47%">{{ 'labels.inputs.Description' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.description }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Currency</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Currency' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Currency:</span>
<span fxFlex="47%">{{ 'labels.inputs.Currency' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.currency.code }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Currency:</span>
<span fxFlex="47%">{{ 'labels.inputs.Currency' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.currency.displayLabel }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Decimal Places:</span>
<span fxFlex="47%">{{ 'labels.inputs.Decimal Places' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.currency.decimalPlaces }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Currency in multiples of:</span>
<span fxFlex="47%">{{ 'labels.inputs.Currency in multiples of' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.currency.inMultiplesOf }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Installment in multiples of:</span>
<span fxFlex="47%">{{ 'labels.inputs.Installment in multiples of' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.installmentAmountInMultiplesOf }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Terms</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Terms' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Principal:</span>
<span fxFlex="47%">{{ 'labels.inputs.Principal' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.principal | formatNumber }}
(Min {{ (loanProduct.minPrincipal ? loanProduct.minPrincipal : loanProduct.principal) | formatNumber }}
: Max {{ (loanProduct.maxPrincipal ? loanProduct.maxPrincipal : loanProduct.principal) | formatNumber }})
@@ -81,27 +81,26 @@
</div>
<div fxFlexFill>
<span fxFlex="47%">Allow Approved / Disbursed Amounts Over Applied:</span>
<span fxFlex="47%">{{ 'labels.inputs.Allow Approved / Disbursed Amounts Over Applied' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.allowApprovedDisbursedAmountsOverApplied | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.allowApprovedDisbursedAmountsOverApplied">
<span fxFlex="47%">Over Applied Amount:</span>
<span fxFlex="47%">{{ 'labels.inputs.Over Applied Amount' | translate}}:</span>
<span fxFlex="53%" *ngIf="loanProduct.overAppliedCalculationType === 'percentage'">{{ loanProduct.overAppliedNumber
| formatNumber
| formatNumber:0
}} %</span>
<span fxFlex="53%" *ngIf="loanProduct.overAppliedCalculationType === 'flat'">{{ loanProduct.overAppliedNumber |
formatNumber }} {{
loanProduct.currencyCode }}</span>
formatNumber }} {{ loanProduct.currencyCode }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Installment day calculation from:</span>
<span fxFlex="53%">{{ loanProduct.repaymentStartDateType?.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Installment day calculation from' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.repaymentStartDateType?.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Number of Repayments:</span>
<span fxFlex="47%">{{ 'labels.inputs.Number of Repayments' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.numberOfRepayments + ' (Min: ' + (loanProduct.minNumberOfRepayments ?
loanProduct.minNumberOfRepayments : loanProduct.numberOfRepayments) + ', Max: ' +
(loanProduct.maxNumberOfRepayments ? loanProduct.maxNumberOfRepayments : loanProduct.numberOfRepayments) + ')'
@@ -109,26 +108,26 @@
</div>
<div fxFlexFill>
<span fxFlex="47%">Linked to floating interest rates:</span>
<span fxFlex="47%">{{ 'labels.inputs.Linked to floating interest rates' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.isLinkedToFloatingInterestRates | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="!loanProduct.isLinkedToFloatingInterestRates">
<span fxFlex="47%">Nominal interest rate:</span>
<span fxFlex="47%">{{ 'labels.inputs.Nominal interest rate' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRatePerPeriod + ' (Min: ' + (loanProduct.minInterestRatePerPeriod ?
loanProduct.minInterestRatePerPeriod : loanProduct.interestRatePerPeriod) + ', Max: ' +
(loanProduct.maxInterestRatePerPeriod ? loanProduct.maxInterestRatePerPeriod : loanProduct.interestRatePerPeriod)
+ ')' + ' ' + loanProduct.interestRateFrequencyType?.value }}</span>
+ ')'}} {{ loanProduct.interestRateFrequencyType?.value | translateCatalog }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.isLinkedToFloatingInterestRates" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Floating Lending Interest Rate:</span>
<span fxFlex="47%">{{ 'labels.inputs.Floating Lending Interest Rate' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.floatingRateName }}</span>
<span fxFlex="47%">Interest Rate Differential:</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest Rate Differential' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRateDifferential }}</span>
<span fxFlex="47%">Floating Interest Rate Calculation Allowed:</span>
<span fxFlex="47%">{{ 'labels.inputs.Floating Interest Rate Calculation Allowed' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.isFloatingInterestRateCalculationAllowed | yesNo }}</span>
<span fxFlex="47%">Floating Interest Rate:</span>
<span fxFlex="47%">{{ 'labels.inputs.Floating Interest Rate' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.defaultDifferentialLendingRate + ' (Min: ' +
(loanProduct.minDifferentialLendingRate ? loanProduct.minDifferentialLendingRate :
loanProduct.defaultDifferentialLendingRate) + ', Max: ' + (loanProduct.maxDifferentialLendingRate ?
@@ -136,48 +135,48 @@
</div>
<div fxFlexFill>
<span fxFlex="47%">Terms vary based on loan cycle:</span>
<span fxFlex="47%">{{ 'labels.inputs.Terms vary based on loan cycle' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.useBorrowerCycle | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.principalVariationsForBorrowerCycle?.length">
<h4 class="mat-h4" fxFlexFill>Principal by loan cycle</h4>
<h4 class="mat-h4" fxFlexFill>{{ 'labels.inputs.Principal by loan cycle' | translate}}</h4>
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="loanProduct.principalVariationsForBorrowerCycle">
<ng-container matColumnDef="valueConditionType">
<th mat-header-cell *matHeaderCellDef> Condition </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Condition' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.valueConditionType.value }}
{{ variation.valueConditionType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="borrowerCycleNumber">
<th mat-header-cell *matHeaderCellDef> Loan Cycle </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Loan Cycle' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.borrowerCycleNumber }}
</td>
</ng-container>
<ng-container matColumnDef="minValue">
<th mat-header-cell *matHeaderCellDef> Minimum </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Minimum' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.minValue }}
{{ variation.minValue | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="defaultValue">
<th mat-header-cell *matHeaderCellDef> Default </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Default' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.defaultValue }}
{{ variation.defaultValue | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="maxValue">
<th mat-header-cell *matHeaderCellDef> Maximum </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Maximum' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.maxValue }}
{{ variation.maxValue | formatNumber }}
</td>
</ng-container>
@@ -190,41 +189,41 @@
<div fxFlexFill *ngIf="loanProduct.numberOfRepaymentVariationsForBorrowerCycle?.length">
<h4 class="mat-h4" fxFlexFill>Number of Repayments by loan cycle</h4>
<h4 class="mat-h4" fxFlexFill>{{ 'labels.inputs.Number of Repayments by loan cycle' | translate}}</h4>
<table fxFlexFill class="mat-elevation-z1" mat-table
[dataSource]="loanProduct.numberOfRepaymentVariationsForBorrowerCycle">
<ng-container matColumnDef="valueConditionType">
<th mat-header-cell *matHeaderCellDef> Condition </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Condition' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.valueConditionType.value }}
{{ variation.valueConditionType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="borrowerCycleNumber">
<th mat-header-cell *matHeaderCellDef> Loan Cycle </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Loan Cycle' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.borrowerCycleNumber }}
</td>
</ng-container>
<ng-container matColumnDef="minValue">
<th mat-header-cell *matHeaderCellDef> Minimum </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Minimum' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.minValue }}
</td>
</ng-container>
<ng-container matColumnDef="defaultValue">
<th mat-header-cell *matHeaderCellDef> Default </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Default' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.defaultValue }}
</td>
</ng-container>
<ng-container matColumnDef="maxValue">
<th mat-header-cell *matHeaderCellDef> Maximum </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Maximum' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.maxValue }}
</td>
@@ -239,41 +238,41 @@
<div fxFlexFill *ngIf="loanProduct.interestRateVariationsForBorrowerCycle?.length">
<h4 class="mat-h4" fxFlexFill>Nominal Interest Rate by loan cycle</h4>
<h4 class="mat-h4" fxFlexFill>{{ 'labels.inputs.Nominal Interest Rate by loan cycle' | translate}}</h4>
<table fxFlexFill class="mat-elevation-z1" mat-table
[dataSource]="loanProduct.interestRateVariationsForBorrowerCycle">
<ng-container matColumnDef="valueConditionType">
<th mat-header-cell *matHeaderCellDef> Condition </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Condition' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.valueConditionType.value }}
{{ variation.valueConditionType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="borrowerCycleNumber">
<th mat-header-cell *matHeaderCellDef> Loan Cycle </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Loan Cycle' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.borrowerCycleNumber }}
</td>
</ng-container>
<ng-container matColumnDef="minValue">
<th mat-header-cell *matHeaderCellDef> Minimum </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Minimum' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.minValue }}
</td>
</ng-container>
<ng-container matColumnDef="defaultValue">
<th mat-header-cell *matHeaderCellDef> Default </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Default' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.defaultValue }}
</td>
</ng-container>
<ng-container matColumnDef="maxValue">
<th mat-header-cell *matHeaderCellDef> Maximum </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Maximum' | translate}} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.maxValue }}
</td>
@@ -287,70 +286,70 @@
</div>
<div fxFlexFill>
<span fxFlex="47%">Repay Every:</span>
<span fxFlex="53%">{{ loanProduct.repaymentEvery + ' ' + loanProduct.repaymentFrequencyType.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Repay Every' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.repaymentEvery }} {{ loanProduct.repaymentFrequencyType.value | translateCatalog }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.fixedLength">
<span fxFlex="47%">Fixed Length:</span>
<span fxFlex="53%">{{ loanProduct.fixedLength + ' ' + loanProduct.repaymentFrequencyType.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Fixed Length' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.fixedLength }} {{ loanProduct.repaymentFrequencyType.value | translateCatalog }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.minimumDaysBetweenDisbursalAndFirstRepayment">
<span fxFlex="47%">Minimum days between disbursal and first repayment date:</span>
<span fxFlex="53%">{{ loanProduct.minimumDaysBetweenDisbursalAndFirstRepayment }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Minimum days between disbursal and first repayment date' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.minimumDaysBetweenDisbursalAndFirstRepayment | formatNumber }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Settings</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Settings' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill *ngIf="loanProduct.amortizationType?.value">
<span fxFlex="47%">Amortization:</span>
<span fxFlex="53%">{{ loanProduct.amortizationType.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Amortization' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.amortizationType.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Is Equal Amortization:</span>
<span fxFlex="47%">{{ 'labels.inputs.Is Equal Amortization' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.isEqualAmortization | yesNo }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Interest Method:</span>
<span fxFlex="53%">{{ loanProduct.interestType?.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest Method' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestType?.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Interest Calculation Period:</span>
<span fxFlex="53%">{{ loanProduct.interestCalculationPeriodType?.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest Calculation Period' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestCalculationPeriodType?.value | translateCatalog }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.allowPartialPeriodInterestCalculation">
<span fxFlex="47%">Allow Partial Interest Calculation with same as repayment:</span>
<span fxFlex="47%">{{ 'labels.inputs.Allow Partial Interest Calculation with same as repayment' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.allowPartialPeriodInterestCalculation | yesNo }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Loan Schedule</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Loan Schedule' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Loan Schedule Type:</span>
<span fxFlex="53%">{{ loanProduct.loanScheduleType.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Loan Schedule Type' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.loanScheduleType.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Repayment Strategy:</span>
<span fxFlex="47%">{{ 'labels.inputs.Repayment Strategy' | translate}}:</span>
<span fxFlex="53%" class="repayment-strategy">{{ loanProduct.transactionProcessingStrategyName }}</span>
</div>
<div fxFlexFill *ngIf="isAdvancedPaymentAllocation">
<span fxFlex="47%">Loan Schedule Processing Type:</span>
<span fxFlex="47%">{{ 'labels.inputs.Loan Schedule Processing Type' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.loanScheduleProcessingType.value }}</span>
</div>
<div fxFlexFill *ngIf="isAdvancedPaymentAllocation">
<span fxFlex="47%">Advanced Payment Allocation Transactions:</span>
<span fxFlex="47%">{{ 'labels.inputs.Advanced Payment Allocation Transactions' | translate}}:</span>
<span fxFlex="53%">
<mat-accordion>
<mifosx-view-advance-paymeny-allocation *ngFor="let paymentAllocation of paymentAllocations"
@@ -362,7 +361,7 @@
</div>
<div fxFlexFill *ngIf="isAdvancedPaymentAllocation && creditAllocations.length > 0">
<span fxFlex="47%">Advanced Credit Allocation Transactions:</span>
<span fxFlex="47%">{{ 'labels.inputs.Advanced Credit Allocation Transactions' | translate}}:</span>
<span fxFlex="53%">
<mat-accordion>
<mifosx-view-advance-paymeny-allocation *ngFor="let creditAllocation of creditAllocations"
@@ -373,133 +372,133 @@
</span>
</div>
<h3 class="mat-h3" fxFlexFill>Down Payments</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Down Payments' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Enable Down Payments:</span>
<span fxFlex="47%">{{ 'labels.inputs.Enable Down Payments' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.enableDownPayment | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.enableDownPayment" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Disbursed Amount Percentage Down Payment (%):</span>
<span fxFlex="47%">{{ 'labels.inputs.Disbursed Amount Percentage Down Payment' | translate}} (%):</span>
<span fxFlex="53%">{{ loanProduct.disbursedAmountPercentageForDownPayment }} %</span>
</div>
<div fxFlexFill *ngIf="loanProduct.enableDownPayment" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Enable Auto Repayment for Down Payment:</span>
<span fxFlex="47%">{{ 'labels.inputs.Enable Auto Repayment for Down Payment' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.enableAutoRepaymentForDownPayment | yesNo }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Moratorium</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Moratorium' | translate}}</h3>
<div fxFlexFill *ngIf="loanProduct.delinquencyBucket">
<span fxFlex="47%">Delinquency Bucket:</span>
<span fxFlex="47%">{{ 'labels.inputs.Delinquency Bucket' | translate}}:</span>
<span fxFlex="53%" *ngIf="loanProduct.delinquencyBucket.name">{{ loanProduct.delinquencyBucket.name }}</span>
<span fxFlex="53%" *ngIf="!loanProduct.delinquencyBucket.name">{{ 'labels.inputs.Unassigned' | translate }}</span>
</div>
<div fxFlexFill *ngIf="!loanProduct.delinquencyBucket">
<span fxFlex="47%">Delinquency Bucket:</span>
<span fxFlex="47%">{{ 'labels.inputs.Delinquency Bucket' | translate}}:</span>
<span fxFlex="53%">{{ 'labels.inputs.Unassigned' | translate }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Enable installment level Delinquency:</span>
<span fxFlex="47%">{{ 'labels.inputs.Enable installment level Delinquency' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.enableInstallmentLevelDelinquency | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.graceOnPrincipalPayment">
<span fxFlex="47%">Grace on principal payment:</span>
<span fxFlex="47%">{{ 'labels.inputs.Grace on principal payment' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.graceOnPrincipalPayment }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.graceOnInterestPayment">
<span fxFlex="47%">Grace on interest payment:</span>
<span fxFlex="47%">{{ 'labels.inputs.Grace on interest payment' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.graceOnInterestPayment }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.graceOnInterestCharged">
<span fxFlex="47%">Interest free period:</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest free period' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.graceOnInterestCharged }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.inArrearsTolerance">
<span fxFlex="47%">Arrears tolerance:</span>
<span fxFlex="47%">{{ 'labels.inputs.Arrears tolerance' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.inArrearsTolerance }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Days in year:</span>
<span fxFlex="53%">{{ loanProduct.daysInYearType?.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Days in year' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.daysInYearType?.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Days in month:</span>
<span fxFlex="53%">{{ loanProduct.daysInMonthType?.value }}</span>
<span fxFlex="47%">{{ 'labels.inputs.Days in month' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.daysInMonthType?.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Allow fixing of the installment amount:</span>
<span fxFlex="47%">{{ 'labels.inputs.Allow fixing of the installment amount' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.canDefineInstallmentAmount | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.graceOnArrearsAgeing">
<span fxFlex="47%">Number of days a loan may be overdue before moving into arrears:</span>
<span fxFlex="47%">{{ 'labels.inputs.Number of days a loan may be overdue before moving into arrears' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.graceOnArrearsAgeing }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.overdueDaysForNPA">
<span fxFlex="47%">Maximum number of days a loan may be overdue before becoming a NPA (non performing asset):</span>
<span fxFlex="47%">{{ 'labels.inputs.Maximum number of days a loan may be overdue before becoming a NPA (non performing asset)' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.overdueDaysForNPA }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Account moves out of NPA only after all arrears have been cleared:</span>
<span fxFlex="47%">{{ 'labels.inputs.Account moves out of NPA only after all arrears have been cleared' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.accountMovesOutOfNPAOnlyOnArrearsCompletion | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.principalThresholdForLastInstallment">
<span fxFlex="47%">Principal Threshold (%) for Last Instalment:</span>
<span fxFlex="47%">{{ 'labels.inputs.Principal Threshold (%) for Last Instalment' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.principalThresholdForLastInstallment }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Variable Installments allowed:</span>
<span fxFlex="47%">{{ 'labels.inputs.Variable Installments allowed' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.allowVariableInstallments | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.allowVariableInstallments">
<span fxFlex="47%">Variable Installments:</span>
<span fxFlex="47%">{{ 'labels.inputs.Variable Installments' | translate}}:</span>
<span fxFlex="53%">{{ '(Min: ' + loanProduct.minimumGap + ', Max: ' + (loanProduct.maximumGap ?
loanProduct.maximumGap : loanProduct.minimumGap) + ')' }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Allowed to be used for providing Topup Loans:</span>
<span fxFlex="47%">{{ 'labels.inputs.Allowed to be used for providing Topup Loans' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.canUseForTopup | yesNo }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Interest Recalculation</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Interest Recalculation' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Recalculate Interest:</span>
<span fxFlex="47%">{{ 'labels.inputs.Recalculate Interest' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.isInterestRecalculationEnabled | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.isInterestRecalculationEnabled" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Pre-closure interest calculation rule:</span>
<span fxFlex="47%">{{ 'labels.inputs.Pre-closure interest calculation rule' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRecalculationData.preClosureInterestCalculationStrategy.value }}</span>
<span fxFlex="47%">Advance payments adjustment type:</span>
<span fxFlex="47%">{{ 'labels.inputs.Advance payments adjustment type' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRecalculationData.rescheduleStrategyType.value }}</span>
<span fxFlex="47%">Interest recalculation compounding on:</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest recalculation compounding on' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRecalculationData.interestRecalculationCompoundingType.value }}</span>
<div fxFlexFill *ngIf="loanProduct.interestRecalculationData.interestRecalculationCompoundingType.id !== 0"
fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Frequency for compounding:</span>
<span fxFlex="47%">{{ 'labels.inputs.Frequency for compounding' | translate}}:</span>
<span fxFlex="53%">
{{ loanProduct.interestRecalculationData.recalculationCompoundingFrequencyType.value }}
<span
@@ -514,12 +513,12 @@
</span>
<div fxFlexFill *ngIf="loanProduct.interestRecalculationData.recalculationCompoundingFrequencyType.id !== 1"
fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Frequency Interval for compounding:</span>
<span fxFlex="47%">{{ 'labels.inputs.Frequency Interval for compounding' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRecalculationData.recalculationCompoundingFrequencyInterval }}</span>
</div>
</div>
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Frequency for recalculate Outstanding Principal:</span>
<span fxFlex="47%">{{ 'labels.inputs.Frequency for recalculate Outstanding Principal' | translate}}:</span>
<span fxFlex="53%">
{{ loanProduct.interestRecalculationData.recalculationRestFrequencyType.value }}
<span
@@ -535,7 +534,7 @@
</div>
<div fxFlexFill *ngIf="loanProduct.interestRecalculationData.recalculationRestFrequencyType.id !== 1"
fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Frequency Interval for recalculation:</span>
<span fxFlex="47%">{{ 'labels.inputs.Frequency Interval for recalculation' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.interestRecalculationData.recalculationRestFrequencyInterval }}</span>
<div fxFlexFill *ngIf="loanProduct.recalculationRestFrequencyDate">
<span fxFlex="47%">Rest Frequency Date:</span>
@@ -543,103 +542,103 @@
</div>
</div>
<div fxFlexFill>
<span fxFlex="47%">Is Arrears recognization based on original schedule:</span>
<span fxFlex="47%">{{ 'labels.inputs.Is Arrears recognization based on original schedule' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.isArrearsBasedOnOriginalSchedule | yesNo }}</span>
</div>
</div>
<h3 class="mat-h3" fxFlexFill>Guarantee Requirements</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Guarantee Requirements' | translate}}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Place Guarantee Funds On-Hold:</span>
<span fxFlex="47%">{{ 'labels.inputs.Place Guarantee Funds On-Hold' | translate}}:</span>
<span fxFlex="53%">{{ loanProduct.holdGuaranteeFunds | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.holdGuaranteeFunds" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Mandatory Guarantee(%):</span>
<span fxFlex="47%">{{ 'labels.inputs.Mandatory Guarantee' | translate}} (%):</span>
<span fxFlex="53%">{{ loanProduct.productGuaranteeData.mandatoryGuarantee }}</span>
<div fxFlexFill *ngIf="loanProduct.productGuaranteeData.minimumGuaranteeFromOwnFunds">
<span fxFlex="47%">Minimum Guarantee from Own Funds(%):</span>
<span fxFlex="47%">{{ 'labels.inputs.Minimum Guarantee from Own Funds' | translate}} (%):</span>
<span fxFlex="53%">{{ loanProduct.productGuaranteeData.minimumGuaranteeFromOwnFunds }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.productGuaranteeData.minimumGuaranteeFromGuarantor">
<span fxFlex="47%">Minimum Guarantee from Guarantor Funds(%):</span>
<span fxFlex="47%">{{ 'labels.inputs.Minimum Guarantee from Guarantor Funds' | translate}} (%):</span>
<span fxFlex="53%">{{ loanProduct.productGuaranteeData.minimumGuaranteeFromGuarantor }}</span>
</div>
</div>
<h3 class="mat-h3" fxFlexFill>Loan Tranche Details</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Loan Tranche Details' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Enable Multiple Disbursals:</span>
<span fxFlex="47%">{{ 'labels.inputs.Enable Multiple Disbursals' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.multiDisburseLoan | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.multiDisburseLoan" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Maximum Tranche count:</span>
<span fxFlex="47%">{{ 'labels.inputs.Maximum Tranche count' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.maxTrancheCount }}</span>
<div fxFlexFill *ngIf="loanProduct.outstandingLoanBalance">
<span fxFlex="47%">Maximum allowed outstanding balance:</span>
<span fxFlex="47%">{{ 'labels.inputs.Maximum allowed outstanding balance' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.outstandingLoanBalance }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%">Disallow Expected Disbursements:</span>
<span fxFlex="47%">{{ 'labels.inputs.Disallow Expected Disbursements' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.disallowExpectedDisbursements | yesNo }}</span>
</div>
</div>
<h3 class="mat-h3" fxFlexFill>Event Settings</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Event Settings' | translate }}</h3>
<div fxFlexFill>
<span fxFlex="47%">Use the Global Configurations values to the Repayment Event (notifications):</span>
<span fxFlex="47%">{{ 'labels.inputs.Use the Global Configurations values to the Repayment Event (notifications)' | translate }}:</span>
<span fxFlex="53%">{{ useDueForRepaymentsConfigurations | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.dueDaysForRepaymentEvent">
<span fxFlex="47%">Due days for repayment event:</span>
<span fxFlex="47%">{{ 'labels.inputs.Due days for repayment event' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.dueDaysForRepaymentEvent | number }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.overDueDaysForRepaymentEvent">
<span fxFlex="47%">OverDue days for repayment event:</span>
<span fxFlex="47%">{{ 'labels.inputs.OverDue days for repayment event' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.overDueDaysForRepaymentEvent | number }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>Configurable Terms and Settings</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Configurable Terms and Settings' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Allow overriding select terms and settings in loan accounts:</span>
<span fxFlex="47%">{{ 'labels.inputs.Allow overriding select terms and settings in loan accounts' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeConfiguration | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.allowAttributeConfiguration" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="47%">Amortization:</span>
<span fxFlex="47%">{{ 'labels.inputs.Amortization' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.amortizationType | yesNo }}</span>
<span fxFlex="47%">Interest method:</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest method' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.interestType | yesNo }}</span>
<span fxFlex="47%">Repayment strategy:</span>
<span fxFlex="47%">{{ 'labels.inputs.Repayment strategy' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.transactionProcessingStrategyCode | yesNo }}</span>
<span fxFlex="47%">Interest calculation period:</span>
<span fxFlex="47%">{{ 'labels.inputs.Interest calculation period' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.interestCalculationPeriodType | yesNo }}</span>
<span fxFlex="47%">Arrears tolerance:</span>
<span fxFlex="47%">{{ 'labels.inputs.Arrears tolerance' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.inArrearsTolerance | yesNo }}</span>
<span fxFlex="47%">Repaid every:</span>
<span fxFlex="47%">{{ 'labels.inputs.Repaid every' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.repaymentEvery | yesNo }}</span>
<span fxFlex="47%">Moratorium:</span>
<span fxFlex="47%">{{ 'labels.inputs.Moratorium' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.graceOnPrincipalAndInterestPayment | yesNo }}</span>
<span fxFlex="47%">Number of days a loan may be overdue before moving into arrears:</span>
<span fxFlex="47%">{{ 'labels.inputs.Number of days a loan may be overdue before moving into arrears' | translate }}:</span>
<span fxFlex="53%">{{ loanProduct.allowAttributeOverrides.graceOnArrearsAgeing | yesNo }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.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 [inset]="true"></mat-divider>
@@ -647,30 +646,30 @@
[dataSource]="loanProduct.charges | chargesPenaltyFilter:false">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Name' | translate }} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.name + ', ' + charge.currency.displaySymbol }}
</td>
</ng-container>
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Charge Type' | translate }} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
{{ charge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Amount' | translate }} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
{{ charge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> Collected On </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Collected On' | translate }} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
{{ charge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -679,37 +678,37 @@
</table>
<h3 class="mat-h3" fxFlexFill>Overdue Charges</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Overdue Charges' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<table fxFlexFill class="mat-elevation-z1" mat-table [dataSource]="loanProduct.charges | chargesPenaltyFilter:true">
<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 overdueCharge">
{{ overdueCharge.name + ', ' + overdueCharge.currency.displaySymbol }}
</td>
</ng-container>
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Charge Type' | translate }} </th>
<td mat-cell *matCellDef="let overdueCharge">
{{ overdueCharge.chargeCalculationType.value }}
{{ overdueCharge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Amount' | translate }} </th>
<td mat-cell *matCellDef="let overdueCharge">
{{ overdueCharge.amount }}
{{ overdueCharge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> Collected On </th>
<th mat-header-cell *matHeaderCellDef> {{ 'labels.inputs.Collected On' | translate }} </th>
<td mat-cell *matCellDef="let overdueCharge">
{{ overdueCharge.chargeTimeType.value }}
{{ overdueCharge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -720,19 +719,19 @@
</div>
<h3 class="mat-h3" fxFlexFill>Accounting</h3>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Accounting' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div fxFlexFill>
<span fxFlex="47%">Type:</span>
<span fxFlex="53%">{{ accountingRuleData[accountingRule() - 1] }}</span>
<span fxFlex="47%">{{'labels.inputs.Type' | translate}}:</span>
<span fxFlex="53%">{{ 'labels.accounting.' + getAccountingRuleName(accountingRuleData[accountingRule() - 1]) | translate }}</span>
</div>
<div fxFlexFill *ngIf="isAccountingEnabled()" fxLayout="row wrap"
fxLayout.lt-md="column">
<h4 fxFlexFill class="mat-h4">Assets / Liabilities</h4>
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Assets' | translate}} / {{'labels.heading.Liabilities' | translate}}</h4>
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
<mifosx-gl-account-display fxFlex="100%"
@@ -323,4 +323,8 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges {
|| this.loanProduct.penaltyToIncomeAccountMappings?.length > 0);
}
getAccountingRuleName(value: string): string {
return this.accounting.getAccountRuleName(value.toUpperCase());
}
}
@@ -31,21 +31,21 @@
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
{{ charge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
{{ charge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
{{ charge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -100,21 +100,21 @@
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
<td mat-cell *matCellDef="let overdueCharge">
{{ overdueCharge.chargeCalculationType.value }}
{{ overdueCharge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
<td mat-cell *matCellDef="let overdueCharge">
{{ overdueCharge.amount }}
{{ overdueCharge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
<td mat-cell *matCellDef="let overdueCharge">
{{ overdueCharge.chargeTimeType.value }}
{{ overdueCharge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -26,7 +26,7 @@
<ng-container matColumnDef="allocationRule">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Payment Allocation Rule' | translate }}</th>
<td mat-cell *matCellDef="let paymentAllocation"> {{ paymentAllocation.value }} </td>
<td mat-cell *matCellDef="let paymentAllocation"> {{ paymentAllocation.value | translateCatalog }} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
@@ -52,7 +52,7 @@
<ng-container matColumnDef="allocationRule">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Credit Allocation Rule' | translate }}</th>
<td mat-cell *matCellDef="let creditAllocation"> {{ creditAllocation.value }} </td>
<td mat-cell *matCellDef="let creditAllocation"> {{ creditAllocation.value | translateCatalog }} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
@@ -65,7 +65,7 @@
<mat-select [formControl]="futureInstallmentAllocationRule">
<mat-option *ngFor="let futureInstallmentAllocationRule of advancedPaymentAllocation.futureInstallmentAllocationRules"
[value]="futureInstallmentAllocationRule.code">
{{ futureInstallmentAllocationRule.value | translate }}
{{ futureInstallmentAllocationRule.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -18,7 +18,7 @@
<mat-label>{{'labels.inputs.Interest Method' | translate}}</mat-label>
<mat-select formControlName="interestType" matTooltip="The Interest method value is input to calculating the payments amount for repayment of the loan. " required>
<mat-option *ngFor="let interestType of interestTypeData" [value]="interestType.id">
{{ interestType.value }}
{{ interestType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -31,7 +31,7 @@
<mat-select formControlName="interestCalculationPeriodType" matTooltip="Daily - Will Calculate the interest on DAILY basis ex: Month of February has 28days
and it will calculate interest for 28days, SAME AS REPAYMENT PERIOD- it calculates for the month,that is, 30days." required>
<mat-option *ngFor="let interestCalculationPeriodType of interestCalculationPeriodTypeData" [value]="interestCalculationPeriodType.id">
{{ interestCalculationPeriodType.value }}
{{ interestCalculationPeriodType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -58,7 +58,7 @@
<mat-label>{{'labels.inputs.Loan Schedule Type' | translate}}</mat-label>
<mat-select formControlName="loanScheduleType" required>
<mat-option *ngFor="let loanScheduleType of loanScheduleTypeData" [value]="loanScheduleType.code">
{{ loanScheduleType.value }}
{{ loanScheduleType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -68,7 +68,7 @@
<mat-select formControlName="transactionProcessingStrategyCode" matTooltip="The repayment strategy determines the sequence in which each of the components is paid."
required [disabled]="advancedTransactionProcessingStrategyDisabled">
<mat-option *ngFor="let transactionProcessingStrategy of transactionProcessingStrategyData" [value]="transactionProcessingStrategy.code">
{{ transactionProcessingStrategy.name }}
{{ transactionProcessingStrategy.name | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -80,7 +80,7 @@
<mat-label>{{'labels.inputs.Loan Schedule Processing Type' | translate}}</mat-label>
<mat-select formControlName="loanScheduleProcessingType" required>
<mat-option *ngFor="let loanScheduleProcessingType of loanScheduleProcessingTypeData" [value]="loanScheduleProcessingType.code">
{{ loanScheduleProcessingType.value }}
{{ loanScheduleProcessingType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -189,7 +189,7 @@
<mat-label>{{'labels.inputs.Days in year' | translate}}</mat-label>
<mat-select matTooltip="The setting for number of days in year to use to calculate interest" formControlName="daysInYearType" required>
<mat-option *ngFor="let daysInYearType of daysInYearTypeData" [value]="daysInYearType.id">
{{ daysInYearType.value }}
{{ daysInYearType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -201,7 +201,7 @@
<mat-label>{{'labels.inputs.Days in month' | translate}}</mat-label>
<mat-select matTooltip="Number of days in month." formControlName="daysInMonthType" required>
<mat-option *ngFor="let daysInMonthType of daysInMonthTypeData" [value]="daysInMonthType.id">
{{ daysInMonthType.value }}
{{ daysInMonthType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -282,7 +282,7 @@
<mat-label>{{'labels.inputs.Pre-closure interest calculation rule' | translate}}</mat-label>
<mat-select formControlName="preClosureInterestCalculationStrategy" required>
<mat-option *ngFor="let preClosureInterestCalculationStrategy of preClosureInterestCalculationStrategyData" [value]="preClosureInterestCalculationStrategy.id">
{{ preClosureInterestCalculationStrategy.value }}
{{ preClosureInterestCalculationStrategy.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -294,7 +294,7 @@
<mat-label>{{'labels.inputs.Advance payments adjustment type' | translate}}</mat-label>
<mat-select formControlName="rescheduleStrategyMethod" required>
<mat-option *ngFor="let rescheduleStrategyType of rescheduleStrategyTypeData" [value]="rescheduleStrategyType.id">
{{ rescheduleStrategyType.value }}
{{ rescheduleStrategyType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -306,7 +306,7 @@
<mat-label>{{'labels.inputs.Interest recalculation compounding on' | translate}}</mat-label>
<mat-select formControlName="interestRecalculationCompoundingMethod" required>
<mat-option *ngFor="let interestRecalculationCompoundingType of interestRecalculationCompoundingTypeData" [value]="interestRecalculationCompoundingType.id">
{{ interestRecalculationCompoundingType.value }}
{{ interestRecalculationCompoundingType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -352,7 +352,7 @@
<mat-form-field fxFlexFill>
<mat-select formControlName="recalculationCompoundingFrequencyNthDayType">
<mat-option *ngFor="let interestRecalculationNthDayType of interestRecalculationNthDayTypeData" [value]="interestRecalculationNthDayType.id">
{{ interestRecalculationNthDayType.value }}
{{ interestRecalculationNthDayType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -365,7 +365,7 @@
<mat-form-field fxFlexFill>
<mat-select formControlName="recalculationCompoundingFrequencyDayOfWeekType">
<mat-option *ngFor="let interestRecalculationDayOfWeekType of interestRecalculationDayOfWeekTypeData" [value]="interestRecalculationDayOfWeekType.id">
{{ interestRecalculationDayOfWeekType.value }}
{{ interestRecalculationDayOfWeekType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -391,7 +391,7 @@
<mat-label>{{'labels.inputs.Frequency for recalculate Outstanding Principal' | translate}}</mat-label>
<mat-select formControlName="recalculationRestFrequencyType" required>
<mat-option *ngFor="let interestRecalculationFrequencyType of interestRecalculationFrequencyTypeData" [value]="interestRecalculationFrequencyType.id">
{{ interestRecalculationFrequencyType.value }}
{{ interestRecalculationFrequencyType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -404,7 +404,7 @@
<mat-form-field fxFlexFill>
<mat-select formControlName="recalculationRestFrequencyNthDayType">
<mat-option *ngFor="let interestRecalculationNthDayType of interestRecalculationNthDayTypeData" [value]="interestRecalculationNthDayType.id">
{{ interestRecalculationNthDayType.value }}
{{ interestRecalculationNthDayType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -417,7 +417,7 @@
<mat-form-field fxFlexFill>
<mat-select formControlName="recalculationRestFrequencyDayOfWeekType">
<mat-option *ngFor="let interestRecalculationDayOfWeekType of interestRecalculationDayOfWeekTypeData" [value]="interestRecalculationDayOfWeekType.id">
{{ interestRecalculationDayOfWeekType.value }}
{{ interestRecalculationDayOfWeekType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -496,9 +496,9 @@
<mat-divider fxFlex="98%"></mat-divider>
<h3 fxFlex="23%" class="mat-h3">{{'labels.inputs.Configurable Terms and Settings' | translate}}</h3>
<h3 fxFlex="43%" class="mat-h3">{{'labels.inputs.Configurable Terms and Settings' | translate}}</h3>
<mat-checkbox fxFlex="73%" labelPosition="before" formControlName="allowAttributeConfiguration" class="margin-b">
<mat-checkbox fxFlex="53%" labelPosition="before" formControlName="allowAttributeConfiguration" class="margin-b">
{{'labels.inputs.Allow overriding select terms and settings in loan accounts' | translate}}
</mat-checkbox>
@@ -37,7 +37,7 @@
<mat-label>{{'labels.inputs.Over Amount Calculation Type' | translate}}</mat-label>
<mat-select formControlName="overAppliedCalculationType" required>
<mat-option *ngFor="let overAppliedCalculationType of overAppliedCalculationTypeData" [value]="overAppliedCalculationType.id">
{{ overAppliedCalculationType.value }}
{{ overAppliedCalculationType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -127,7 +127,7 @@
<mat-label>{{'labels.inputs.Frequency' | translate}}</mat-label>
<mat-select formControlName="interestRateFrequencyType" required [disabled]="isZeroInterest()">
<mat-option *ngFor="let interestRateFrequencyType of interestRateFrequencyTypeData" [value]="interestRateFrequencyType.id">
{{ interestRateFrequencyType.value }}
{{ interestRateFrequencyType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -201,9 +201,9 @@
<div *ngIf="loanProductTermsForm.value.useBorrowerCycle" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<h4 fxFlex="23%" class="mat-h4">{{'labels.inputs.Principal by loan cycle' | translate}}</h4>
<h4 fxFlex="73%" class="mat-h4">{{'labels.inputs.Principal by loan cycle' | translate}}</h4>
<div fxFlex="73%">
<div fxFlex="23%">
<button type="button" mat-raised-button color="primary" (click)="addVariationsForBorrowerCycle('Principal', principalVariationsForBorrowerCycle)">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{'labels.buttons.Add' | translate}}
@@ -264,9 +264,9 @@
</table>
<h4 fxFlex="23%" class="mat-h4">{{'labels.inputs.Number of repayments by loan cycle' | translate}}</h4>
<h4 fxFlex="73%" class="mat-h4">{{'labels.inputs.Number of repayments by loan cycle' | translate}}</h4>
<div fxFlex="73%">
<div fxFlex="23%">
<button type="button" mat-raised-button color="primary" (click)="addVariationsForBorrowerCycle('NumberOfRepayments', numberOfRepaymentVariationsForBorrowerCycle)">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{'labels.buttons.Add' | translate}}
@@ -327,9 +327,9 @@
</table>
<h4 fxFlex="23%" class="mat-h4">{{'labels.inputs.Nominal interest rate by loan cycle' | translate}}</h4>
<h4 fxFlex="73%" class="mat-h4">{{'labels.inputs.Nominal interest rate by loan cycle' | translate}}</h4>
<div fxFlex="73%">
<div fxFlex="23%">
<button type="button" mat-raised-button color="primary" (click)="addVariationsForBorrowerCycle('NominalInterestRate', interestRateVariationsForBorrowerCycle)">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{'labels.buttons.Add' | translate}}
@@ -339,42 +339,42 @@
<table fxFlex="98%" class="mat-elevation-z1" mat-table [dataSource]="interestRateVariationsForBorrowerCycle.value" *ngIf="interestRateVariationsForBorrowerCycle.value.length">
<ng-container matColumnDef="valueConditionType">
<th mat-header-cell *matHeaderCellDef> Condition </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Condition' | translate }} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.valueConditionType | find:valueConditionTypeData:'id':'value' }}
</td>
</ng-container>
<ng-container matColumnDef="borrowerCycleNumber">
<th mat-header-cell *matHeaderCellDef> Loan Cycle </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Loan Cycle' | translate }} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.borrowerCycleNumber }}
</td>
</ng-container>
<ng-container matColumnDef="minValue">
<th mat-header-cell *matHeaderCellDef> Minimum </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Minimum' | translate }} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.minValue }}
</td>
</ng-container>
<ng-container matColumnDef="defaultValue">
<th mat-header-cell *matHeaderCellDef> Default </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Default' | translate }} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.defaultValue }}
</td>
</ng-container>
<ng-container matColumnDef="maxValue">
<th mat-header-cell *matHeaderCellDef> Maximum </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Maximum' | translate }} </th>
<td mat-cell *matCellDef="let variation">
{{ variation.maxValue }}
</td>
</ng-container>
<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 element; let i = index">
<button mat-icon-button color="primary" (click)="editVariationsForBorrowerCycle('NominalInterestRate', interestRateVariationsForBorrowerCycle, i)">
<fa-icon icon="edit"></fa-icon>
@@ -408,7 +408,7 @@
<mat-label>{{'labels.inputs.Frequency Type' | translate}}</mat-label>
<mat-select formControlName="repaymentFrequencyType" required>
<mat-option *ngFor="let repaymentFrequencyType of repaymentFrequencyTypeData" [value]="repaymentFrequencyType.id">
{{ repaymentFrequencyType.value }}
{{ repaymentFrequencyType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -423,7 +423,7 @@
<mat-label>{{'labels.inputs.Fixed Length' | translate}}</mat-label>
<input type="number" matInput formControlName="fixedLength">
</mat-form-field>
<span fxFlex="30%" *ngIf="allowFixedLength()" class="label-field">{{ loanProductTermsForm.value.repaymentFrequencyType | find:repaymentFrequencyTypeData:'id':'value' }}</span>
<span fxFlex="30%" *ngIf="allowFixedLength()" class="label-field">{{ loanProductTermsForm.value.repaymentFrequencyType | find:repaymentFrequencyTypeData:'id':'value' | translateCatalog }}</span>
<mat-form-field fxFlex="48%">
<mat-label>{{'labels.inputs.Minimum days between disbursal and first repayment date' | translate}}</mat-label>
@@ -1,7 +1,6 @@
import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormArray, UntypedFormControl } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog';
import { TooltipPosition } from '@angular/material/tooltip';
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component';
@@ -9,8 +8,8 @@ import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.co
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
import { LoanProducts } from '../../loan-products';
import { ProcessingStrategyService } from '../../services/processing-strategy.service';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'mifosx-loan-product-terms-step',
@@ -38,7 +37,8 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
constructor(private formBuilder: UntypedFormBuilder,
private processingStrategyService: ProcessingStrategyService,
private dialog: MatDialog) {
private dialog: MatDialog,
private translateService: TranslateService) {
this.createLoanProductTermsForm();
this.setConditionalControls();
}
@@ -255,9 +255,15 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
getData(formType: string, values?: any) {
switch (formType) {
case 'Principal': return { title: 'Principal by loan cycle', formfields: this.getFormfields(values) };
case 'NumberOfRepayments': return { title: 'Number of repayments by loan cycle', formfields: this.getFormfields(values) };
case 'NominalInterestRate': return { title: 'Nominal interest rate by loan cycle', formfields: this.getFormfields(values) };
case 'Principal': return {
title: this.translateService.instant('labels.heading.Principal by loan cycle'), formfields: this.getFormfields(values)
};
case 'NumberOfRepayments': return {
title: this.translateService.instant('labels.heading.Number of Repayments by loan cycle'), formfields: this.getFormfields(values)
};
case 'NominalInterestRate': return {
title: this.translateService.instant('labels.heading.Nominal Interest Rate by loan cycle'), formfields: this.getFormfields(values)
};
}
}
@@ -265,7 +271,7 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
const formfields: FormfieldBase[] = [
new SelectBase({
controlName: 'valueConditionType',
label: 'Condition',
label: this.translateService.instant('labels.inputs.Condition'),
value: values ? values.valueConditionType : this.valueConditionTypeData[0].id,
options: { label: 'value', value: 'id', data: this.valueConditionTypeData },
required: true,
@@ -273,7 +279,7 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
}),
new InputBase({
controlName: 'borrowerCycleNumber',
label: 'Loan Cycle',
label: this.translateService.instant('labels.inputs.Loan Cycle'),
value: values ? values.borrowerCycleNumber : undefined,
type: 'number',
required: true,
@@ -281,14 +287,14 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
}),
new InputBase({
controlName: 'minValue',
label: 'Minimum',
label: this.translateService.instant('labels.inputs.Minimum'),
value: values ? values.minValue : undefined,
type: 'number',
order: 3
}),
new InputBase({
controlName: 'defaultValue',
label: 'Default',
label: this.translateService.instant('labels.inputs.Default'),
value: values ? values.defaultValue : undefined,
type: 'number',
required: true,
@@ -296,7 +302,7 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
}),
new InputBase({
controlName: 'maxValue',
label: 'Maximum',
label: this.translateService.instant('labels.inputs.Maximum'),
value: values ? values.maxValue : undefined,
type: 'number',
order: 5
@@ -28,21 +28,21 @@
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
{{ charge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
{{ charge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
{{ charge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -48,22 +48,22 @@
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Compounding Period' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestCompoundingPeriodType | find:savingProductsTemplate.interestCompoundingPeriodTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ savingProduct.interestCompoundingPeriodType | find:savingProductsTemplate.interestCompoundingPeriodTypeOptions:'id':'value' | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Posting Period' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestPostingPeriodType | find:savingProductsTemplate.interestPostingPeriodTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ savingProduct.interestPostingPeriodType | find:savingProductsTemplate.interestPostingPeriodTypeOptions:'id':'value' | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Calculated using' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationType | find:savingProductsTemplate.interestCalculationTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationType | find:savingProductsTemplate.interestCalculationTypeOptions:'id':'value' | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Days in Year' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationDaysInYearType | find:savingProductsTemplate.interestCalculationDaysInYearTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationDaysInYearType | find:savingProductsTemplate.interestCalculationDaysInYearTypeOptions:'id':'value' | translateCatalog }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Settings' | translate}}</h3>
@@ -72,12 +72,12 @@
<div fxFlexFill *ngIf="savingProduct.minRequiredOpeningBalance">
<span fxFlex="40%">{{'labels.inputs.Minimum Opening Balance' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minRequiredOpeningBalance }}</span>
<span fxFlex="60%">{{ savingProduct.minRequiredOpeningBalance | formatNumber }}</span>
</div>
<div fxFlexFill *ngIf="savingProduct.lockinPeriodFrequency">
<span fxFlex="40%">{{'labels.inputs.Lock-in Period' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.lockinPeriodFrequency + ' ' + (savingProduct.lockinPeriodFrequencyType | find:savingProductsTemplate.lockinPeriodFrequencyTypeOptions:'id':'value') }}</span>
<span fxFlex="60%">{{ savingProduct.lockinPeriodFrequency + ' ' + (savingProduct.lockinPeriodFrequencyType | find:savingProductsTemplate.lockinPeriodFrequencyTypeOptions:'id':'value') | translateCatalog }}</span>
</div>
<div fxFlexFill>
@@ -87,7 +87,7 @@
<div fxFlexFill *ngIf="savingProduct.minBalanceForInterestCalculation">
<span fxFlex="40%">{{'labels.inputs.Balance Required for Interest Calculation' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minBalanceForInterestCalculation }}</span>
<span fxFlex="60%">{{ savingProduct.minBalanceForInterestCalculation | formatNumber }}</span>
</div>
<div fxFlexFill>
@@ -97,7 +97,7 @@
<div fxFlexFill *ngIf="savingProduct.minRequiredBalance">
<span fxFlex="40%">{{'labels.inputs.Minimum Balance' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minRequiredBalance }}</span>
<span fxFlex="60%">{{ savingProduct.minRequiredBalance | formatNumber }}</span>
</div>
<div fxFlexFill>
@@ -117,17 +117,17 @@
<div fxFlexFill *ngIf="savingProduct.minOverdraftForInterestCalculation">
<span fxFlex="40%">{{'labels.inputs.Minimum Overdraft Required for Interest Calculation' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minOverdraftForInterestCalculation }}</span>
<span fxFlex="60%">{{ savingProduct.minOverdraftForInterestCalculation | formatNumber }}</span>
</div>
<div fxFlexFill *ngIf="savingProduct.nominalAnnualInterestRateOverdraft">
<span fxFlex="40%">{{'labels.inputs.Nominal Annual Interest for Overdraft' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.nominalAnnualInterestRateOverdraft }}</span>
<span fxFlex="60%">{{ savingProduct.nominalAnnualInterestRateOverdraft | formatNumber }} %</span>
</div>
<div fxFlexFill *ngIf="savingProduct.overdraftLimit">
<span fxFlex="40%">{{'labels.inputs.Maximum Overdraft Amount Limit' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.overdraftLimit }}</span>
<span fxFlex="60%">{{ savingProduct.overdraftLimit | formatNumber }}</span>
</div>
<div fxFlexFill>
@@ -162,21 +162,21 @@
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
{{ charge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
{{ charge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
{{ charge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -187,11 +187,11 @@
</div>
<h3 class="mat-h3" fxFlexFill>{{'labels.inputs.Accounting' | translate}}</h3>
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Accounting' | translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
<mifosx-view-savings-accounting-details
<mifosx-view-savings-accounting-details fxFlex="100%"
[accountingRule]="accountingRule"
[accountingMappings]="accountingMappings"
>
@@ -33,9 +33,8 @@ export class SavingProductPreviewStepComponent implements OnInit, OnChanges {
}
setCurrentValues(): void {
this.accountingRule = this.accounting.getAccountingRuleFrom(this.savingProduct.accountingRule);
if (this.isCashOrAccrualAccounting()) {
this.accountingRule = this.accounting.getAccountingRuleFrom(this.savingProduct.accountingRule);
const assetAccountData = this.savingProductsTemplate.accountingMappingOptions.assetAccountOptions || [];
const incomeAccountData = this.savingProductsTemplate.accountingMappingOptions.incomeAccountOptions || [];
@@ -17,7 +17,7 @@
<mat-form-field fxFlex="48%">
<mat-select formControlName="lockinPeriodFrequencyType">
<mat-option *ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData" [value]="lockinPeriodFrequencyType.id">
{{ lockinPeriodFrequencyType.value }}
{{ lockinPeriodFrequencyType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -16,7 +16,7 @@
<mat-label>{{'labels.inputs.Interest Compounding Period' | translate}}</mat-label>
<mat-select formControlName="interestCompoundingPeriodType" matTooltip="The period at which interest rate is compounded" required>
<mat-option *ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData" [value]="interestCompoundingPeriodType.id">
{{ interestCompoundingPeriodType.value }}
{{ interestCompoundingPeriodType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -28,7 +28,7 @@
<mat-label>{{'labels.inputs.Interest Posting Period' | translate}}</mat-label>
<mat-select formControlName="interestPostingPeriodType" matTooltip="The period at which interest rate is posted or credited to a saving account" required>
<mat-option *ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData" [value]="interestPostingPeriodType.id">
{{ interestPostingPeriodType.value }}
{{ interestPostingPeriodType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -40,7 +40,7 @@
<mat-label>{{'labels.inputs.Interest Calculated using' | translate}}</mat-label>
<mat-select formControlName="interestCalculationType" matTooltip="The method used to calculate interest" required>
<mat-option *ngFor="let interestCalculationType of interestCalculationTypeData" [value]="interestCalculationType.id">
{{ interestCalculationType.value }}
{{ interestCalculationType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -52,7 +52,7 @@
<mat-label>{{'labels.inputs.Days in Year' | translate}}</mat-label>
<mat-select formControlName="interestCalculationDaysInYearType" matTooltip="The setting for number of days in year to use to calculate interest" required>
<mat-option *ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData" [value]="interestCalculationDaysInYearType.id">
{{ interestCalculationDaysInYearType.value }}
{{ interestCalculationDaysInYearType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -57,22 +57,22 @@
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Compounding Period' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestCompoundingPeriodType.value }}</span>
<span fxFlex="60%">{{ savingProduct.interestCompoundingPeriodType.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Posting Period' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestPostingPeriodType.value }}</span>
<span fxFlex="60%">{{ savingProduct.interestPostingPeriodType.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Calculated using' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationType.value }}</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationType.value | translateCatalog }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Days in Year' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationDaysInYearType.value }}</span>
<span fxFlex="60%">{{ savingProduct.interestCalculationDaysInYearType.value | translateCatalog }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Settings' | translate}}</h3>
@@ -81,7 +81,7 @@
<div fxFlexFill *ngIf="savingProduct.minRequiredOpeningBalance">
<span fxFlex="40%">{{'labels.inputs.Minimum Opening Balance' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minRequiredOpeningBalance }}</span>
<span fxFlex="60%">{{ savingProduct.minRequiredOpeningBalance | formatNumber }}</span>
</div>
<div fxFlexFill *ngIf="savingProduct.lockinPeriodFrequency">
@@ -97,7 +97,7 @@
<div fxFlexFill *ngIf="savingProduct.minBalanceForInterestCalculation">
<span fxFlex="40%">{{'labels.inputs.Balance Required for Interest Calculation' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minBalanceForInterestCalculation }}</span>
<span fxFlex="60%">{{ savingProduct.minBalanceForInterestCalculation | formatNumber }}</span>
</div>
<div fxFlexFill>
@@ -107,7 +107,7 @@
<div fxFlexFill *ngIf="savingProduct.minRequiredBalance">
<span fxFlex="40%">{{'labels.inputs.Minimum Balance' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.minRequiredBalance }}</span>
<span fxFlex="60%">{{ savingProduct.minRequiredBalance | formatNumber }}</span>
</div>
<div fxFlexFill>
@@ -132,12 +132,12 @@
<div fxFlexFill *ngIf="savingProduct.nominalAnnualInterestRateOverdraft">
<span fxFlex="40%">{{'labels.inputs.Nominal Annual Interest for Overdraft' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.nominalAnnualInterestRateOverdraft }}</span>
<span fxFlex="60%">{{ savingProduct.nominalAnnualInterestRateOverdraft }} %</span>
</div>
<div fxFlexFill *ngIf="savingProduct.overdraftLimit">
<span fxFlex="40%">{{'labels.inputs.Maximum Overdraft Amount Limit' | translate}}:</span>
<span fxFlex="60%">{{ savingProduct.overdraftLimit }}</span>
<span fxFlex="60%">{{ savingProduct.overdraftLimit | formatNumber }}</span>
</div>
<div fxFlexFill>
@@ -172,21 +172,21 @@
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
{{ charge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount }}
{{ charge.amount | formatNumber }}
</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
{{ charge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -47,7 +47,7 @@
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Collected On' | translate }} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeTimeType.value }}
{{ charge.chargeTimeType.value | translateCatalog }}
</td>
</ng-container>
@@ -65,7 +65,7 @@
|| charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee')">
N/A
</span>
<button mat-icon-button color="primary" *ngIf="charge.chargeTimeType.value === 'Weekly Fee' || charge.chargeTimeType.value === 'Annual Fee'
<button mat-icon-button color="primary" *ngIf="charge.chargeTimeType.value === 'Weekly Fee' || charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee'
|| charge.chargeTimeType.value === 'Specified due date'" (click)="editChargeDate(charge)">
<fa-icon icon="pen"></fa-icon>
</button>
@@ -12,6 +12,7 @@ import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
import { DatepickerBase } from 'app/shared/form-dialog/formfield/model/datepicker-base';
import { Dates } from 'app/core/utils/dates';
import { MatTableDataSource } from '@angular/material/table';
import { TranslateService } from '@ngx-translate/core';
/**
* Savings Account Charges Step
@@ -55,8 +56,9 @@ export class SavingsAccountChargesStepComponent implements OnInit, OnChanges {
/**
* @param {MatDialog} dialog Mat Dialog
*/
constructor(public dialog: MatDialog,
private dateUtils: Dates) {}
constructor(private dialog: MatDialog,
private dateUtils: Dates,
private translateService: TranslateService) {}
ngOnInit() {
if (this.savingsAccountTemplate) {
@@ -95,14 +97,14 @@ export class SavingsAccountChargesStepComponent implements OnInit, OnChanges {
const formfields: FormfieldBase[] = [
new InputBase({
controlName: 'amount',
label: 'Amount',
label: this.translateService.instant('labels.inputs.Amount'),
value: charge.amount,
type: 'number',
required: false
}),
];
const data = {
title: 'Edit Charge Amount',
title: this.translateService.instant('labels.heading.Edit Charge Amount'),
layout: { addButtonText: 'Confirm' },
formfields: formfields
};
@@ -125,14 +127,14 @@ export class SavingsAccountChargesStepComponent implements OnInit, OnChanges {
const formfields: FormfieldBase[] = [
new DatepickerBase({
controlName: 'date',
label: 'Date',
label: this.translateService.instant('labels.inputs.Date'),
value: charge.dueDate || charge.feeOnMonthDay || '',
type: 'datetime-local',
required: false
}),
];
const data = {
title: 'Edit Charge Date',
title: this.translateService.instant('labels.heading.Edit Charge Date'),
layout: { addButtonText: 'Confirm' },
formfields: formfields
};
@@ -145,12 +147,15 @@ export class SavingsAccountChargesStepComponent implements OnInit, OnChanges {
switch (charge.chargeTimeType.value) {
case 'Specified due date':
case 'Weekly Fee':
newCharge = { ...charge, dueDate: date };
newCharge = { ...charge, dueDate: date };
break;
case 'Annual Fee':
newCharge = { ...charge, feeOnMonthDay: date };
case 'Monthly Fee':
const dateMonthDay = this.dateUtils.formatDate(response.data.value.date, 'dd MMMM');
newCharge = { ...charge, feeOnMonthDay: dateMonthDay };
break;
}
console.log(newCharge);
this.chargesDataSource.splice(this.chargesDataSource.indexOf(charge), 1, newCharge);
this.chargesDataSource = this.chargesDataSource.concat([]);
}
@@ -51,26 +51,26 @@
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Compounding Period' | translate}}:</span>
<span fxFlex="60%">{{ savingsAccount.interestCompoundingPeriodType |
find:savingsAccountProductTemplate.interestCompoundingPeriodTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ getCatalogTranslation(savingsAccount.interestCompoundingPeriodType |
find:savingsAccountProductTemplate.interestCompoundingPeriodTypeOptions:'id':'value') }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Posting Period' | translate}}:</span>
<span fxFlex="60%">{{ savingsAccount.interestPostingPeriodType |
find:savingsAccountProductTemplate.interestPostingPeriodTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ getCatalogTranslation(savingsAccount.interestPostingPeriodType |
find:savingsAccountProductTemplate.interestPostingPeriodTypeOptions:'id':'value') }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Interest Calculated using' | translate}}:</span>
<span fxFlex="60%">{{ savingsAccount.interestCalculationType |
find:savingsAccountProductTemplate.interestCalculationTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ getCatalogTranslation(savingsAccount.interestCalculationType |
find:savingsAccountProductTemplate.interestCalculationTypeOptions:'id':'value') }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">{{'labels.inputs.Days in Year' | translate}}:</span>
<span fxFlex="60%">{{ savingsAccount.interestCalculationDaysInYearType |
find:savingsAccountProductTemplate.interestCalculationDaysInYearTypeOptions:'id':'value' }}</span>
<span fxFlex="60%">{{ getCatalogTranslation(savingsAccount.interestCalculationDaysInYearType |
find:savingsAccountProductTemplate.interestCalculationDaysInYearTypeOptions:'id':'value') }}</span>
</div>
<div fxFlexFill *ngIf="savingsAccount.minRequiredOpeningBalance">
@@ -85,8 +85,8 @@
<div fxFlexFill *ngIf="savingsAccount.lockinPeriodFrequency">
<span fxFlex="40%">{{'labels.inputs.Lock-in Period' | translate}}:</span>
<span fxFlex="60%">{{ savingsAccount.lockinPeriodFrequency + ' ' + (savingsAccount.lockinPeriodFrequencyType |
find:savingsAccountProductTemplate.lockinPeriodFrequencyTypeOptions:'id':'value') }}</span>
<span fxFlex="60%">{{ getCatalogTranslation(savingsAccount.lockinPeriodFrequency + ' ' + (savingsAccount.lockinPeriodFrequencyType |
find:savingsAccountProductTemplate.lockinPeriodFrequencyTypeOptions:'id':'value')) }}</span>
</div>
<div fxFlexFill>
@@ -137,7 +137,7 @@
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Type' | translate}} </th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value }}
{{ charge.chargeCalculationType.value | translateCatalog }}
</td>
</ng-container>
@@ -1,5 +1,6 @@
/** Angular Imports */
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
/**
* Savings account preview step
@@ -26,6 +27,9 @@ export class SavingsAccountPreviewStepComponent {
/** Form submission event */
@Output() submit = new EventEmitter();
constructor() { }
constructor(private translateService: TranslateService) { }
getCatalogTranslation(text: string): string {
return this.translateService.instant('labels.catalogs.' + text);
}
}
@@ -24,7 +24,7 @@
<mat-label>{{'labels.inputs.Interest Compounding Period' | translate}}</mat-label>
<mat-select formControlName="interestCompoundingPeriodType" required>
<mat-option *ngFor="let interestCompoundingPeriodType of interestCompoundingPeriodTypeData" [value]="interestCompoundingPeriodType.id">
{{ interestCompoundingPeriodType.value }}
{{ interestCompoundingPeriodType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -36,7 +36,7 @@
<mat-label>{{'labels.inputs.Interest Posting Period' | translate}}</mat-label>
<mat-select formControlName="interestPostingPeriodType" required>
<mat-option *ngFor="let interestPostingPeriodType of interestPostingPeriodTypeData" [value]="interestPostingPeriodType.id">
{{ interestPostingPeriodType.value }}
{{ interestPostingPeriodType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -48,7 +48,7 @@
<mat-label>{{'labels.inputs.Interest Calculated using' | translate}}</mat-label>
<mat-select formControlName="interestCalculationType" required>
<mat-option *ngFor="let interestCalculationType of interestCalculationTypeData" [value]="interestCalculationType.id">
{{ interestCalculationType.value }}
{{ interestCalculationType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -60,7 +60,7 @@
<mat-label>{{'labels.inputs.Days in Year' | translate}}</mat-label>
<mat-select formControlName="interestCalculationDaysInYearType" required>
<mat-option *ngFor="let interestCalculationDaysInYearType of interestCalculationDaysInYearTypeData" [value]="interestCalculationDaysInYearType.id">
{{ interestCalculationDaysInYearType.value }}
{{ interestCalculationDaysInYearType.value | translateCatalog }}
</mat-option>
</mat-select>
<mat-error>
@@ -88,7 +88,7 @@
<mat-label>{{'labels.inputs.Type' | translate}}</mat-label>
<mat-select formControlName="lockinPeriodFrequencyType">
<mat-option *ngFor="let lockinPeriodFrequencyType of lockinPeriodFrequencyTypeData" [value]="lockinPeriodFrequencyType.id">
{{ lockinPeriodFrequencyType.value }}
{{ lockinPeriodFrequencyType.value | translateCatalog }}
</mat-option>
</mat-select>
</mat-form-field>
@@ -2,11 +2,11 @@
<div fxLayout="row" fxLayoutAlign="start">
<div class="m-b-10">
<h3>All Charges</h3>
<h3>{{ 'labels.inputs.Charges' | translate }}</h3>
</div>
<div class="action-button m-b-20" *ngIf="this.chargesData">
<button mat-raised-button color="primary" (click)="toggleCharges()">
{{showInactiveCharges?'View Active Charges':'View Inactive Charges'}}</button>
{{showInactiveCharges ? viewAllChargeButtons('View Active Charges') : viewAllChargeButtons('View Inactive Charges')}}</button>
</div>
</div>
@@ -15,57 +15,57 @@
<table mat-table #chargesTable [dataSource]="dataSource" >
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Name' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.name }} </td>
</ng-container>
<ng-container matColumnDef="feeOrPenalty">
<th mat-header-cell *matHeaderCellDef> Fee/Penalty </th>
<td mat-cell *matCellDef="let charge"> {{ charge.penalty === true ? 'Penalty' : 'Fee' }} </td>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Charge Type' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.penalty ? 'Penalty' : 'Fee' | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="paymentDueAt">
<th mat-header-cell *matHeaderCellDef> Payment Due At </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value }} </td>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Payment Due At' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeTimeType.value | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="dueAsOf">
<th mat-header-cell *matHeaderCellDef> Due As Of </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Due As Of' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.dueDate | dateFormat }} </td>
</ng-container>
<ng-container matColumnDef="repeatsOn">
<th mat-header-cell *matHeaderCellDef> Repeats On (M/d) </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Repeats On (M/d)' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.feeOnMonthDay ? charge.feeOnMonthDay.join('/') : '' }} </td>
</ng-container>
<ng-container matColumnDef="calculationType">
<th mat-header-cell *matHeaderCellDef> Calculation Type </th>
<td mat-cell *matCellDef="let charge"> {{charge.chargeCalculationType.value}} </td>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Calculation Type' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{ charge.chargeCalculationType.value | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="due">
<th mat-header-cell *matHeaderCellDef> Due </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Due' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{charge.amount | currency:charge.currency.code:'symbol-narrow':'1.2-2'}} </td>
</ng-container>
<ng-container matColumnDef="paid">
<th mat-header-cell *matHeaderCellDef> Paid </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Paid' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{charge.amountPaid | currency:charge.currency.code:'symbol-narrow':'1.2-2'}} </td>
</ng-container>
<ng-container matColumnDef="waived">
<th mat-header-cell *matHeaderCellDef> Waived </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Waived' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{charge.amountWaived | currency:charge.currency.code:'symbol-narrow':'1.2-2'}} </td>
</ng-container>
<ng-container matColumnDef="outstanding">
<th mat-header-cell *matHeaderCellDef> Outstanding </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Outstanding' | translate}} </th>
<td mat-cell *matCellDef="let charge"> {{charge.amountOutstanding | currency:charge.currency.code:'symbol-narrow':'1.2-2'}} </td>
</ng-container>
<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 charge">
<span *ngIf="savingsAccountData.status.value === 'Submitted and pending approval'">
<button class="account-action-button" mat-raised-button color="primary" matTooltip="Edit Charge"
@@ -19,6 +19,7 @@ import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-
import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
import { DatepickerBase } from 'app/shared/form-dialog/formfield/model/datepicker-base';
import { Dates } from 'app/core/utils/dates';
import { TranslateService } from '@ngx-translate/core';
/**
* Charges Tab Component
@@ -69,8 +70,9 @@ export class ChargesTabComponent implements OnInit {
private route: ActivatedRoute,
private dateUtils: Dates,
private router: Router,
public dialog: MatDialog,
private settingsService: SettingsService) {
private dialog: MatDialog,
private settingsService: SettingsService,
private translateService: TranslateService) {
this.route.parent.data.subscribe((data: { savingsAccountData: any }) => {
this.savingsAccountData = data.savingsAccountData;
this.chargesData = this.savingsAccountData.charges;
@@ -257,4 +259,8 @@ export class ChargesTabComponent implements OnInit {
.then(() => this.router.navigate([url]));
}
viewAllChargeButtons(text: string): string {
return this.translateService.instant('labels.buttons.' + text);
}
}
@@ -9,6 +9,13 @@
<h4 class="table-headers">{{'labels.heading.Savings Details' | translate}}</h4>
<table>
<tbody>
<tr>
<td>{{'labels.inputs.External Id' | translate}}</td>
<td *ngIf="savingsAccountData.externalId">
<mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier>
</td>
<td *ngIf="!savingsAccountData.externalId">{{'labels.inputs.Not Provided' | translate}}</td>
</tr>
<tr>
<td>{{'labels.inputs.Activated On' | translate}}</td>
<td>{{savingsAccountData.timeline.activatedOnDate ? (savingsAccountData.timeline.activatedOnDate |
@@ -18,19 +25,16 @@
<td>{{'labels.inputs.Field Officer' | translate}}</td>
<td>{{savingsAccountData.fieldOfficerName ? savingsAccountData.fieldOfficerName : 'Unassigned'}}</td>
</tr>
<tr>
<td>{{'labels.inputs.External Id' | translate}}</td>
<td *ngIf="savingsAccountData.externalId">
<mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier>
</td>
<td *ngIf="!savingsAccountData.externalId">{{'labels.inputs.Not Provided' | translate}}</td> </tr>
<tr>
<td>{{'labels.inputs.Currency' | translate}}</td>
<td>{{savingsAccountData.currency.name}} [{{savingsAccountData.currency.code}}]</td>
</tr>
<tr>
<td>{{'labels.inputs.Nominal Interest Rate' | translate}}</td>
<td class="r-amount">{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td>
<td class="r-amount">
<span *ngIf="savingsAccountData.nominalAnnualInterestRate">{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</span>
<span *ngIf="!savingsAccountData.nominalAnnualInterestRate">0 %</span>
</td>
</tr>
</tbody>
</table>
@@ -115,19 +119,19 @@
</tr>
<tr>
<td>{{'labels.inputs.Interest Compounding Period' | translate}}</td>
<td>{{savingsAccountData.interestCompoundingPeriodType.value}}</td>
<td>{{savingsAccountData.interestCompoundingPeriodType.value | translateCatalog}}</td>
</tr>
<tr>
<td>{{'labels.inputs.Interest Posting Period' | translate}}</td>
<td>{{savingsAccountData.interestPostingPeriodType.value}}</td>
<td>{{savingsAccountData.interestPostingPeriodType.value | translateCatalog}}</td>
</tr>
<tr>
<td>{{'labels.inputs.Interest Calculated Using' | translate}}</td>
<td>{{savingsAccountData.interestCalculationType.value}}</td>
<td>{{savingsAccountData.interestCalculationType.value | translateCatalog}}</td>
</tr>
<tr>
<td>{{'labels.inputs.Days in Year' | translate}}</td>
<td>{{savingsAccountData.interestCalculationDaysInYearType.value}}</td>
<td>{{savingsAccountData.interestCalculationDaysInYearType.value | translateCatalog}}</td>
</tr>
<tr *ngIf="savingsAccountData.withdrawalFee">
<td>{{'labels.inputs.Withdrawal Fee' | translate}}</td>
@@ -200,6 +204,13 @@
<h4 class="table-headers">{{'labels.heading.Account Summary' | translate}}</h4>
<table>
<tbody>
<tr>
<td>{{'labels.inputs.External Id' | translate}}</td>
<td *ngIf="savingsAccountData.externalId">
<mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier>
</td>
<td *ngIf="!savingsAccountData.externalId">{{'labels.inputs.Not Provided' | translate}}</td>
</tr>
<tr>
<td>{{'labels.inputs.Activated On' | translate}}</td>
<td>{{savingsAccountData.timeline.activatedOnDate ? (savingsAccountData.timeline.activatedOnDate |
@@ -209,13 +220,6 @@
<td>{{'labels.inputs.Currency' | translate}}</td>
<td>{{savingsAccountData.currency.name}} [{{savingsAccountData.currency.code}}]</td>
</tr>
<tr>
<td>{{'labels.inputs.External Id' | translate}}</td>
<td *ngIf="savingsAccountData.externalId">
<mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier>
</td>
<td *ngIf="!savingsAccountData.externalId">{{'labels.inputs.Not Provided' | translate}}</td>
</tr>
</tbody>
</table>
</div>
@@ -102,7 +102,7 @@
</a>
<a mat-tab-link [routerLink]="['./documents']" routerLinkActive #savingsDocuments="routerLinkActive"
[active]="savingsDocuments.isActive">
{{'labels.inputs.Savings Documents' | translate}}
{{'labels.inputs.Documents' | translate}}
</a>
<a mat-tab-link *mifosxHasPermission="'READ_SAVINGSNOTE'" [routerLink]="['./notes']" routerLinkActive #notes="routerLinkActive"
[active]="notes.isActive">
@@ -34,9 +34,16 @@
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)"> {{ transaction.date | dateFormat }} </td>
</ng-container>
<ng-container matColumnDef="externalId">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.External Id" | translate}} </th>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)">
<mifosx-external-identifier externalId="{{transaction.externalId}}"></mifosx-external-identifier>
</td>
</ng-container>
<ng-container matColumnDef="transactionType">
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Transaction Type" | translate}} </th>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)"> {{ transaction.transactionType.value }} </td>
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)"> {{ transaction.transactionType.value | translateCatalog }} </td>
</ng-container>
<ng-container matColumnDef="debit">
@@ -30,7 +30,7 @@ export class TransactionsTabComponent implements OnInit {
hideAccrualsParam: UntypedFormControl;
hideReversedParam: UntypedFormControl;
/** Columns to be displayed in transactions table. */
displayedColumns: string[] = ['row', 'id', 'date', 'transactionType', 'debit', 'credit', 'balance', 'actions'];
displayedColumns: string[] = ['row', 'id', 'date', 'externalId', 'transactionType', 'debit', 'credit', 'balance', 'actions'];
/** Data source for transactions table. */
dataSource: MatTableDataSource<any>;
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
@@ -39,7 +39,7 @@
<div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="mat-body-strong">
Name
{{ 'labels.inputs.Name' | translate }}
</div>
<div fxFlex="50%">
@@ -47,15 +47,15 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
Charge Type
{{ 'labels.inputs.Charge Type' | translate }}
</div>
<div fxFlex="50%">
{{ chargeData.penalty ? 'Penalty' : 'Fees' }}
{{ chargeData.penalty ? 'Penalty' : 'Fee' | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
Currency
{{ 'labels.inputs.Currency' | translate }}
</div>
<div fxFlex="50%">
@@ -63,15 +63,15 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
Payment due at
{{ 'labels.inputs.Payment due at' | translate }}
</div>
<div fxFlex="50%">
{{ chargeData.chargeTimeType.value }}
{{ chargeData.chargeTimeType.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
Payment due as of
{{ 'labels.inputs.Payment due as of' | translate }}
</div>
<div fxFlex="50%">
@@ -79,15 +79,15 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
Calculation Type
{{ 'labels.inputs.Calculation Type' | translate }}
</div>
<div fxFlex="50%">
{{ chargeData.chargeCalculationType.value }}
{{ chargeData.chargeCalculationType.value | translateCatalog }}
</div>
<div fxFlex="50%" class="mat-body-strong">
Due
{{ 'labels.inputs.Due' | translate }}
</div>
<div fxFlex="50%">
@@ -95,7 +95,7 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
Paid
{{ 'labels.inputs.Paid' | translate }}
</div>
<div fxFlex="50%">
@@ -103,7 +103,7 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
Waived
{{ 'labels.inputs.Waived' | translate }}
</div>
<div fxFlex="50%">
@@ -111,7 +111,7 @@
</div>
<div fxFlex="50%" class="mat-body-strong">
Outstanding
{{ 'labels.inputs.Outstanding' | translate }}
</div>
<div fxFlex="50%">
@@ -1,6 +1,6 @@
<div fxLayout="row wrap" fxLayout.lt-md="column">
<div fxFlexFill *ngIf="accountingRule" fxLayout="row wrap" fxLayout.lt-md="column">
<div fxFlexFill fxFlex="98%" *ngIf="accountingRule" fxLayout="row wrap" fxLayout.lt-md="column">
<span fxFlex="40%">{{'labels.inputs.Type' | translate}}:</span>
<span fxFlex="60%">{{'labels.accounting.' + getAccountingRuleName(accountingRule.value) | translate}}</span>
</div>
@@ -32,7 +32,7 @@ export class ViewSavingsAccountingDetailsComponent implements OnInit {
}
getAccountingRuleName(value: string): string {
return this.accounting.getAccountRuleName(value);
return this.accounting.getAccountRuleName(value.toUpperCase());
}
}
@@ -65,7 +65,7 @@ export class EntityDocumentsTabComponent implements OnInit {
uploadDocument() {
const uploadDocumentDialogRef = this.dialog.open(UploadDocumentDialogComponent, {
data: { documentIdentifier: false, entityType: 'Loan' }
data: { documentIdentifier: false, entityType: '' }
});
uploadDocumentDialogRef.afterClosed().subscribe((dialogResponse: any) => {
if (dialogResponse) {
@@ -5,8 +5,8 @@
<div>
<form #formRef="ngForm" [formGroup]="noteForm" fxLayout="row" fxLayoutAlign="start baseline" fxLayoutGap="20px"
(ngSubmit)="addNote()">
<mat-form-field fxFlex="calc(90%-20px)">
<textarea required formControlName="note" matInput placeholder="Write a note ...." cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
<mat-form-field fxFlex="calc(85%-20px)">
<textarea required formControlName="note" matInput placeholder="{{'labels.text.Write a note' | translate}} ..." cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
<button mat-raised-button fxFlex color="primary" [disabled]="!noteForm.valid">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ 'labels.buttons.Add' | translate }}
@@ -19,8 +19,8 @@
<fa-icon icon="sticky-note" matListIcon></fa-icon>
<h3 matLine>{{ entityNote.note }} </h3>
<p matLine>
<span>Created by: {{entityNote.createdByUsername}}</span><br />
<span>Date: {{entityNote.createdOn | dateFormat}}</span>
<span><b>{{ 'labels.inputs.Created By' | translate }}:</b> {{entityNote.createdByUsername}}</span><br />
<span><b>{{ 'labels.inputs.Date' | translate }}:</b> {{entityNote.createdOn | dateFormat}}</span>
</p>
<div fxLayout="row" fxLayoutAlign="flex-start">
<button mat-button color="primary" (click)="editNote(entityNote.id, entityNote.note, i)">
@@ -46,7 +46,7 @@
</ng-container>
<ng-container matColumnDef="edit">
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Edit' | translate}} </th>
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Actions' | translate}} </th>
<td mat-cell *matCellDef="let configuration">
<button mat-button color="primary" [routerLink]="[configuration.id, 'edit']">
<fa-icon icon="edit"></fa-icon>
+1 -1
View File
@@ -30,6 +30,6 @@
window['env']['waitTimeForCOBCatchUp'] = '';
// Time in milliseconds for Session idle timeout, default 300000 seconds
window['env']['sessionIdleTimeout'] = '60000';
window['env']['sessionIdleTimeout'] = '0';
})(this);
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Zřeknutí se poplatku",
"Week": "Týden",
"Withdraw": "Ustoupit",
"View Active Charges": "Zobrazit aktivní poplatky",
"View Inactive Charges": "Zobrazit neaktivní poplatky",
"Yes": "Ano"
},
"catalogs": {
"Active": "Aktivní",
"Inactive": "Inactive",
"Loans": "Loans",
"Client": "Client",
"Loan": "Loan",
"Savings": "Savings",
"Shares": "Shares",
"Regular": "Regular",
"Account transfer": "Account transfer",
"Flat": "Flat",
"% Amount": "% Amount",
"% Interest": "% Interest",
"% Loan Amount + Interest": "% Loan Amount + Interest",
"Disbursement": "Disbursement",
"Specified due date": "Specified due date",
"Installment Fee": "Installment Fee",
"Overdue Fees": "Overdue Fees",
"Tranche Disbursement": "Tranche Disbursement",
"Savings Activation": "Savings Activation",
"Saving No Activity Fee": "Ušetříte žádný poplatek za aktivitu",
"Withdrawal Fee": "Withdrawal Fee",
"Annual Fee": "Annual Fee",
"Monthly Fee": "Monthly Fee",
"Weekly Fee": "Weekly Fee",
"Share Account Activate": "Share Account Activate",
"Share Purchase": "Share Purchase",
"Share Redeem": "Share Redeem",
"Days": "Dny",
"Weeks": "týdny",
"Months": "měsíce",
"Years": "let",
"Deposit": "Vklad",
"Withdrawal": "Vybrání",
"Interest Posting": "Zveřejnění zájmu",
"Waive Charge": "Zřeknutí se poplatku",
"Pay Charge": "Zaplatit poplatek",
"Dividend Payout": "Výplata dividend",
"Accrual": "Akruální",
"Initiate Transfer": "Spusťte přenos",
"Approve Transfer": "Schválit převod",
"Withdraw Transfer": "Odebrat převod",
"Writtenoff": "Odepsané",
"Overdraft Interest": "Úrok z kontokorentu",
"Withhold Tax": "Srážková daň",
"Escheat": "Escheat",
"On Hold": "Pozastaveno",
"Release": "Uvolnění",
"Daily": "Denně",
"Monthly": "Měsíční",
"Quarterly": "Čtvrtletně",
"Semi-Annual": "Pololetní",
"Annually": "Každoročně",
"Weekly": "Týdně",
"Daily Balance": "Denní zůstatek",
"Average Daily Balance": "Průměrný denní zůstatek",
"BiAnnual": "Pololetní",
"360 Days": "360 dní",
"365 Days": "365 dní",
"30 Days": "30 dní",
"364 Days": "364 dní",
"Actual": "Aktuální",
"Disbursement Date": "Datum výplaty",
"Submitted On Date": "Odesláno dne",
"Per year": "Za rok",
"Per month": "Za měsíc",
"Whole term": "Celé období",
"Same as repayment period": "Stejné jako doba splácení",
"Declining Balance": "Klesající zůstatek",
"Cumulative": "Kumulativní",
"Progressive": "Progresivní",
"Penalty": "Trest",
"Fees": "Poplatky",
"Fee": "Poplatek",
"Horizontal": "Horizontální",
"Vertical": "Vertikální",
"Advanced payment allocation strategy": "Pokročilá strategie alokace plateb",
"Past due penalty": "Po splatnosti pokuta",
"Past due fee": "Poplatek po splatnosti",
"Past due principal": "Po splatnosti jistina",
"Past due interest": "Úroky po splatnosti",
"Due penalty": "Náležitý trest",
"Due fee": "Dlužný poplatek",
"Due principal": "Splatná jistina",
"Due interest": "Přiměřený zájem",
"In advanced penalty": "Pokuta předem",
"In advanced fee": "Poplatek předem",
"In advanced principal": "Předem ředitel",
"In advanced interest": "Zájem předem",
"Next installment": "Další splátka",
"Last installment": "Poslední splátka",
"Reamotization": "Reamotizace",
"equals": "rovná se",
"greater than": "větší než",
"Equal installments": "Stejné splátky",
"Equal principal payments": "Stejné splátky jistiny",
"Till Pre-Close Date": "Do data předběžného uzavření",
"Till Rest Frequency Date": "Do zbývajícího data frekvence",
"Reduce EMI amount": "Snížit částku",
"Reduce number of installments": "Snížit počet splátek",
"Reschedule next repayments": "Přeplánujte další splátky",
"None": "Hlavní město",
"Interest": "Zájem",
"Fee and Interest": "Poplatek a úrok",
"Creocore Unique": "Unikátní Creocore",
"Early Repayment Strategy": "Strategie předčasného splacení",
"Penalties, Fees, Interest, Principal order": "Sankce, poplatky, úroky, jistina",
"HeavensFamily Unique": "Unikátní Nebeská rodina",
"Interest, Principal, Penalties, Fees Order": "Úroky, jistina, penále, poplatky",
"Principal, Interest, Penalties, Fees Order": "Jistina, úrok, penále, příkaz k poplatkům",
"Overdue/Due Fee/Int,Principal": "Po splatnosti/Poplatek po splatnosti/Int, jistina",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Splatná pokuta, poplatek, úrok, jistina, Předem jistina, penále, poplatek, úrok",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Splatná pokuta, úrok, jistina, poplatek, Pokuta předem, úrok, jistina, poplatek",
"first": "První",
"second": "druhý",
"third": "Třetí",
"fourth": "čtyři",
"last": "poslední",
"on day": "ve dne",
"SUNDAY": "NEDĚLE",
"MONDAY": "PONDĚLÍ",
"TUESDAY": "ÚTERÝ",
"WEDNESDAY": "STŘEDA",
"THURSDAY": "ČTVRTEK",
"FRIDAY": "PÁTEK",
"SATURDAY": "SOBOTA",
"Invalid": "Neplatný"
},
"commons": {
"50 characters long": "50 znaků dlouhé",
"8 characters long": "8 znaků dlouhé",
@@ -573,6 +703,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Přidat účet",
"Add Currency Form": "Přidat formulář měny",
"Add Client Identifier": "Přidat identifikátor klienta",
"Add Journal Entry Form": "Přidat formulář pro zápis do deníku",
"Add Loan Collateral": "Přidejte zajištění úvěru",
"Add Role": "Přidat roli",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Datum zahájení dividendového období",
"Dividends": "Dividendy",
"Documents": "Dokumenty",
"Document Key": "Klíč dokumentu",
"Document Type": "Typ dokumentu",
"Dormancy Tracking": "Sledování dormance",
"Download": "Stažení",
"Due": "Z důvodu",
@@ -2155,6 +2288,8 @@
},
"task-management component": "komponenta řízení úkolů",
"to": "na",
"Down Payments": "Zálohy",
"Enable Down Payments": "Povolit zálohové platby",
"valid": "platný"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "Záznamy v časopise",
"Mandatory": "Povinné",
"Voluntary": "Dobrovolný",
"Write a note": "Napište poznámku",
"“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": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Auf Gebühr verzichten",
"Week": "Woche",
"Withdraw": "Zurückziehen",
"View Active Charges": "Aktive Gebühren anzeigen",
"View Inactive Charges": "Inaktive Gebühren anzeigen",
"Yes": "Ja"
},
"catalogs": {
"Active": "Aktiv",
"Inactive": "Inaktiv",
"Loans": "Kredite",
"Client": "Klient",
"Loan": "Darlehen",
"Savings": "Ersparnisse",
"Shares": "Anteile",
"Regular": "Regulär",
"Account transfer": "Kontoübertragung",
"Flat": "Wohnung",
"% Amount": "Menge",
"% Interest": "Interesse",
"% Loan Amount + Interest": "Kreditbetrag + Zinsen",
"Disbursement": "Auszahlung",
"Specified due date": "Angegebenes Fälligkeitsdatum",
"Installment Fee": "Ratenzahlungsgebühr",
"Overdue Fees": "Überfällige Gebühren",
"Tranche Disbursement": "Tranchenauszahlung",
"Savings Activation": "Sparaktivierung",
"Saving No Activity Fee": "Sparen Sie keine Aktivitätsgebühr",
"Withdrawal Fee": "Abhebegebühr",
"Annual Fee": "Jahresgebühr",
"Monthly Fee": "Monatliche Gebühr",
"Weekly Fee": "Wöchentliche Gebühr",
"Share Account Activate": "Freigabekonto aktivieren",
"Share Purchase": "Aktienkauf",
"Share Redeem": "Teilen, einlösen",
"Days": "Tage",
"Weeks": "Wochen",
"Months": "Monate",
"Years": "Jahre",
"Deposit": "Kaution",
"Withdrawal": "Rückzug",
"Interest Posting": "Zinsbuchung",
"Waive Charge": "Auf Gebühr verzichten",
"Pay Charge": "Gebühr bezahlen",
"Dividend Payout": "Dividendenzahlung",
"Accrual": "Rückstellung",
"Initiate Transfer": "Übertragung einleiten",
"Approve Transfer": "Übertragung genehmigen",
"Withdraw Transfer": "Überweisung zurückziehen",
"Writtenoff": "Abgeschrieben",
"Overdraft Interest": "Überziehungszinsen",
"Withhold Tax": "Quellensteuer",
"Escheat": "Betrug",
"On Hold": "In der Warteschleife",
"Release": "Freigeben",
"Daily": "Täglich",
"Monthly": "Monatlich",
"Quarterly": "Vierteljährlich",
"Semi-Annual": "Halbjährlich",
"Annually": "Jährlich",
"Weekly": "Wöchentlich",
"Daily Balance": "Tagesbilanz",
"Average Daily Balance": "Durchschnittlicher Tagessaldo",
"BiAnnual": "Zweijährlich",
"360 Days": "360 Tage",
"365 Days": "365 Tage",
"30 Days": "30 Tage",
"364 Days": "364 Tage",
"Actual": "Tatsächlich",
"Disbursement Date": "Auszahlungsdatum",
"Submitted On Date": "Eingereicht am Datum",
"Per year": "Pro Jahr",
"Per month": "Pro Monat",
"Whole term": "Ganze Amtszeit",
"Same as repayment period": "Entspricht der Rückzahlungsfrist",
"Declining Balance": "Sinkendes Gleichgewicht",
"Cumulative": "Kumulativ",
"Progressive": "Progressiv",
"Penalty": "Strafe",
"Fees": "Gebühren",
"Fee": "Gebühr",
"Horizontal": "Horizontal",
"Vertical": "Vertikal",
"Advanced payment allocation strategy": "Erweiterte Zahlungszuweisungsstrategie",
"Past due penalty": "Überfällige Strafe",
"Past due fee": "Überfällige Gebühr",
"Past due principal": "Überfälliger Kapitalbetrag",
"Past due interest": "Überfällige Zinsen",
"Due penalty": "Fällige Strafe",
"Due fee": "Fällige Gebühr",
"Due principal": "Fälliger Auftraggeber",
"Due interest": "Geschuldete Zinsen",
"In advanced penalty": "Vorabstrafe",
"In advanced fee": "Gebühr im Voraus",
"In advanced principal": "Im Voraus Auftraggeber",
"In advanced interest": "Im Voraus Zinsen",
"Next installment": "Nächste Folge",
"Last installment": "Letzte Rate",
"Reamotization": "Reamotisierung",
"equals": "gleicht",
"greater than": "größer als",
"Equal installments": "Gleiche Raten",
"Equal principal payments": "Gleiche Kapitalzahlungen",
"Till Pre-Close Date": "Bis zum Vorschlussdatum",
"Till Rest Frequency Date": "Bis Ruhefrequenzdatum",
"Reduce EMI amount": "Betrag reduzieren",
"Reduce number of installments": "Reduzieren Sie die Anzahl der Raten",
"Reschedule next repayments": "Planen Sie die nächsten Rückzahlungen neu",
"None": "Hauptstadt",
"Interest": "Interesse",
"Fee and Interest": "Gebühr und Zinsen",
"Creocore Unique": "Creocore Einzigartig",
"Early Repayment Strategy": "Strategie zur vorzeitigen Rückzahlung",
"Penalties, Fees, Interest, Principal order": "Strafen, Gebühren, Zinsen, Hauptordnung",
"HeavensFamily Unique": "HeavensFamily Unique",
"Interest, Principal, Penalties, Fees Order": "Zins-, Kapital-, Vertragsstrafen- und Gebührenordnung",
"Principal, Interest, Penalties, Fees Order": "Anordnung zu Kapital, Zinsen, Vertragsstrafen und Gebühren",
"Overdue/Due Fee/Int,Principal": "Überfällige/fällige Gebühr/Int, Kapital",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Fällige Vertragsstrafe, Gebühr, Zinsen, Kapital, Im Voraus fällige Vertragsstrafe, Vertragsstrafe, Gebühr, Zinsen",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Fällige Strafe, Zinsen, Kapital, Gebühr, Vorabstrafe, Zinsen, Kapital, Gebühr",
"first": "Erste",
"second": "zweite",
"third": "dritte",
"fourth": "vier",
"last": "zuletzt",
"on day": "am Tag",
"SUNDAY": "SONNTAG",
"MONDAY": "MONTAG",
"TUESDAY": "DIENSTAG",
"WEDNESDAY": "MITTWOCH",
"THURSDAY": "DONNERSTAG",
"FRIDAY": "FREITAG",
"SATURDAY": "SAMSTAG",
"Invalid": "Ungültig"
},
"commons": {
"50 characters long": "50 Zeichen lang",
"8 characters long": "8 Zeichen lang",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Konto hinzufügen",
"Add Currency Form": "Währungsformular hinzufügen",
"Add Client Identifier": "Client-ID hinzufügen",
"Add Journal Entry Form": "Journaleintragsformular hinzufügen",
"Add Loan Collateral": "Kreditsicherheiten hinzufügen",
"Add Role": "Rolle hinzufügen",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Startdatum des Dividendenzeitraums",
"Dividends": "Dividenden",
"Documents": "Unterlagen",
"Document Key": "Dokumentschlüssel",
"Document Type": "Art des Dokuments",
"Dormancy Tracking": "Ruheverfolgung",
"Download": "Herunterladen",
"Due": "Fällig",
@@ -2155,6 +2288,8 @@
},
"task-management component": "Aufgabenverwaltungskomponente",
"to": "Zu",
"Down Payments": "Anzahlungen",
"Enable Down Payments": "Anzahlungen aktivieren",
"valid": "gültig"
},
"links": {
@@ -2879,6 +3014,7 @@
"Journal Entries": "Journaleinträge",
"Mandatory": "Obligatorisch",
"Voluntary": "Freiwillig",
"Write a note": "Schreib eine Notitz",
"“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": {
+143 -7
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Waive Charge",
"Week": "Week",
"Withdraw": "Withdraw",
"View Active Charges": "View Active Charges",
"View Inactive Charges": "View Inactive Charges",
"Yes": "Yes"
},
"catalogs": {
"Active": "Active",
"Inactive": "Inactive",
"Loans": "Loans",
"Client": "Client",
"Loan": "Loan",
"Savings": "Savings",
"Shares": "Shares",
"Regular": "Regular",
"Account transfer": "Account transfer",
"Flat": "Flat",
"% Amount": "% Amount",
"% Interest": "% Interest",
"% Loan Amount + Interest": "% Loan Amount + Interest",
"Disbursement": "Disbursement",
"Specified due date": "Specified due date",
"Installment Fee": "Installment Fee",
"Overdue Fees": "Overdue Fees",
"Tranche Disbursement": "Tranche Disbursement",
"Savings Activation": "Savings Activation",
"Saving No Activity Fee": "Saving No Activity Fee",
"Withdrawal Fee": "Withdrawal Fee",
"Annual Fee": "Annual Fee",
"Monthly Fee": "Monthly Fee",
"Weekly Fee": "Weekly Fee",
"Share Account Activate": "Share Account Activate",
"Share Purchase": "Share Purchase",
"Share Redeem": "Share Redeem",
"Days": "Days",
"Weeks": "Weeks",
"Months": "Months",
"Years": "Years",
"Deposit": "Deposit",
"Withdrawal": "Withdrawal",
"Interest Posting": "Interest Posting",
"Waive Charge": "Waive Charge",
"Pay Charge": "Pay Charge",
"Dividend Payout": "Dividend Payout",
"Accrual": "Accrual",
"Initiate Transfer": "Initiate Transfer",
"Approve Transfer": "Approve Transfer",
"Withdraw Transfer": "Withdraw Transfer",
"Writtenoff": "Writtenoff",
"Overdraft Interest": "Overdraft Interest",
"Withhold Tax": "Withhold Tax",
"Escheat": "Escheat",
"On Hold": "On Hold",
"Release": "Release",
"Daily": "Daily",
"Monthly": "Monthly",
"Weekly": "Weekly",
"Quarterly": "Quartely",
"Semi-Annual": "Semi-Annual",
"Annually": "Annually",
"Daily Balance": "Daily Balance",
"Average Daily Balance": "Average Daily Balance",
"BiAnnual": "BiAnnual",
"360 Days": "360 Days",
"365 Days": "365 Days",
"30 Days": "30 Days",
"364 Days": "364 Days",
"Actual": "Actual",
"Disbursement Date": "Disbursement Date",
"Submitted On Date": "Submitted On Date",
"Per year": "Per year",
"Per month": "Per month",
"Whole term": "Whole Term",
"Same as repayment period": "Same as repayment period",
"Declining Balance": "Declining Balance",
"Cumulative": "Cumulative",
"Progressive": "Progressive",
"Penalty": "Penalty",
"Fees": "Fees",
"Fee": "Fee",
"Horizontal": "Horizontal",
"Vertical": "Vertical",
"Advanced payment allocation strategy": "Advanced payment allocation strategy",
"Past due penalty": "Past due penalty",
"Past due fee": "Past due fee",
"Past due principal": "Past due principal",
"Past due interest": "Past due interest",
"Due penalty": "Due penalty",
"Due fee": "Due fee",
"Due principal": "Due principal",
"Due interest": "Due interest",
"In advanced penalty": "In advanced penalty",
"In advanced fee": "In advanced fee",
"In advanced principal": "In advanced principal",
"In advanced interest": "In advanced interest",
"Next installment": "Next installment",
"Last installment": "Last installment",
"Reamotization": "Reamotization",
"equals": "equals",
"greater than": "greater than",
"Equal installments": "Equal installments",
"Equal principal payments": "Equal principal payments",
"Till Pre-Close Date": "Till Pre-Close Date",
"Till Rest Frequency Date": "Till Rest Frequency Date",
"Reduce EMI amount": "Reduce EMI Amount",
"Reduce number of installments": "Reduce number of installments",
"Reschedule next repayments": "Reschedule next repayments",
"None": "None",
"Interest": "Interest",
"Fee and Interest": "Fee and Interest",
"Creocore Unique": "Creocore Unique",
"Early Repayment Strategy": "Early Repayment Strategy",
"Penalties, Fees, Interest, Principal order": "Penalties, Fees, Interest, Principal order",
"HeavensFamily Unique": "HeavensFamily Unique",
"Interest, Principal, Penalties, Fees Order": "Interest, Principal, Penalties, Fees Order",
"Principal, Interest, Penalties, Fees Order": "Principal, Interest, Penalties, Fees Order",
"Overdue/Due Fee/Int,Principal": "Overdue/Due Fee/Int,Principal",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee",
"first": "first",
"second": "second",
"third": "third",
"fourth": "four",
"last": "last",
"on day": "on day",
"SUNDAY": "SUNDAY",
"MONDAY": "MONDAY",
"TUESDAY": "TUESDAY",
"WEDNESDAY": "WEDNESDAY",
"THURSDAY": "THURSDAY",
"FRIDAY": "FRIDAY",
"SATURDAY": "SATURDAY",
"Invalid": "Invalid"
},
"commons": {
"50 characters long": "50 characters long",
"8 characters long": "8 characters long",
@@ -546,7 +676,7 @@
"is required": "is required",
"least one uppercase": "least one uppercase",
"lowercase and special character": "lowercase and special character",
"must be":"must be",
"must be": "must be",
"must be a positive integer": "must be a positive integer",
"must be an integer between -9999 and 9999": "must be an integer between -9999 and 9999",
"must be between 1 and 12": "must be between 1 and 12",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Add Account",
"Add Currency Form": "Add Currency Form",
"Add Client Identifier": "Add Client Identifier",
"Add Journal Entry Form": "Add Journal Entry Form",
"Add Loan Collateral": "Add Loan Collateral",
"Add Role": "Add Role",
@@ -649,7 +780,7 @@
"Default Shares per Client": "Default Shares per Client",
"Define New Mapping": "Define New Mapping",
"Define Tax Components": "Define Tax Components",
"Define Tax Groups": "Define Tax Groups",
"Define Tax Groups": "Define Tax Groups",
"Delete": "Delete",
"Delete Client Signature": "Delete Client Signature",
"Delete Checker": "Delete Checker",
@@ -988,7 +1119,7 @@
"Amount Recieved/Returned": "Amount Received/Returned",
"Amount to be Reserved": "Amount to be Reserved",
"Annual Fees Transaction Date": "Annual Fees Transaction Date",
"Applies To":"Applies To",
"Applies To": "Applies To",
"Applicable From Date": "Applicable From Date",
"Applicant": "Applicant",
"Application Date": "Application Date",
@@ -1058,7 +1189,7 @@
"Cashier/Staff": "Cashier/Staff",
"Category": "Category",
"Category Name": "Category Name",
"Calculation":"Calculation",
"Calculation": "Calculation",
"Center Name": "Center Name",
"Change Repayment Date": "Change Repayment Date",
"Changes Affection Date": "Changes Affection Date",
@@ -1264,6 +1395,8 @@
"Dividend Period Start Date": "Dividend Period Start Date",
"Dividends": "Dividends",
"Documents": "Documents",
"Document Key": "Document Key",
"Document Type": "Document Type",
"Dormancy Tracking": "Dormancy Tracking",
"Download": "Download",
"Due": "Due",
@@ -1874,7 +2007,7 @@
"Repeats On (M/d)": "Repeats On (M/d)",
"Repeats on Day": "Repeats on Day",
"Repeats?": "Repeats?",
"Repeat Every":"Repeat Every",
"Repeat Every": "Repeat Every",
"Repetition Frequency": "Repetition Frequency",
"Repetition Interval": "Repetition Interval",
"Report Category": "Report Category",
@@ -2014,7 +2147,7 @@
"Theme": "Theme",
"Theme and Font": "Theme and Font",
"Thursday": "Thursday",
"Time":"Time",
"Time": "Time",
"To": "To",
"To Account": "To Account",
"To Account Type": "To Account Type",
@@ -2154,6 +2287,8 @@
},
"task-management component": "task-management component",
"to": "to",
"Down Payments": "Down Payments",
"Enable Down Payments": "Enable Down Payments",
"valid": "valid"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "Journal Entries",
"Mandatory": "Mandatory",
"Voluntary": "Voluntary",
"Write a note": "Write a note",
"“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": {
@@ -3078,4 +3214,4 @@
"loan product will be active and available to clients": "The date that the loan product will be active and available to clients. If blank, the loan product will be active as soon as it is created.",
"loan product will become inactive and unavailable to clients": "The date that the loan product will become inactive and unavailable to clients. If blank, the load product will never become inactive."
}
}
}
+159 -23
View File
@@ -27,7 +27,7 @@
"validation.msg.charge.chargeAppliesTo.cannot.be.blank": "El cargo se aplica a no puede estar en blanco.",
"validation.msg.charge.chargeCalculationType.cannot.be.blank": "El cálculo del cargo no puede estar en blanco.",
"validation.msg.charge.chargeCalculationType.is.not.one.of.expected.enumerations": "La opción de tipo de cálculo de cargo seleccionada no es válida.",
"validation.msg.charge.chargePaymentMode.cannot.be.blank": "El modo de pago del cargo no puede estar en blanco.",
"validation.msg.charge.chargePaymentMode.cannot.be.blank": "La forma de pago del cargo no puede estar en blanco.",
"validation.msg.charge.chargeTimeType.cannot.be.blank": "El tiempo de comisión no puede estar en blanco.",
"validation.msg.charge.chargeTimeType.is.not.within.expected.range": "La opción de tiempo de comisión seleccionada no es válida.",
"validation.msg.charge.currencyCode.cannot.be.blank": "El código de moneda no puede estar en blanco.",
@@ -329,7 +329,7 @@
"Bulk JLG Loan Application": "Solicitud de Crédito JLG a granel",
"Buy Back Loan": "Crédito de recompra",
"Cancel": "Cancelar",
"Cancel Sell Loan": "Cancelar préstamo de venta",
"Cancel Sell Loan": "Cancelar venta de Crédito",
"Capture": "Captura",
"Centers Saving Application": "Solicitud de Ahorro de Centros",
"Change Password": "Cambiar la contraseña",
@@ -468,7 +468,7 @@
"Run Periodic Accruals": "Ejecutar acumulaciones periódicas",
"Run Report": "Sacar un reporte",
"Run Selected Jobs": "Ejecutar procesos seleccionados",
"Sell Loan": "Vender préstamo",
"Sell Loan": "Vender el Crédito",
"Save Changes": "Guardar cambios",
"Search": "Buscar",
"Search Instructions": "Instrucciones de búsqueda",
@@ -514,8 +514,138 @@
"Waive Charge": "Renunciar a Comisión",
"Week": "Semana",
"Withdraw": "Retirar",
"View Active Charges": "Ver Comisiones Activas",
"View Inactive Charges": "Ver Comisiones inactivas",
"Yes": "Sí"
},
"catalogs": {
"Active": "Activo",
"Inactive": "Inactivo",
"Loans": "Préstamos",
"Client": "Cliente",
"Loan": "Crédito",
"Savings": "Ahorros",
"Shares": "Acciones",
"Regular": "Regular",
"Account transfer": "Transferencia de cuenta",
"Flat": "Monto fijo",
"% Amount": "% Monto del Crédito",
"% Interest": "% Interés",
"% Loan Amount + Interest": "Monto del Crédito + Interés",
"Disbursement": "Desembolso",
"Specified due date": "Fecha de Vencimiento",
"Installment Fee": "Cuota de pago",
"Overdue Fees": "Cuotas vencidas",
"Tranche Disbursement": "Multiple Desembolso",
"Savings Activation": "Activación de Cuenta",
"Saving No Activity Fee": "Ahorro sin Actividad",
"Withdrawal Fee": "Comisión por retiro",
"Annual Fee": "Comisión anual",
"Monthly Fee": "Comisión mensual",
"Weekly Fee": "Comisión semanal",
"Share Account Activate": "Activación de Cuenta",
"Share Purchase": "Compra de acciones",
"Share Redeem": "Canjear Acciones",
"Days": "Días",
"Weeks": "Semanas",
"Months": "Meses",
"Years": "Años",
"Deposit": "Depósito",
"Withdrawal": "Retiro",
"Interest Posting": "intereses",
"Waive Charge": "Renunciar a Comisión",
"Pay Charge": "Pagar Comisión",
"Dividend Payout": "Pago de dividendos",
"Accrual": "Devengo",
"Initiate Transfer": "Iniciar transferencia",
"Approve Transfer": "Aprobar transferencia",
"Withdraw Transfer": "Retirar transferencia",
"Writtenoff": "Cancelado",
"Overdraft Interest": "Intereses por sobregiro",
"Withhold Tax": "Retención impuesto",
"Escheat": "Privación de propiedad",
"On Hold": "Retener Monto",
"Release": "Liberar Monto",
"Daily": "Diario",
"Monthly": "Mensual",
"Quarterly": "Trimestral",
"Semi-Annual": "Semestral",
"Annually": "Anual",
"Weekly": "Semanal",
"Daily Balance": "Saldo Diario",
"Average Daily Balance": "Saldo Diario Promedio",
"BiAnnual": "Semestral",
"360 Days": "360 Días",
"365 Days": "365 Dias",
"30 Days": "30 Dias",
"364 Days": "364 Días",
"Actual": "Actual",
"Disbursement Date": "Fecha de Desembolso",
"Submitted On Date": "Fecha de Registro",
"Per year": "Por Año",
"Per month": "Por Mes",
"Whole term": "Plazo completo",
"Same as repayment period": "Igual al periodo de amortización",
"Declining Balance": "Saldo Decreciente",
"Cumulative": "Acumulativa",
"Progressive": "Progresiva",
"Penalty": "Penalización",
"Fees": "Comisiones",
"Fee": "Comisión",
"Horizontal": "Horizontal",
"Vertical": "Vertical",
"Advanced payment allocation strategy": "Estrategia avanzada de asignación de pagos",
"Past due penalty": "Penalización vencida",
"Past due fee": "Comisión vencida",
"Past due principal": "Capital vencido",
"Past due interest": "Interes vencido",
"Due penalty": "Vencimiento de Penalización",
"Due fee": "Vencimiento de Comisión",
"Due principal": "Vencimiento de Capital",
"Due interest": "Vencimiento de interés",
"In advanced penalty": "Penalización anticipada",
"In advanced fee": "Comisión anticipada",
"In advanced principal": "Capital anticipado",
"In advanced interest": "interés anticipado",
"Next installment": "Próxima cuota",
"Last installment": "Última cuota",
"Reamotization": "Reamotización",
"equals": "Igual a",
"greater than": "Mayor a",
"Equal installments": "Cuotas iguales",
"Equal principal payments": "Pagos iguales de capital",
"Till Pre-Close Date": "Hasta la fecha de cierre previo",
"Till Rest Frequency Date": "Hasta la Frecuencia Fecha",
"Reduce EMI amount": "Reducir Monto de Cuota",
"Reduce number of installments": "Reducir el número de cuotas",
"Reschedule next repayments": "Reprogramar próximos pagos",
"None": "Capital",
"Interest": "Interés",
"Fee and Interest": "Comisión e interés",
"Creocore Unique": "Creocore único",
"Early Repayment Strategy": "Estrategia de amortización anticipada",
"Penalties, Fees, Interest, Principal order": "Penalizaciones, Comisiones, Intereses, Capital",
"HeavensFamily Unique": "CielosFamilia Única",
"Interest, Principal, Penalties, Fees Order": "Intereses, Capital, Penalizaciones, Orden de Honorarios",
"Principal, Interest, Penalties, Fees Order": "Capital, Intereses, Penalizaciones y Comisiones",
"Overdue/Due Fee/Int,Principal": "Vencido/Comisiones vencida/int, Capital",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Penalización vencida, Comisiones, Intereses, Capital, Capital adelantado, Penalizaciones, Comisiones, Intereses",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Penalización vencida, Intereses, Capital, Comisiones, Penalización por adelantado, Intereses, Capital, Comisiones",
"first": "Primer",
"second": "Segundo",
"third": "Tercer",
"fourth": "Cuarto",
"last": "Ultimo",
"on day": "En el día",
"SUNDAY": "DOMINGO",
"MONDAY": "LUNES",
"TUESDAY": "MARTES",
"WEDNESDAY": "MIÉRCOLES",
"THURSDAY": "JUEVES",
"FRIDAY": "VIERNES",
"SATURDAY": "SÁBADO",
"Invalid": "Inválido"
},
"commons": {
"50 characters long": "50 caracteres de largo",
"8 characters long": "8 caracteres de largo",
@@ -574,6 +704,7 @@
"AdHocQuery": "Consulta ad hoc",
"Add Account": "Añadir cuenta",
"Add Currency Form": "Agregar formulario de moneda",
"Add Client Identifier": "Agregar identificador de cliente",
"Add Journal Entry Form": "Agregar formulario de asiento de diario",
"Add Loan Collateral": "Agregar garantía de Crédito",
"Add Role": "Agregar rol",
@@ -588,7 +719,7 @@
"And thereafter, in Multiples of": "Y posteriormente, en Múltiplos de",
"Approve Share": "Aprobar Compartir",
"Approve Checker": "Aprobar el verificador",
"Approve Loan": "Aprobar préstamo",
"Approve Loan": "Aprobar Crédito",
"Assets": "Activos",
"Assets / Liability": "Activo / Pasivo",
"Audit Trails": "Pistas de auditoría",
@@ -817,7 +948,7 @@
"Release Amount": "Cantidad de liberación",
"Repaid Every": "Frecuencia de Pago",
"Report Parameter": "Parámetro de reporte",
"Reschedule Loan": "Préstamo de reprogramación",
"Reschedule Loan": "Reprogramación del Crédito",
"Revert Transaction": "Revertir transacción",
"S3 Amazon External Service": "Servicio externo de Amazon S3",
"SMS": "SMS",
@@ -910,7 +1041,7 @@
"LIABILITY": "PASIVO",
"EQUITY": "PATRIMONIO",
"INCOME": "INGRESO",
"EXPENSE": "EGRESO"
"EXPENSE": "EGRESO"
},
"ACCOUNTING": "CONTABILIDAD",
"ADDRESS": "DOMICILIO",
@@ -969,7 +1100,7 @@
"All": "Todo",
"Allocate Cash": "Asignar efectivo",
"Allocation": "Asignación",
"Allow approval / disbursal above loan applied amount": "Permitir aprobación/desembolso por encima del monto aplicado del préstamo",
"Allow approval / disbursal above loan applied amount": "Permitir aprobación/desembolso por encima del monto aplicado del crédito",
"Allow Approved / Disbursed Amounts Over Applied": "Permitir montos aprobados/desembolsados ​​por encima de los aplicados",
"Allow Partial Interest Calculation with same as repayment": "Permitir el cálculo de interés parcial con el mismo pago",
"Allow Withdrawals": "Permitir retiros",
@@ -1071,7 +1202,7 @@
"Charge Frequency": "Frecuencia de Comisión",
"Charge Name": "Nombre del cargo",
"Charge Payment By": "Pago de cargo por",
"Charge Payment Mode": "Modo de pago de cargo",
"Charge Payment Mode": "Forma de pago de cargo",
"Charge Time": "Tiempo de Comisión",
"Charge Time Type": "Tipo de tiempo de Comisión",
"Charge Type": "Tipo de Comisión",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Fecha de inicio del período de dividendos",
"Dividends": "Dividendos",
"Documents": "Documentos",
"Document Key": "Clave de documento",
"Document Type": "Tipo de Documento",
"Dormancy Tracking": "Seguimiento de Inactivdad",
"Download": "Descargar",
"Due": "Pendiente",
@@ -1493,7 +1626,7 @@
"Is Differential": "es diferencial",
"Is Equal Amortization": "¿Amortizaciones iguales?",
"Is Floating Rate": "¿Es tasa variable?",
"Is Floating calculation allowed?": "¿Se permite el cálculo flotante?",
"Is Floating calculation allowed?": "¿Se permite el cálculo flotante?",
"Is Interest Posting required on closure date": "¿Se requiere la publicación de intereses en la fecha de cierre?",
"Is Linked to floating interest rates?": "¿Está vinculado a tasas de interés flotantes?",
"Is Loan Officer": "Es oficial de Créditos",
@@ -1601,7 +1734,7 @@
"Maturity Date": "Fecha de vencimiento",
"Max Age": "Edad máxima",
"Maximum": "Máximo",
"Maximum Charge Cap": "Tapa de carga máxima",
"Maximum Charge Cap": "Límite de carga máxima",
"Maturity Instructions": "Instrucciones al Vencimiento",
"Maximum Deposit Term": "Plazo máximo de depósito",
"Maximum Overdraft Amount Limit": "Límite máximo del monto de sobregiro",
@@ -1661,7 +1794,7 @@
"Nominal Annual Interest": "Tasa de Interés Nominal Anual",
"Nominal Annual Interest for Overdraft": "Tasa de Interés Nominal Anual por Sobregiro",
"Nominal Interest Rate": "Tasa de interés nominal",
"Nominal interest rate by loan cycle": "Tasa de interés nominal por ciclo de préstamo",
"Nominal interest rate by loan cycle": "Tasa de interés nominal por ciclo de crédito",
"Nominal Price": "Precio nominal",
"Nominal interest rate": "Tasa de interés nominal",
"Nominal/Unit Price": "Precio nominal/unitario",
@@ -1687,7 +1820,7 @@
"Number of Groups": "Número de grupos",
"Number of Installments": "Número de cuotas",
"Number of Repayments": "Número de reembolsos",
"Number of repayments by loan cycle": "Número de reembolsos por ciclo de préstamo",
"Number of repayments by loan cycle": "Número de reembolsos por ciclo de crédito",
"Number of Staff": "Numero de Empleado",
"Number of days a loan may be overdue before moving into arrears": "Número de días que un Crédito puede estar vencido antes de entrar en mora",
"Number of repayments": "Número de reembolsos",
@@ -1718,7 +1851,7 @@
"Outstanding": "Pendiente",
"Overdraft": "Sobregiro",
"Over Amount": "Monto extra",
"Over Amount Calculation Type": "Tipo de cálculo",
"Over Amount Calculation Type": "Tipo de cálculo",
"Over Applied": "Sobre aplicado",
"Over Due": "Atrasado",
"Over payment liability": "Responsabilidad por sobrepago",
@@ -1759,7 +1892,7 @@
"Payment Details": "Detalles del pago",
"Payment Type": "Tipo de pago",
"Payment Type Id": "Id del tipo de pago",
"Payment due as of": "Pago vencido a partir de",
"Payment due as of": "Pago vencido en",
"Payment due at": "Pago vencido en",
"Payments due on non working days": "Pagos vencidos en días no laborables",
"Penal Interest": "Interés Penal",
@@ -1778,7 +1911,7 @@
"Period To": "Período hasta",
"Period Type": "Tipo de período",
"Amount Range From": "Monto desde",
"Amount Range To": "Monto hasta",
"Amount Range To": "Monto hasta",
"Person": "Persona",
"Phone Number": "Número de teléfono",
"Place Guarantee Funds On-Hold": "Poner los fondos de garantía en espera",
@@ -1800,7 +1933,7 @@
"Principal Amount": "Cantidad principal",
"Principal Due": "Principal vencido",
"Principal Grace Periods": "Períodos de gracia sobre el principal",
"Principal by loan cycle": "Principal por ciclo de préstamo",
"Principal by loan cycle": "Principal por ciclo de crédito",
"Principal Outstanding": "Director Sobresaliente",
"Principal Threshold (%) for Last Instalment": "Umbral de capital (%) para la última cuota",
"Priority": "Prioridad",
@@ -1857,7 +1990,7 @@
"Remember me": "Acuérdate de mí",
"Reopened On Date": "Reabierto en la fecha",
"Repaid every": "Frecuencia de Pago",
"Repay Every": "pagar cada",
"Repay Every": "Paga cada",
"Repayment Info": "Información de pago",
"Repayment Schedule": "Calendario de pagos",
"Repayment Schedule Parameters": "Parámetros del calendario de pagos",
@@ -2155,6 +2288,8 @@
},
"task-management component": "componente de gestión de tareas",
"to": "a",
"Down Payments": "Pago Inicial",
"Enable Down Payments": "Habilitar Pagos Iniciales",
"valid": "válido"
},
"links": {
@@ -2304,9 +2439,9 @@
"Are you sure you want to undo this transaction ?": "¿Estás seguro de que deseas deshacer esta transacción?",
"Are you sure you want recover from Guarantor": "¿Estás seguro de que deseas recuperar del garante?",
"Are you sure you want recover the Original Schedule": "¿Estás seguro de que deseas recuperar el Calendario Original?",
"Are you sure you want resume the Delinquency Classification for Loan": "¿Estás seguro de que deseas reanudar la Clasificación de Morosidad para el Préstamo?",
"Are you sure you want resume the Delinquency Classification for Loan": "¿Estás seguro de que deseas reanudar la Clasificación de Morosidad para el Crédito?",
"Are you sure you want": "¿Estás seguro de que deseas",
"the Loan Reschedule": "la Replanificación del Préstamo",
"the Loan Reschedule": "la Recanlendrización del Crédito",
"Are you sure you want undo the transaction": "¿Estás seguro de que deseas deshacer la transacción?",
"Are you sure you want undo the transaction type": "¿Estás seguro de que deseas deshacer el tipo de transacción?",
"with id": "con ID",
@@ -2316,10 +2451,10 @@
"Are you sure you want to approve checker": "¿Estás seguro de que deseas aprobar al verificador?",
"Are you sure you want to reject checker": "¿Estás seguro de que deseas rechazar al verificador?",
"Are you sure you want to delete checker": "¿Estás seguro de que deseas eliminar al verificador?",
"Are you sure you want to Approve Loan": "¿Estás seguro de que deseas aprobar el préstamo?",
"Are you sure you want to Disburse Loan": "¿Estás seguro de que deseas desembolsar el préstamo?",
"Are you sure you want to Approve Loan": "¿Estás seguro de que deseas aprobar el Crédito?",
"Are you sure you want to Disburse Loan": "¿Estás seguro de que deseas desembolsar el Crédito?",
"Are you sure you want to": "¿Estás seguro de que deseas",
"the Reschedule Loan": "la Replanificación del Préstamo"
"the Reschedule Loan": "la Recandelarización del Crédito"
},
"text": {
"A": "A",
@@ -2880,6 +3015,7 @@
"Journal Entries": "Entradas de diario",
"Mandatory": "Obligatorio",
"Voluntary": "Voluntario",
"Write a note": "Escribe una nota",
"“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": {
@@ -3078,4 +3214,4 @@
"loan product will be active and available to clients": "La fecha en que el producto de Crédito estará activo y disponible para los clientes. Si está en blanco, el producto de Crédito estará activo tan pronto como se cree.",
"loan product will become inactive and unavailable to clients": "La fecha en que el producto de Crédito quedará inactivo y no estará disponible para los clientes. Si está en blanco, el producto de carga nunca quedará inactivo."
}
}
}
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Renoncer aux frais",
"Week": "Semaine",
"Withdraw": "Retirer",
"View Active Charges": "Afficher les frais actifs",
"View Inactive Charges": "Afficher les frais inactifs",
"Yes": "Oui"
},
"catalogs": {
"Active": "Actif",
"Inactive": "Inactif",
"Loans": "Prêts",
"Client": "Client",
"Loan": "Prêt",
"Savings": "Des économies",
"Shares": "Actions",
"Regular": "Régulier",
"Account transfer": "Transfert de compte",
"Flat": "Plat",
"% Amount": "Montant",
"% Interest": "Intérêt",
"% Loan Amount + Interest": "Montant du prêt + intérêts",
"Disbursement": "Décaissement",
"Specified due date": "Date d'échéance spécifiée",
"Installment Fee": "Frais de versement",
"Overdue Fees": "Frais de retard",
"Tranche Disbursement": "Décaissement des tranches",
"Savings Activation": "Activation de l'épargne",
"Saving No Activity Fee": "Économiser sans frais d'activité",
"Withdrawal Fee": "frais de retrait",
"Annual Fee": "Frais annuels",
"Monthly Fee": "Redevance mensuelle",
"Weekly Fee": "Tarif hebdomadaire",
"Share Account Activate": "Partager le compte Activer",
"Share Purchase": "Achat d'actions",
"Share Redeem": "Partager Échanger",
"Days": "Jours",
"Weeks": "Semaines",
"Months": "Mois",
"Years": "Années",
"Deposit": "Dépôt",
"Withdrawal": "Retrait",
"Interest Posting": "Publication d'intérêt",
"Waive Charge": "Renoncer aux frais",
"Pay Charge": "Payer les frais",
"Dividend Payout": "Paiement de dividendes",
"Accrual": "Accumulation",
"Initiate Transfer": "Initier le transfert",
"Approve Transfer": "Approuver le transfert",
"Withdraw Transfer": "Retirer le transfert",
"Writtenoff": "Radiation",
"Overdraft Interest": "Intérêts de découvert",
"Withhold Tax": "Retenir l'impôt",
"Escheat": "Escroquerie",
"On Hold": "En attente",
"Release": "Libérer",
"Daily": "Tous les jours",
"Monthly": "Mensuel",
"Weekly": "Hebdomadaire",
"Quarterly": "Trimestriel",
"Semi-Annual": "Semestriel",
"Annually": "Annuellement",
"Daily Balance": "Solde quotidien",
"Average Daily Balance": "Solde quotidien moyen",
"BiAnnual": "Semestriel",
"360 Days": "360 jours",
"365 Days": "365 jours",
"30 Days": "30 jours",
"364 Days": "364 jours",
"Actual": "Réel",
"Disbursement Date": "Date de décaissement",
"Submitted On Date": "Soumis le jour",
"Per year": "Par an",
"Per month": "Par mois",
"Whole term": "Durée entière",
"Same as repayment period": "Identique à la période de remboursement",
"Declining Balance": "Solde dégressif",
"Cumulative": "Cumulatif",
"Progressive": "Progressive",
"Penalty": "Peine",
"Fees": "Frais",
"Fee": "Frais",
"Horizontal": "Horizontal",
"Vertical": "Verticale",
"Advanced payment allocation strategy": "Stratégie avancée d’allocation des paiements",
"Past due penalty": "Pénalité pour retard de paiement",
"Past due fee": "Frais en souffrance",
"Past due principal": "Principal en souffrance",
"Past due interest": "Intérêts en souffrance",
"Due penalty": "Pénalité due",
"Due fee": "Frais dus",
"Due principal": "Principal dû",
"Due interest": "Intérêts dus",
"In advanced penalty": "Pénalité anticipée",
"In advanced fee": "Frais d'avance",
"In advanced principal": "À l'avance, le principal",
"In advanced interest": "Intérêts d'avance",
"Next installment": "Prochain versement",
"Last installment": "Dernier versement",
"Reamotization": "Réamotisation",
"equals": "équivaut à",
"greater than": "plus grand que",
"Equal installments": "Versements égaux",
"Equal principal payments": "Paiements du principal égaux",
"Till Pre-Close Date": "Jusqu'à la date de pré-clôture",
"Till Rest Frequency Date": "Jusqu'à la date de fréquence de repos",
"Reduce EMI amount": "Réduire le montant",
"Reduce number of installments": "Réduire le nombre de versements",
"Reschedule next repayments": "Reprogrammer les prochains remboursements",
"None": "Capital",
"Interest": "Intérêt",
"Fee and Interest": "Frais et intérêts",
"Creocore Unique": "Créocore Unique",
"Early Repayment Strategy": "Stratégie de remboursement anticipé",
"Penalties, Fees, Interest, Principal order": "Pénalités, frais, intérêts, ordonnance principale",
"HeavensFamily Unique": "HeavensFamille Unique",
"Interest, Principal, Penalties, Fees Order": "Ordonnance sur les intérêts, le capital, les pénalités et les frais",
"Principal, Interest, Penalties, Fees Order": "Ordonnance sur le capital, les intérêts, les pénalités et les frais",
"Overdue/Due Fee/Int,Principal": "Frais de retard/dû/Int, principal",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Pénalité due, frais, intérêts, principal, Principal à l'avance, pénalité, frais, intérêts",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Pénalité due, intérêts, principal, frais, Pénalité d'avance, intérêts, principal, frais",
"first": "d'abord",
"second": "deuxième",
"third": "troisième",
"fourth": "quatre",
"last": "dernier",
"on day": "le jour",
"SUNDAY": "DIMANCHE",
"MONDAY": "LUNDI",
"TUESDAY": "MARDI",
"WEDNESDAY": "MERCREDI",
"THURSDAY": "JEUDI",
"FRIDAY": "VENDREDI",
"SATURDAY": "SAMEDI",
"Invalid": "Invalide"
},
"commons": {
"50 characters long": "50 caractères",
"8 characters long": "8 caractères",
@@ -574,6 +704,7 @@
"AdHocQuery": "Requête ad hoc",
"Add Account": "Ajouter un compte",
"Add Currency Form": "Ajouter un formulaire de devise",
"Add Client Identifier": "Ajouter un identifiant client",
"Add Journal Entry Form": "Ajouter un formulaire d'écriture de journal",
"Add Loan Collateral": "Ajouter une garantie de prêt",
"Add Role": "Ajouter un rôle",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Date de début de la période de dividende",
"Dividends": "Dividendes",
"Documents": "Documents",
"Document Key": "Clé du document",
"Document Type": "Type de document",
"Dormancy Tracking": "Suivi de la dormance",
"Download": "Télécharger",
"Due": "Exigible",
@@ -2155,6 +2288,8 @@
},
"task-management component": "composant de gestion des tâches",
"to": "à",
"Down Payments": "Acomptes",
"Enable Down Payments": "Activer les acomptes",
"valid": "valide"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{titre : Entrées de journal",
"Mandatory": "Obligatoire",
"Voluntary": "Volontaire",
"Write a note": "Écrire une note",
"“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": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Rinuncia all'addebito",
"Week": "Settimana",
"Withdraw": "Ritirare",
"View Active Charges": "Visualizza gli addebiti attivi",
"View Inactive Charges": "Visualizza addebiti inattivi",
"Yes": "SÌ"
},
"catalogs": {
"Active": "Attivo",
"Inactive": "Inattivo",
"Loans": "Prestiti",
"Client": "Cliente",
"Loan": "Prestito",
"Savings": "Risparmio",
"Shares": "Azioni",
"Regular": "Regolare",
"Account transfer": "Trasferimento del conto",
"Flat": "Piatto",
"% Amount": "Quantità",
"% Interest": "Interesse",
"% Loan Amount + Interest": "Importo del prestito + interessi",
"Disbursement": "Erogazione",
"Specified due date": "Data di scadenza specificata",
"Installment Fee": "Commissione di rata",
"Overdue Fees": "Commissioni scadute",
"Tranche Disbursement": "Erogazione della tranche",
"Savings Activation": "Attivazione del risparmio",
"Saving No Activity Fee": "Risparmio senza costi di attività",
"Withdrawal Fee": "Commissione di prelievo",
"Annual Fee": "Tassa annuale",
"Monthly Fee": "Canone mensile",
"Weekly Fee": "Tariffa settimanale",
"Share Account Activate": "Condividi l'attivazione dell'account",
"Share Purchase": "Condividi l'acquisto",
"Share Redeem": "Condividi Riscatta",
"Days": "Giorni",
"Weeks": "Settimane",
"Months": "Mesi",
"Years": "Anni",
"Deposit": "Depositare",
"Withdrawal": "Ritiro",
"Interest Posting": "Pubblicazione di interessi",
"Waive Charge": "Rinuncia all'addebito",
"Pay Charge": "Pagare la tassa",
"Dividend Payout": "Pagamento dei dividendi",
"Accrual": "Maturazione",
"Initiate Transfer": "Avvia trasferimento",
"Approve Transfer": "Approva il trasferimento",
"Withdraw Transfer": "Preleva trasferimento",
"Writtenoff": "Cancellati",
"Overdraft Interest": "Interesse sullo scoperto",
"Withhold Tax": "Trattenuta fiscale",
"Escheat": "Incameramento",
"On Hold": "In attesa",
"Release": "Pubblicazione",
"Daily": "Quotidiano",
"Monthly": "Mensile",
"Quarterly": "Trimestrale",
"Semi-Annual": "Semiannuale",
"Annually": "Annualmente",
"Weekly": "settimanalmente",
"Daily Balance": "Saldo giornaliero",
"Average Daily Balance": "Saldo medio giornaliero",
"BiAnnual": "Semestrale",
"360 Days": "360 giorni",
"365 Days": "365 giorni",
"30 Days": "30 giorni",
"364 Days": "364 giorni",
"Actual": "Effettivo",
"Disbursement Date": "Data di erogazione",
"Submitted On Date": "Inserito in data",
"Per year": "Per anno",
"Per month": "Al mese",
"Whole term": "Intero termine",
"Same as repayment period": "Uguale al periodo di rimborso",
"Declining Balance": "Equilibrio in declino",
"Cumulative": "Cumulativo",
"Progressive": "Progressivo",
"Penalty": "Pena",
"Fees": "Commissioni",
"Fee": "Tassa",
"Horizontal": "Orizzontale",
"Vertical": "Verticale",
"Advanced payment allocation strategy": "Strategia avanzata di allocazione dei pagamenti",
"Past due penalty": "Penalità scaduta",
"Past due fee": "Commissione scaduta",
"Past due principal": "Capitale scaduto",
"Past due interest": "Interessi scaduti",
"Due penalty": "Penalità dovuta",
"Due fee": "Tariffa dovuta",
"Due principal": "Principale dovuto",
"Due interest": "Interessi dovuti",
"In advanced penalty": "Pena anticipata",
"In advanced fee": "Pagamento anticipato",
"In advanced principal": "In anticipo principale",
"In advanced interest": "Interessi anticipati",
"Next installment": "Prossima puntata",
"Last installment": "Ultima puntata",
"Reamotization": "Riamotizzazione",
"equals": "equivale",
"greater than": "più grande di",
"Equal installments": "Rate uguali",
"Equal principal payments": "Parità di capitale",
"Till Pre-Close Date": "Fino alla data di pre-chiusura",
"Till Rest Frequency Date": "Fino alla data di frequenza del riposo",
"Reduce EMI amount": "Ridurre l'importo",
"Reduce number of installments": "Ridurre il numero di rate",
"Reschedule next repayments": "Riprogrammare i prossimi rimborsi",
"None": "Capitale",
"Interest": "Interesse",
"Fee and Interest": "Commissione e interessi",
"Creocore Unique": "Creocore unico",
"Early Repayment Strategy": "Strategia di rimborso anticipato",
"Penalties, Fees, Interest, Principal order": "Sanzioni, commissioni, interessi, ordine principale",
"HeavensFamily Unique": "HeavensFamily unica",
"Interest, Principal, Penalties, Fees Order": "Interessi, capitale, sanzioni, ordine delle commissioni",
"Principal, Interest, Penalties, Fees Order": "Capitale, interessi, sanzioni, ordine delle commissioni",
"Overdue/Due Fee/Int,Principal": "Commissione scaduta/scaduta/Int",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Pena, commissione, interesse, capitale dovuta, Capitale anticipato, penale, commissione, interesse",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Penale dovuta, interessi, capitale, commissione, Penale anticipata, interessi, capitale, commissione",
"first": "Primo",
"second": "secondo",
"third": "terzo",
"fourth": "quattro",
"last": "scorso",
"on day": "Nel giorno",
"SUNDAY": "DOMENICA",
"MONDAY": "LUNEDI",
"TUESDAY": "MARTEDÌ",
"WEDNESDAY": "MERCOLEDÌ",
"THURSDAY": "GIOVEDÌ",
"FRIDAY": "VENERDÌ",
"SATURDAY": "SABATO",
"Invalid": "Non valido"
},
"commons": {
"50 characters long": "50 caratteri di lunghezza",
"8 characters long": "8 caratteri di lunghezza",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Aggiungi account",
"Add Currency Form": "Modulo Aggiungi valuta",
"Add Client Identifier": "Aggiungi identificatore cliente",
"Add Journal Entry Form": "Aggiungi modulo di iscrizione al diario",
"Add Loan Collateral": "Aggiungi garanzia collaterale al prestito",
"Add Role": "Aggiungi ruolo",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Data di inizio del periodo di dividendo",
"Dividends": "Dividendi",
"Documents": "Documenti",
"Document Key": "Chiave del documento",
"Document Type": "tipo di documento",
"Dormancy Tracking": "Monitoraggio della dormienza",
"Download": "Scaricamento",
"Due": "Dovuto",
@@ -2155,6 +2288,8 @@
},
"task-management component": "componente di gestione delle attività",
"to": "A",
"Down Payments": "Acconti",
"Enable Down Payments": "Abilita acconti",
"valid": "valido"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{titolo: Voci di diario",
"Mandatory": "Obbligatorio",
"Voluntary": "Volontario",
"Write a note": "Scrivi una nota",
"“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": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "요금 면제",
"Week": "주",
"Withdraw": "철회하다",
"View Active Charges": "활성 요금 보기",
"View Inactive Charges": "비활성 요금 보기",
"Yes": "예"
},
"catalogs": {
"Active": "활동적인",
"Inactive": "비활성",
"Loans": "대출",
"Client": "고객",
"Loan": "대출",
"Savings": "저금",
"Shares": "주식",
"Regular": "정기적인",
"Account transfer": "계좌이체",
"Flat": "평평한",
"% Amount": "양",
"% Interest": "관심",
"% Loan Amount + Interest": "대출금액 + 이자",
"Disbursement": "지불",
"Specified due date": "지정된 마감일",
"Installment Fee": "할부 수수료",
"Overdue Fees": "연체 수수료",
"Tranche Disbursement": "트랜치 지급",
"Savings Activation": "저축 활성화",
"Saving No Activity Fee": "활동비 절약",
"Withdrawal Fee": "인출 수수료",
"Annual Fee": "연회비",
"Monthly Fee": "월 사용료",
"Weekly Fee": "주간 비용",
"Share Account Activate": "공유 계정 활성화",
"Share Purchase": "공유 구매",
"Share Redeem": "공유 교환",
"Days": "날",
"Weeks": "주",
"Months": "개월",
"Years": "연령",
"Deposit": "보증금",
"Withdrawal": "철수",
"Interest Posting": "관심 게시",
"Waive Charge": "요금 면제",
"Pay Charge": "요금 지불",
"Dividend Payout": "배당금 지급",
"Accrual": "발생",
"Initiate Transfer": "송금 시작",
"Approve Transfer": "이전 승인",
"Withdraw Transfer": "이체철회",
"Writtenoff": "상각",
"Overdraft Interest": "초과인월 이자",
"Withhold Tax": "원천징수세",
"Escheat": "복귀",
"On Hold": "보류 중",
"Release": "풀어 주다",
"Daily": "일일",
"Monthly": "월간 간행물",
"Quarterly": "분기별",
"Semi-Annual": "반년마다",
"Annually": "매년",
"Weekly": "주간",
"Daily Balance": "일일 잔액",
"Average Daily Balance": "평균 일일 잔액",
"BiAnnual": "격년",
"360 Days": "360일",
"365 Days": "365일",
"30 Days": "30 일",
"364 Days": "364일",
"Actual": "실제",
"Disbursement Date": "지급일",
"Submitted On Date": "제출 날짜",
"Per year": "연간",
"Per month": "달마다",
"Whole term": "전체 기간",
"Same as repayment period": "상환기간과 동일",
"Declining Balance": "체감 잔액",
"Cumulative": "누적",
"Progressive": "프로그레시브",
"Penalty": "패널티",
"Fees": "수수료",
"Fee": "요금",
"Horizontal": "수평의",
"Vertical": "수직의",
"Advanced payment allocation strategy": "고급 지불 할당 전략",
"Past due penalty": "연체 벌금",
"Past due fee": "연체 수수료",
"Past due principal": "연체된 교장",
"Past due interest": "연체이자",
"Due penalty": "정당한 처벌",
"Due fee": "납부 수수료",
"Due principal": "교장",
"Due interest": "정당한 관심",
"In advanced penalty": "사전 패널티",
"In advanced fee": "선불요금",
"In advanced principal": "사전 교장",
"In advanced interest": "사전이자",
"Next installment": "다음 편",
"Last installment": "마지막 할부",
"Reamotization": "재분할화",
"equals": "같음",
"greater than": "~보다 큰",
"Equal installments": "균등할부",
"Equal principal payments": "동일 원금지급",
"Till Pre-Close Date": "마감 전 날짜까지",
"Till Rest Frequency Date": "휴식 빈도 날짜까지",
"Reduce EMI amount": "금액 감소",
"Reduce number of installments": "할부 횟수 줄이기",
"Reschedule next repayments": "다음 상환 일정 변경",
"None": "수도",
"Interest": "관심",
"Fee and Interest": "수수료 및 이자",
"Creocore Unique": "크레오코어 유니크",
"Early Repayment Strategy": "조기상환 전략",
"Penalties, Fees, Interest, Principal order": "위약금, 수수료, 이자, 원금 명령",
"HeavensFamily Unique": "HeavensFamily 고유",
"Interest, Principal, Penalties, Fees Order": "이자, 원금, 벌금, 수수료 순서",
"Principal, Interest, Penalties, Fees Order": "원금, 이자, 벌금, 수수료 순서",
"Overdue/Due Fee/Int,Principal": "연체/연체 수수료/내부, 원금",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "위약금, 수수료, 이자, 원금, 선불원금, 위약금, 수수료, 이자",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "위약금, 이자, 원금, 수수료, 선납 위약금, 이자, 원금, 수수료",
"first": "첫 번째",
"second": "두번째",
"third": "제삼",
"fourth": "네",
"last": "마지막",
"on day": "낮에",
"SUNDAY": "일요일",
"MONDAY": "월요일",
"TUESDAY": "화요일",
"WEDNESDAY": "수요일",
"THURSDAY": "목요일",
"FRIDAY": "금요일",
"SATURDAY": "토요일",
"Invalid": "유효하지 않은"
},
"commons": {
"50 characters long": "50자(영문 기준)",
"8 characters long": "8자 길이",
@@ -574,6 +704,7 @@
"AdHocQuery": "임시 쿼리",
"Add Account": "계정을 추가",
"Add Currency Form": "통화 양식 추가",
"Add Client Identifier": "클라이언트 식별자 추가",
"Add Journal Entry Form": "분개 양식 추가",
"Add Loan Collateral": "대출 담보 추가",
"Add Role": "역할 추가",
@@ -1266,6 +1397,8 @@
"Dividend Period Start Date": "배당기간 개시일",
"Dividends": "배당금",
"Documents": "서류",
"Document Key": "문서 키",
"Document Type": "문서 유형",
"Dormancy Tracking": "휴면 추적",
"Download": "다운로드",
"Due": "로 인한",
@@ -2156,6 +2289,8 @@
},
"task-management component": "작업 관리 구성 요소",
"to": "에게",
"Down Payments": "계약금",
"Enable Down Payments": "계약금 활성화",
"valid": "유효한"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{제목: 저널 항목",
"Mandatory": "필수적인",
"Voluntary": "자발적인",
"Write a note": "메모 쓰기",
"“Maker-Checker” principle requires every tasks": "\"Maker-Checker\" 원칙은 오류와 오용 가능성을 줄이기 위해 모든 작업을 두 사람이 완료하도록 요구합니다. 한 사람이 프로세스를 시작하고 두 번째 사람이 프로세스를 완료합니다."
},
"titles": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Atsisakyti mokesčio",
"Week": "Savaitė",
"Withdraw": "Atsitraukti",
"View Active Charges": "Peržiūrėti aktyvius mokesčius",
"View Inactive Charges": "Peržiūrėkite neaktyvius mokesčius",
"Yes": "Taip"
},
"catalogs": {
"Active": "Aktyvus",
"Inactive": "Neaktyvus",
"Loans": "Paskolos",
"Client": "Klientas",
"Loan": "Paskola",
"Savings": "Taupymas",
"Shares": "Akcijos",
"Regular": "Reguliarus",
"Account transfer": "Sąskaitos perkėlimas",
"Flat": "Butas",
"% Amount": "Suma",
"% Interest": "Palūkanos",
"% Loan Amount + Interest": "Paskolos suma + palūkanos",
"Disbursement": "Išmokėjimas",
"Specified due date": "Nurodytas terminas",
"Installment Fee": "Įmokos mokestis",
"Overdue Fees": "Pradelsti mokesčiai",
"Tranche Disbursement": "Dalies išmokėjimas",
"Savings Activation": "Taupymo aktyvinimas",
"Saving No Activity Fee": "Sutaupykite jokios veiklos mokesčio",
"Withdrawal Fee": "Išėmimo mokestis",
"Annual Fee": "Metinis mokestis",
"Monthly Fee": "Mėnesinis mokėstis",
"Weekly Fee": "Savaitinis mokestis",
"Share Account Activate": "Bendrinti paskyrą Aktyvuoti",
"Share Purchase": "Dalintis pirkiniu",
"Share Redeem": "Dalintis Išpirkti",
"Days": "Dienos",
"Weeks": "Savaitės",
"Months": "Mėnesių",
"Years": "Metai",
"Deposit": "Užstatas",
"Withdrawal": "Pasitraukimas",
"Interest Posting": "Interesų skelbimas",
"Waive Charge": "Atsisakyti mokesčio",
"Pay Charge": "Mokėti mokestį",
"Dividend Payout": "Dividendų išmokėjimas",
"Accrual": "Kaupiamasis",
"Initiate Transfer": "Inicijuoti perkėlimą",
"Approve Transfer": "Patvirtinti perkėlimą",
"Withdraw Transfer": "Atsiimti pervedimą",
"Writtenoff": "Nurašytas",
"Overdraft Interest": "Overdrafto palūkanos",
"Withhold Tax": "Išskaičiuoti mokestį",
"Escheat": "Escheat",
"On Hold": "Sulaikyta",
"Release": "Paleisti",
"Daily": "Kasdien",
"Monthly": "Kas mėnesį",
"Quarterly": "Kas ketvirtį",
"Semi-Annual": "Pusmetis",
"Annually": "Kasmet",
"Weekly": "Kas savaitę",
"Daily Balance": "Dienos balansas",
"Average Daily Balance": "Vidutinis dienos balansas",
"BiAnnual": "Kas dvejus metus",
"360 Days": "360 dienų",
"365 Days": "365 dienos",
"30 Days": "30 dienų",
"364 Days": "364 dienos",
"Actual": "Faktinis",
"Disbursement Date": "Išmokėjimo data",
"Submitted On Date": "Pateikta datą",
"Per year": "Per metus",
"Per month": "Per mėnesį",
"Whole term": "Visas terminas",
"Same as repayment period": "Toks pat kaip ir grąžinimo laikotarpis",
"Declining Balance": "Mažėjantis balansas",
"Cumulative": "Kaupiamasis",
"Progressive": "Progresyvus",
"Penalty": "Bauda",
"Fees": "Mokesčiai",
"Fee": "Rinkliava",
"Horizontal": "Horizontalus",
"Vertical": "Vertikalus",
"Advanced payment allocation strategy": "Išplėstinė mokėjimų paskirstymo strategija",
"Past due penalty": "Praleista bauda",
"Past due fee": "Mokestis už pradelstą mokestį",
"Past due principal": "Pradinė suma",
"Past due interest": "Prastos palūkanos",
"Due penalty": "Dera bauda",
"Due fee": "Mokamas mokestis",
"Due principal": "Mokėtas pagrindinis",
"Due interest": "Deramas palūkanas",
"In advanced penalty": "Išankstinė bauda",
"In advanced fee": "Išankstinis mokestis",
"In advanced principal": "Iš anksto pagrindinis",
"In advanced interest": "Iš anksto palūkanas",
"Next installment": "Kita įmoka",
"Last installment": "Paskutinė įmoka",
"Reamotization": "Reomatizacija",
"equals": "lygus",
"greater than": "geresnis negu",
"Equal installments": "Lygiomis dalimis",
"Equal principal payments": "Vienodos pagrindinės išmokos",
"Till Pre-Close Date": "Iki išankstinio uždarymo datos",
"Till Rest Frequency Date": "Iki poilsio dažnumo datos",
"Reduce EMI amount": "Sumažinti sumą",
"Reduce number of installments": "Sumažinti įmokų skaičių",
"Reschedule next repayments": "Suplanuokite kitus mokėjimus",
"None": "Kapitalas",
"Interest": "Palūkanos",
"Fee and Interest": "Mokestis ir palūkanos",
"Creocore Unique": "Creocore unikalus",
"Early Repayment Strategy": "Išankstinio grąžinimo strategija",
"Penalties, Fees, Interest, Principal order": "Baudos, mokesčiai, palūkanos, pagrindinis užsakymas",
"HeavensFamily Unique": "Unikali dangaus šeima",
"Interest, Principal, Penalties, Fees Order": "Palūkanos, pagrindinė suma, netesybos, mokesčiai",
"Principal, Interest, Penalties, Fees Order": "Pagrindinė suma, palūkanos, netesybos, mokesčiai",
"Overdue/Due Fee/Int,Principal": "Uždelstas/mokestis/Tarptautinis, pagrindinis",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Delspinigiai, mokestis, palūkanos, pagrindinė suma, Avansinė pagrindinė suma, netesybos, mokestis, palūkanos",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Delspinigiai, delspinigiai, pagrindinė suma, mokestis, Avansinė bauda, ​​palūkanos, pagrindinė suma, mokestis",
"first": "Pirmas",
"second": "antra",
"third": "trečias",
"fourth": "keturi",
"last": "paskutinis",
"on day": "Dieną",
"SUNDAY": "SEKMADIENIS",
"MONDAY": "PIRMADIENIS",
"TUESDAY": "ANTRADIENIS",
"WEDNESDAY": "TREČIADIENIS",
"THURSDAY": "KETVIRTADIENIS",
"FRIDAY": "PENKTADIENIS",
"SATURDAY": "ŠEŠTADIENIS",
"Invalid": "Neteisinga"
},
"commons": {
"50 characters long": "50 simbolių ilgio",
"8 characters long": "8 simbolių ilgio",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Pridėti paskyrą",
"Add Currency Form": "Pridėti valiutos formą",
"Add Client Identifier": "Pridėti kliento identifikatorių",
"Add Journal Entry Form": "Pridėti žurnalo įrašo formą",
"Add Loan Collateral": "Pridėti paskolos užstatą",
"Add Role": "Pridėti vaidmenį",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Dividendų laikotarpio pradžios data",
"Dividends": "Dividendai",
"Documents": "Dokumentai",
"Document Key": "Dokumento raktas",
"Document Type": "dokumento tipas",
"Dormancy Tracking": "Ramybės stebėjimas",
"Download": "parsisiųsti",
"Due": "Dėl",
@@ -2155,6 +2288,8 @@
},
"task-management component": "užduočių valdymo komponentas",
"to": "į",
"Down Payments": "Pradiniai mokėjimai",
"Enable Down Payments": "Įgalinti pradinius mokėjimus",
"valid": "galioja"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{pavadinimas: žurnalo įrašai",
"Mandatory": "Privaloma",
"Voluntary": "Savanoriškas",
"Write a note": "Parašykite pastabą",
"“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": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Atteikties no maksas",
"Week": "nedēļa",
"Withdraw": "Izņemt",
"View Active Charges": "Skatīt aktīvās maksas",
"View Inactive Charges": "Skatīt neaktīvās maksas",
"Yes": "Jā"
},
"catalogs": {
"Active": "Aktīvs",
"Inactive": "Neaktīvs",
"Loans": "Aizdevumi",
"Client": "Klients",
"Loan": "Aizdevums",
"Savings": "Ietaupījumi",
"Shares": "Akcijas",
"Regular": "Regulāri",
"Account transfer": "Konta pārskaitījums",
"Flat": "Plakans",
"% Amount": "Summa",
"% Interest": "Interese",
"% Loan Amount + Interest": "Aizdevuma summa + procenti",
"Disbursement": "Izmaksa",
"Specified due date": "Norādīts izpildes datums",
"Installment Fee": "Nomaksas maksa",
"Overdue Fees": "Nokavējuma maksas",
"Tranche Disbursement": "Daļas izmaksa",
"Savings Activation": "Uzkrājumu aktivizēšana",
"Saving No Activity Fee": "Ietaupot bezdarbības maksu",
"Withdrawal Fee": "Izņemšanas maksa",
"Annual Fee": "Gada maksa",
"Monthly Fee": "Mēneša maksa",
"Weekly Fee": "Iknedēļas maksa",
"Share Account Activate": "Kopīgot kontu Aktivizēt",
"Share Purchase": "Akciju pirkums",
"Share Redeem": "Kopīgot Izpirkt",
"Days": "Dienas",
"Weeks": "Nedēļas",
"Months": "Mēneši",
"Years": "Gadiem",
"Deposit": "Depozīts",
"Withdrawal": "Izņemšana",
"Interest Posting": "Interešu publicēšana",
"Waive Charge": "Atteikties no maksas",
"Pay Charge": "Maksājiet maksu",
"Dividend Payout": "Dividenžu izmaksa",
"Accrual": "Uzkrāšana",
"Initiate Transfer": "Sāciet pārsūtīšanu",
"Approve Transfer": "Apstiprināt pārsūtīšanu",
"Withdraw Transfer": "Izņemt pārskaitījumu",
"Writtenoff": "Norakstīti",
"Overdraft Interest": "Overdrafta procenti",
"Withhold Tax": "Ieturējuma nodoklis",
"Escheat": "Escheat",
"On Hold": "Aizturēts",
"Release": "Atbrīvot",
"Daily": "Ikdienas",
"Monthly": "Ikmēneša",
"Quarterly": "Ceturkšņa",
"Semi-Annual": "Pusgada",
"Annually": "Ik gadu",
"Weekly": "Iknedēļas",
"Daily Balance": "Dienas bilance",
"Average Daily Balance": "Vidējais dienas atlikums",
"BiAnnual": "Divreiz gadā",
"360 Days": "360 dienas",
"365 Days": "365 dienas",
"30 Days": "30 dienas",
"364 Days": "364 dienas",
"Actual": "Faktiskais",
"Disbursement Date": "Izmaksas datums",
"Submitted On Date": "Iesniegts datumā",
"Per year": "Gadā",
"Per month": "Mēnesī",
"Whole term": "Viss termiņš",
"Same as repayment period": "Tāds pats kā atmaksas termiņš",
"Declining Balance": "Bilances samazināšanās",
"Cumulative": "Kumulatīvs",
"Progressive": "Progresīvs",
"Penalty": "Sods",
"Fees": "Maksas",
"Fee": "Maksa",
"Horizontal": "Horizontāli",
"Vertical": "Vertikāli",
"Advanced payment allocation strategy": "Uzlabota maksājumu sadales stratēģija",
"Past due penalty": "Nokavēts sods",
"Past due fee": "Nokavējuma nauda",
"Past due principal": "Nokavētais pamatsumma",
"Past due interest": "Nokavēti procenti",
"Due penalty": "Pienācīgs sods",
"Due fee": "Maksājamā maksa",
"Due principal": "Maksājamais pamatsumma",
"Due interest": "Pienācīgi procenti",
"In advanced penalty": "Priekšsods",
"In advanced fee": "Iepriekš samaksā",
"In advanced principal": "Avansā galvenais",
"In advanced interest": "Iepriekš procentos",
"Next installment": "Nākamā iemaksa",
"Last installment": "Pēdējā iemaksa",
"Reamotization": "Reomatizācija",
"equals": "vienāds",
"greater than": "lielāks nekā",
"Equal installments": "Vienādas iemaksas",
"Equal principal payments": "Vienlīdzīgi pamatsummas maksājumi",
"Till Pre-Close Date": "Līdz pirmsslēgšanas datumam",
"Till Rest Frequency Date": "Līdz atpūtas biežuma datumam",
"Reduce EMI amount": "Samazināt summu",
"Reduce number of installments": "Samaziniet iemaksu skaitu",
"Reschedule next repayments": "Pārplānojiet nākamos maksājumus",
"None": "Kapitāls",
"Interest": "Interese",
"Fee and Interest": "Maksa un procenti",
"Creocore Unique": "Creocore unikāls",
"Early Repayment Strategy": "Pirmstermiņa atmaksas stratēģija",
"Penalties, Fees, Interest, Principal order": "Sodi, nodevas, procenti, pamatpasūtījums",
"HeavensFamily Unique": "HeavensFamily unikāls",
"Interest, Principal, Penalties, Fees Order": "Procenti, pamatsumma, līgumsodi, maksas rīkojums",
"Principal, Interest, Penalties, Fees Order": "Pamatsumma, procenti, līgumsodi, maksas rīkojums",
"Overdue/Due Fee/Int,Principal": "Nokavējums/Maksa/Int, Principal",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Maksājamais līgumsods, nodeva, procenti, pamatsumma, Avansa pamatsumma, līgumsods, maksa, procenti",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Maksājamais līgumsods, procenti, pamatsumma, maksa, avansa līgumsods, procenti, pamatsumma, maksa",
"first": "vispirms",
"second": "otrais",
"third": "trešais",
"fourth": "četri",
"last": "Pēdējais",
"on day": "dienā",
"SUNDAY": "SVĒTDIENA",
"MONDAY": "PIRMDIENA",
"TUESDAY": "OTRDIENA",
"WEDNESDAY": "TREŠDIENA",
"THURSDAY": "CETURTDIENA",
"FRIDAY": "PIEKTDIENA",
"SATURDAY": "SESTDIENA",
"Invalid": "Nederīgs"
},
"commons": {
"50 characters long": "50 rakstzīmes garš",
"8 characters long": "8 rakstzīmes garš",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Pievienot kontu",
"Add Currency Form": "Pievienot valūtas veidlapu",
"Add Client Identifier": "Pievienojiet klienta identifikatoru",
"Add Journal Entry Form": "Pievienojiet žurnāla ieraksta veidlapu",
"Add Loan Collateral": "Pievienojiet aizdevuma nodrošinājumu",
"Add Role": "Pievienot lomu",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Dividenžu perioda sākuma datums",
"Dividends": "Dividendes",
"Documents": "Dokumenti",
"Document Key": "Dokumenta atslēga",
"Document Type": "Dokumenta veids",
"Dormancy Tracking": "Miega stāvokļa izsekošana",
"Download": "Lejupielādēt",
"Due": "Pienākas",
@@ -2155,6 +2288,8 @@
},
"task-management component": "uzdevumu pārvaldības komponents",
"to": "uz",
"Down Payments": "Pirmās iemaksas",
"Enable Down Payments": "Iespējot pirmās iemaksas",
"valid": "derīgs"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "Žurnāla ieraksti",
"Mandatory": "Obligāts",
"Voluntary": "Brīvprātīgi",
"Write a note": "Uzrakstiet piezīmi",
"“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": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "शुल्क छुट",
"Week": "हप्ता",
"Withdraw": "निकाल्नु",
"View Active Charges": "सक्रिय शुल्कहरू हेर्नुहोस्",
"View Inactive Charges": "निष्क्रिय शुल्कहरू हेर्नुहोस्",
"Yes": "हो"
},
"catalogs": {
"Active": "सक्रिय",
"Inactive": "निष्क्रिय",
"Loans": "ऋण",
"Client": "ग्राहक",
"Loan": "ऋण",
"Savings": "बचत",
"Shares": "सेयरहरू",
"Regular": "नियमित",
"Account transfer": "खाता स्थानान्तरण",
"Flat": "फ्ल्याट",
"% Amount": "रकम",
"% Interest": "ब्याज",
"% Loan Amount + Interest": "ऋण रकम + ब्याज",
"Disbursement": "वितरण",
"Specified due date": "तोकिएको म्याद मिति",
"Installment Fee": "किस्ता शुल्क",
"Overdue Fees": "अतिदेय शुल्क",
"Tranche Disbursement": "किस्ता वितरण",
"Savings Activation": "बचत सक्रियता",
"Saving No Activity Fee": "कुनै गतिविधि शुल्क बचत गर्दै",
"Withdrawal Fee": "निकासी शुल्क",
"Annual Fee": "बार्षक शुल्क",
"Monthly Fee": "मासिक शुल्क",
"Weekly Fee": "साप्ताहिक शुल्क",
"Share Account Activate": "साझेदारी खाता सक्रिय गर्नुहोस्",
"Share Purchase": "शेयर खरिद",
"Share Redeem": "रिडिम साझा गर्नुहोस्",
"Days": "दिनहरू",
"Weeks": "हप्ताहरू",
"Months": "महिनाहरू",
"Years": "वर्षहरू",
"Deposit": "जम्मा",
"Withdrawal": "फिर्ता",
"Interest Posting": "रुचि पोस्टिंग",
"Waive Charge": "शुल्क छुट",
"Pay Charge": "शुल्क तिर्नुहोस्",
"Dividend Payout": "लाभांश भुक्तानी",
"Accrual": "उपार्जन",
"Initiate Transfer": "स्थानान्तरण सुरु गर्नुहोस्",
"Approve Transfer": "स्थानान्तरण अनुमोदन गर्नुहोस्",
"Withdraw Transfer": "स्थानान्तरण फिर्ता लिनुहोस्",
"Writtenoff": "लिखित अफ",
"Overdraft Interest": "ओभरड्राफ्ट ब्याज",
"Withhold Tax": "कर रोक",
"Escheat": "एस्केट",
"On Hold": "होल्डमा छ",
"Release": "रिलीज",
"Daily": "दैनिक",
"Monthly": "मासिक",
"Quarterly": "त्रैमासिक",
"Semi-Annual": "अर्ध - वार्षिक",
"Annually": "वार्षिक रूपमा",
"Weekly": "साप्ताहिक",
"Daily Balance": "दैनिक ब्यालेन्स",
"Average Daily Balance": "औसत दैनिक ब्यालेन्स",
"BiAnnual": "द्विवार्षिक",
"360 Days": "३६० दिन",
"365 Days": "३६५ दिन",
"30 Days": "30 दिन",
"364 Days": "३६४ दिन",
"Actual": "वास्तविक",
"Disbursement Date": "वितरण मिति",
"Submitted On Date": "मितिमा पेश गरियो",
"Per year": "प्रति वर्ष",
"Per month": "प्रति महिना",
"Whole term": "सम्पूर्ण अवधि",
"Same as repayment period": "भुक्तानी अवधि जस्तै",
"Declining Balance": "घट्दो ब्यालेन्स",
"Cumulative": "संचयी",
"Progressive": "प्रगतिशील",
"Penalty": "जरिवाना",
"Fees": "शुल्क",
"Fee": "शुल्क",
"Horizontal": "तेर्सो",
"Vertical": "ठाडो",
"Advanced payment allocation strategy": "उन्नत भुक्तानी आवंटन रणनीति",
"Past due penalty": "विगतको कारण सजाय",
"Past due fee": "विगतको देय शुल्क",
"Past due principal": "विगतको देय प्रिन्सिपल",
"Past due interest": "विगतको देय ब्याज",
"Due penalty": "आवश्यक जरिवाना",
"Due fee": "देय शुल्क",
"Due principal": "देय प्रिन्सिपल",
"Due interest": "देय ब्याज",
"In advanced penalty": "अग्रिम जरिवाना",
"In advanced fee": "अग्रिम शुल्कमा",
"In advanced principal": "अग्रिम प्रिन्सिपल",
"In advanced interest": "अग्रिम ब्याजमा",
"Next installment": "अर्को किस्ता",
"Last installment": "अन्तिम किस्ता",
"Reamotization": "रिमोटाइजेशन",
"equals": "बराबर",
"greater than": "भन्दा ठुलो",
"Equal installments": "बराबर किस्ता",
"Equal principal payments": "समान मूल भुक्तानी",
"Till Pre-Close Date": "पूर्व बन्द मिति सम्म",
"Till Rest Frequency Date": "आराम आवृत्ति मिति सम्म",
"Reduce EMI amount": "रकम घटाउनुहोस्",
"Reduce number of installments": "किस्ताको संख्या घटाउनुहोस्",
"Reschedule next repayments": "अर्को भुक्तानीहरू पुन: तालिका गर्नुहोस्",
"None": "राजधानी",
"Interest": "ब्याज",
"Fee and Interest": "शुल्क र ब्याज",
"Creocore Unique": "Creocore अद्वितीय",
"Early Repayment Strategy": "प्रारम्भिक भुक्तानी रणनीति",
"Penalties, Fees, Interest, Principal order": "जरिवाना, शुल्क, ब्याज, मूल आदेश",
"HeavensFamily Unique": "स्वर्ग परिवार अद्वितीय",
"Interest, Principal, Penalties, Fees Order": "ब्याज, प्रिन्सिपल, जरिवाना, शुल्क आदेश",
"Principal, Interest, Penalties, Fees Order": "प्रिन्सिपल, ब्याज, दण्ड, शुल्क आदेश",
"Overdue/Due Fee/Int,Principal": "ओभरड्यू/देय शुल्क/Int, प्रिन्सिपल",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "देय जरिवाना, दस्तुर, ब्याज, मुद्दल, अग्रिम मुद्दल, जरिवाना, शुल्क, ब्याज",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "बक्यौता जरिवाना, व्याज, मुद्दल, शुल्क, अग्रिम जरिवाना, व्याज, मूल, शुल्क",
"first": "पहिलो",
"second": "दोस्रो",
"third": "तेस्रो",
"fourth": "चार",
"last": "अन्तिम",
"on day": "दिनमा",
"SUNDAY": "आइतबार",
"MONDAY": "सोमबार",
"TUESDAY": "मंगलबार",
"WEDNESDAY": "बुधवार",
"THURSDAY": "बिहीबार",
"FRIDAY": "शुक्रबार",
"SATURDAY": "शनिबार",
"Invalid": "अवैध"
},
"commons": {
"50 characters long": "५० वर्ण लामो",
"8 characters long": "8 वर्ण लामो",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "खाता थप्नुहोस्",
"Add Currency Form": "मुद्रा फारम थप्नुहोस्",
"Add Client Identifier": "ग्राहक पहिचानकर्ता थप्नुहोस्",
"Add Journal Entry Form": "जर्नल प्रविष्टि फारम थप्नुहोस्",
"Add Loan Collateral": "ऋण संपार्श्विक थप्नुहोस्",
"Add Role": "भूमिका थप्नुहोस्",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "लाभांश अवधि सुरु मिति",
"Dividends": "लाभांश",
"Documents": "कागजातहरू",
"Document Key": "कागजात कुञ्जी",
"Document Type": "कागजात प्रकार",
"Dormancy Tracking": "सुप्तता ट्र्याकिङ",
"Download": "डाउनलोड गर्नुहोस्",
"Due": "बाँकी",
@@ -2155,6 +2288,8 @@
},
"task-management component": "कार्य व्यवस्थापन घटक",
"to": "को",
"Down Payments": "तल भुक्तानीहरू",
"Enable Down Payments": "डाउन पेमेन्टहरू सक्षम गर्नुहोस्",
"valid": "मान्य"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{शीर्षक: जर्नल प्रविष्टिहरू",
"Mandatory": "अनिवार्य",
"Voluntary": "स्वैच्छिक",
"Write a note": "नोट लेख्नुहोस्",
"“Maker-Checker” principle requires every tasks": "\"मेकर-चेकर\" सिद्धान्तले त्रुटि र दुरुपयोगको सम्भावना कम गर्न प्रत्येक कार्यहरू दुई व्यक्तिद्वारा पूरा गर्न आवश्यक छ। एक व्यक्तिले प्रक्रिया सुरु गर्छ र दोस्रोले यसलाई पूरा गर्दछ।"
},
"titles": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Isenção de cobrança",
"Week": "Semana",
"Withdraw": "Retirar",
"View Active Charges": "Ver cobranças ativas",
"View Inactive Charges": "Ver cobranças inativas",
"Yes": "Sim"
},
"catalogs": {
"Active": "Ativo",
"Inactive": "Inativo",
"Loans": "Empréstimos",
"Client": "Cliente",
"Loan": "Empréstimo",
"Savings": "Poupança",
"Shares": "Ações",
"Regular": "Regular",
"Account transfer": "Transferência de conta",
"Flat": "Plano",
"% Amount": "Quantia",
"% Interest": "Interesse",
"% Loan Amount + Interest": "Valor do empréstimo + juros",
"Disbursement": "Desembolso",
"Specified due date": "Data de vencimento especificada",
"Installment Fee": "Taxa de parcelamento",
"Overdue Fees": "Taxas vencidas",
"Tranche Disbursement": "Desembolso da Tranche",
"Savings Activation": "Ativação de poupança",
"Saving No Activity Fee": "Economizando sem taxa de atividade",
"Withdrawal Fee": "Taxa de retirada",
"Annual Fee": "Taxa anual",
"Monthly Fee": "Taxa mensal",
"Weekly Fee": "Taxa semanal",
"Share Account Activate": "Compartilhar conta ativada",
"Share Purchase": "Compra de ações",
"Share Redeem": "Compartilhar resgatar",
"Days": "Dias",
"Weeks": "Semanas",
"Months": "Meses",
"Years": "Anos",
"Deposit": "Depósito",
"Withdrawal": "Cancelamento",
"Interest Posting": "Postagem de interesse",
"Waive Charge": "Isenção de cobrança",
"Pay Charge": "Taxa de pagamento",
"Dividend Payout": "Pagamento de dividendos",
"Accrual": "Acumulação",
"Initiate Transfer": "Iniciar transferência",
"Approve Transfer": "Aprovar transferência",
"Withdraw Transfer": "Retirar Transferência",
"Writtenoff": "Baixado",
"Overdraft Interest": "Juros do cheque especial",
"Withhold Tax": "Taxa administrativa",
"Escheat": "Fuga",
"On Hold": "Em espera",
"Release": "Liberar",
"Daily": "Diário",
"Monthly": "Por mês",
"Quarterly": "Trimestralmente",
"Semi-Annual": "Semestral",
"Annually": "Anualmente",
"Weekly": "Semanalmente",
"Daily Balance": "Saldo Diário",
"Average Daily Balance": "Saldo Médio Diário",
"BiAnnual": "Semestral",
"360 Days": "360 dias",
"365 Days": "365 dias",
"30 Days": "30 dias",
"364 Days": "364 dias",
"Actual": "Real",
"Disbursement Date": "Data de Desembolso",
"Submitted On Date": "Enviado na data",
"Per year": "Por ano",
"Per month": "Por mês",
"Whole term": "Período inteiro",
"Same as repayment period": "Igual ao período de reembolso",
"Declining Balance": "Saldo decrescente",
"Cumulative": "Cumulativo",
"Progressive": "Progressivo",
"Penalty": "Pena",
"Fees": "Tarifas",
"Fee": "Taxa",
"Horizontal": "Horizontal",
"Vertical": "Vertical",
"Advanced payment allocation strategy": "Estratégia avançada de alocação de pagamentos",
"Past due penalty": "Penalidade vencida",
"Past due fee": "Taxa vencida",
"Past due principal": "Principal vencido",
"Past due interest": "Juros vencidos",
"Due penalty": "Penalidade devida",
"Due fee": "Taxa devida",
"Due principal": "Principal devido",
"Due interest": "Juros devidos",
"In advanced penalty": "Penalidade antecipada",
"In advanced fee": "Taxa antecipada",
"In advanced principal": "Antecipadamente principal",
"In advanced interest": "Juros antecipados",
"Next installment": "Próxima parcela",
"Last installment": "Última parcela",
"Reamotization": "Reamotização",
"equals": "é igual a",
"greater than": "Maior que",
"Equal installments": "Parcelas iguais",
"Equal principal payments": "Pagamentos de principal iguais",
"Till Pre-Close Date": "Até a data de pré-fechamento",
"Till Rest Frequency Date": "Até a data de frequência de descanso",
"Reduce EMI amount": "Reduzir quantidade",
"Reduce number of installments": "Reduza o número de parcelas",
"Reschedule next repayments": "Reprogramar próximos pagamentos",
"None": "Capital",
"Interest": "Interesse",
"Fee and Interest": "Taxa e juros",
"Creocore Unique": "Creocore Único",
"Early Repayment Strategy": "Estratégia de reembolso antecipado",
"Penalties, Fees, Interest, Principal order": "Penalidades, taxas, juros, pedido principal",
"HeavensFamily Unique": "CéusFamília Única",
"Interest, Principal, Penalties, Fees Order": "Juros, principal, penalidades, ordem de taxas",
"Principal, Interest, Penalties, Fees Order": "Principal, Juros, Penalidades, Ordem de Taxas",
"Overdue/Due Fee/Int,Principal": "Taxa vencida/devida/int,principal",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Multa devida, taxa, juros, principal, Adiantamento de principal, multa, taxa, juros",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Pena devida, juros, principal, taxa, multa antecipada, juros, principal, taxa",
"first": "primeiro",
"second": "segundo",
"third": "terceiro",
"fourth": "quatro",
"last": "durar",
"on day": "Um dia",
"SUNDAY": "DOMINGO",
"MONDAY": "SEGUNDA-FEIRA",
"TUESDAY": "TERÇA-FEIRA",
"WEDNESDAY": "QUARTA-FEIRA",
"THURSDAY": "QUINTA-FEIRA",
"FRIDAY": "SEXTA-FEIRA",
"SATURDAY": "SÁBADO",
"Invalid": "Inválido"
},
"commons": {
"50 characters long": "50 caracteres",
"8 characters long": "8 caracteres de comprimento",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Adicionar Conta",
"Add Currency Form": "Adicionar formulário de moeda",
"Add Client Identifier": "Adicionar identificador de cliente",
"Add Journal Entry Form": "Adicionar formulário de lançamento contábil manual",
"Add Loan Collateral": "Adicionar garantia de empréstimo",
"Add Role": "Adicionar função",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Data de início do período de dividendos",
"Dividends": "Dividendos",
"Documents": "Documentos",
"Document Key": "Chave do documento",
"Document Type": "tipo de documento",
"Dormancy Tracking": "Rastreamento de dormência",
"Download": "Download",
"Due": "Devido",
@@ -2155,6 +2288,8 @@
},
"task-management component": "componente de gerenciamento de tarefas",
"to": "para",
"Down Payments": "Adiantamentos",
"Enable Down Payments": "Habilitar adiantamentos",
"valid": "válido"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{título: Lançamentos Diários",
"Mandatory": "Obrigatório",
"Voluntary": "Voluntário",
"Write a note": "Escreva uma nota",
"“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": {
+136
View File
@@ -514,8 +514,138 @@
"Waive Charge": "Kuondoa Malipo",
"Week": "Wiki",
"Withdraw": "Kutoa",
"View Active Charges": "Tazama Malipo Yanayotumika",
"View Inactive Charges": "Tazama Gharama Isiyotumika",
"Yes": "Ndiyo"
},
"catalogs": {
"Active": "Inayotumika",
"Inactive": "Isiyotumika",
"Loans": "Mikopo",
"Client": "Mteja",
"Loan": "Mkopo",
"Savings": "Akiba",
"Shares": "Hisa",
"Regular": "Mara kwa mara",
"Account transfer": "Uhamisho wa akaunti",
"Flat": "Gorofa",
"% Amount": "Kiasi",
"% Interest": "Hamu",
"% Loan Amount + Interest": "Kiasi cha Mkopo + Riba",
"Disbursement": "Utoaji",
"Specified due date": "Tarehe ya mwisho iliyoainishwa",
"Installment Fee": "Ada ya Ufungaji",
"Overdue Fees": "Ada Zilizochelewa",
"Tranche Disbursement": "Utoaji wa Tranche",
"Savings Activation": "Uanzishaji wa Akiba",
"Saving No Activity Fee": "Haihifadhi Ada ya Shughuli",
"Withdrawal Fee": "Ada ya Kuondoa",
"Annual Fee": "Ada ya Mwaka",
"Monthly Fee": "Ada ya Kila Mwezi",
"Weekly Fee": "Ada ya Wiki",
"Share Account Activate": "Shiriki Akaunti Washa",
"Share Purchase": "Shiriki Ununuzi",
"Share Redeem": "Shiriki Kukomboa",
"Days": "Siku",
"Weeks": "Wiki",
"Months": "Miezi",
"Years": "Miaka",
"Deposit": "Amana",
"Withdrawal": "Uondoaji",
"Interest Posting": "Maslahi Posting",
"Waive Charge": "Kuondoa Malipo",
"Pay Charge": "Lipa Ada",
"Dividend Payout": "Malipo ya gawio",
"Accrual": "Accrual",
"Initiate Transfer": "Anzisha Uhamisho",
"Approve Transfer": "Idhinisha Uhamisho",
"Withdraw Transfer": "Ondoa Uhamisho",
"Writtenoff": "Imeandikwa",
"Overdraft Interest": "Riba ya overdraft",
"Withhold Tax": "Kodi ya Kuzuia",
"Escheat": "Escheat",
"On Hold": "Imesimama",
"Release": "Kutolewa",
"Daily": "Kila siku",
"Monthly": "Kila mwezi",
"Quarterly": "Kila robo",
"Semi-Annual": "Nusu ya Mwaka",
"Annually": "Kila mwaka",
"Weekly": "Kila wiki",
"Daily Balance": "Mizani ya Kila siku",
"Average Daily Balance": "Wastani wa Salio la Kila Siku",
"BiAnnual": "BiAnnual",
"360 Days": "Siku 360",
"365 Days": "Siku 365",
"30 Days": "Siku 30",
"364 Days": "Siku 364",
"Actual": "Halisi",
"Disbursement Date": "Tarehe ya Utoaji",
"Submitted On Date": "Imewasilishwa Tarehe",
"Per year": "Kwa mwaka",
"Per month": "Kwa mwezi",
"Whole term": "Muda Mzima",
"Same as repayment period": "Sawa na kipindi cha malipo",
"Declining Balance": "Kupungua kwa Mizani",
"Cumulative": "Jumla",
"Progressive": "Maendeleo",
"Penalty": "Adhabu",
"Fees": "Ada",
"Fee": "Ada",
"Horizontal": "Mlalo",
"Vertical": "Wima",
"Advanced payment allocation strategy": "Mkakati wa hali ya juu wa ugawaji malipo",
"Past due penalty": "Adhabu ya wakati uliopita",
"Past due fee": "Ada ya malipo ya nyuma",
"Past due principal": "Mkuu wa shule aliyepita",
"Past due interest": "Maslahi yaliyopita",
"Due penalty": "Adhabu inayostahili",
"Due fee": "Ada inayodaiwa",
"Due principal": "Malipo mkuu",
"Due interest": "Nia inayostahili",
"In advanced penalty": "Adhabu ya mapema",
"In advanced fee": "Ada ya mapema",
"In advanced principal": "Mapema mkuu",
"In advanced interest": "Maslahi ya mapema",
"Next installment": "Awamu inayofuata",
"Last installment": "Awamu ya mwisho",
"Reamotization": "Remotization",
"equals": "sawa",
"greater than": "kubwa kuliko",
"Equal installments": "Awamu sawa",
"Equal principal payments": "Malipo ya msingi sawa",
"Till Pre-Close Date": "Hadi Tarehe ya Kufungwa",
"Till Rest Frequency Date": "Hadi Tarehe ya Marudio ya Kupumzika",
"Reduce EMI amount": "Punguza Kiasi",
"Reduce number of installments": "Kupunguza idadi ya awamu",
"Reschedule next repayments": "Panga upya malipo yanayofuata",
"None": "Mtaji",
"Interest": "Hamu",
"Fee and Interest": "Ada na Riba",
"Creocore Unique": "Creocore ya kipekee",
"Early Repayment Strategy": "Mkakati wa Kulipa Mapema",
"Penalties, Fees, Interest, Principal order": "Adhabu, Ada, Riba, Agizo kuu",
"HeavensFamily Unique": "HeavensFamily ya Kipekee",
"Interest, Principal, Penalties, Fees Order": "Riba, Mkuu, Adhabu, Agizo la Ada",
"Principal, Interest, Penalties, Fees Order": "Mkuu, Riba, Adhabu, Agizo la Ada",
"Overdue/Due Fee/Int,Principal": "Ada Imechelewa/Inayodaiwa/Int,Mkuu",
"Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Adhabu inayodaiwa, ada, riba, mkuu, Mapema mkuu, adhabu, ada, riba",
"Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Adhabu inayostahili, riba, mkuu, ada, Adhabu ya mapema, riba, mkuu, ada",
"first": "kwanza",
"second": "pili",
"third": "cha tatu",
"fourth": "nne",
"last": "mwisho",
"on day": "siku",
"SUNDAY": "JUMAPILI",
"MONDAY": "JUMATATU",
"TUESDAY": "JUMANNE",
"WEDNESDAY": "JUMATANO",
"THURSDAY": "ALHAMISI",
"FRIDAY": "IJUMAA",
"SATURDAY": "JUMAMOSI",
"Invalid": "Batili"
},
"commons": {
"50 characters long": "Urefu wa herufi 50",
"8 characters long": "Urefu wa herufi 8",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Ongeza Akaunti",
"Add Currency Form": "Ongeza Fomu ya Sarafu",
"Add Client Identifier": "Ongeza Kitambulisho cha Mteja",
"Add Journal Entry Form": "Ongeza Fomu ya Kuingiza Jarida",
"Add Loan Collateral": "Ongeza Dhamana ya Mkopo",
"Add Role": "Ongeza Jukumu",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Tarehe ya Kuanza kwa Kipindi cha Gawio",
"Dividends": "Gawio",
"Documents": "Nyaraka",
"Document Key": "Ufunguo wa Hati",
"Document Type": "Aina ya Hati",
"Dormancy Tracking": "Ufuatiliaji wa Malalamiko",
"Download": "Pakua",
"Due": "Inastahili",
@@ -2155,6 +2288,8 @@
},
"task-management component": "sehemu ya usimamizi wa kazi",
"to": "kwa",
"Down Payments": "Malipo ya Chini",
"Enable Down Payments": "Washa Malipo ya Chini",
"valid": "halali"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{kichwa: Maingizo ya Jarida",
"Mandatory": "Lazima",
"Voluntary": "Kwa hiari",
"Write a note": "Andika dokezo",
"“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": {