Use of filter in the GL Account dropdown menus
This commit is contained in:
committed by
Adam Saghy
parent
6edb262028
commit
53d8436875
Generated
+12
@@ -39,6 +39,7 @@
|
||||
"install": "^0.13.0",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "^2.29.4",
|
||||
"ngx-mat-select-search": "5.0.0",
|
||||
"rxjs": "6.6.2",
|
||||
"tslib": "^2.0.0",
|
||||
"vkbeautify": "^0.99.2",
|
||||
@@ -14222,6 +14223,17 @@
|
||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ngx-mat-select-search": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-5.0.0.tgz",
|
||||
"integrity": "sha512-w9NLIhN/b6aDpvwdrvxttNm6eYbcnalyCIOPaFPTpK8Ub8graHmL6qQdWzIw54Qxyzlr7A0DvpMgywcs4eGSYA==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@angular/material": "^12.0.0 || ^13.0.0 || ^14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nice-napi": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
"install": "^0.13.0",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "^2.29.4",
|
||||
"ngx-mat-select-search": "5.0.0",
|
||||
"rxjs": "6.6.2",
|
||||
"tslib": "^2.0.0",
|
||||
"vkbeautify": "^0.99.2",
|
||||
|
||||
@@ -169,7 +169,7 @@ const routes: Routes = [
|
||||
{
|
||||
path: 'migrate-opening-balances',
|
||||
component: MigrateOpeningBalancesComponent,
|
||||
data: { title: 'Migrate Opening Balances', breadcrumb: 'Migrate Opening Balances' },
|
||||
data: { title: 'Migrate Opening Balances', breadcrumb: 'Migrate Opening Balances' },
|
||||
resolve: {
|
||||
offices: OfficesResolver,
|
||||
currencies: CurrenciesResolver
|
||||
|
||||
+8
-9
@@ -52,14 +52,13 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Parent" | translate}}</mat-label>
|
||||
<mat-select formControlName="parentId">
|
||||
<mat-option *ngFor="let parent of parentData" [value]="parent.id">
|
||||
({{ parent.glCode }}) {{ parent.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="glAccountForm.controls.parentId"
|
||||
[glAccountList]="parentData"
|
||||
[required]="false"
|
||||
[inputLabel]="'Parent'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="28%">
|
||||
<mat-label>{{"labels.inputs.Tag" | translate}}</mat-label>
|
||||
@@ -114,4 +113,4 @@
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" |
|
||||
translate}}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
+2
-1
@@ -11,6 +11,7 @@ import { ConfigurationWizardService } from '../../../configuration-wizard/config
|
||||
|
||||
/** Custom Dialog Component */
|
||||
import { ContinueSetupDialogComponent } from '../../../configuration-wizard/continue-setup-dialog/continue-setup-dialog.component';
|
||||
import { GLAccount } from 'app/shared/models/general.model';
|
||||
|
||||
/**
|
||||
* Create gl account component.
|
||||
@@ -31,7 +32,7 @@ export class CreateGlAccountComponent implements OnInit, AfterViewInit {
|
||||
/** Account usage data. */
|
||||
accountUsageData: any;
|
||||
/** Parent data. */
|
||||
parentData: any;
|
||||
parentData: GLAccount[] = [];
|
||||
/** Tag data. */
|
||||
tagData: any;
|
||||
/** Account type id. (for creation of sub-ledger account) */
|
||||
|
||||
@@ -48,14 +48,13 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Parent" | translate}}</mat-label>
|
||||
<mat-select formControlName="parentId">
|
||||
<mat-option *ngFor="let parent of parentData" [value]="parent.id">
|
||||
({{ parent.glCode }}) {{ parent.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="glAccountForm.controls.parentId"
|
||||
[glAccountList]="parentData"
|
||||
[required]="false"
|
||||
[inputLabel]="'Parent'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="28%">
|
||||
<mat-label>{{"labels.inputs.Tag" | translate}}</mat-label>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
<div fxFlex="50%" *ngIf="glAccount.parent">
|
||||
<a class="tab-link" [routerLink]="['/accounting/chart-of-accounts/gl-accounts/view/' + glAccount.parent.id]">
|
||||
({{ glAccount.parent.glCode }}) {{ glAccount.parent.name }}
|
||||
<mifosx-gl-account-display [glAccount]="glAccount.parent"></mifosx-gl-account-display>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -37,17 +37,13 @@
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Affected GL Entry (Debit)" | translate}}</mat-label>
|
||||
<mat-select required formControlName="glAccountId">
|
||||
<mat-option *ngFor="let affectedGLEntryDebit of glAccountData" [value]="affectedGLEntryDebit.id">
|
||||
{{ affectedGLEntryDebit.name + ' (' + affectedGLEntryDebit.glCode + ')' }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="debits.at(i).controls.glAccountId.hasError('required')">
|
||||
{{"labels.inputs.Affected GL Entry (Debit)" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="debits.at(i).controls.glAccountId"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Affected GL Entry (Debit)'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="43%">
|
||||
<mat-label>{{"labels.inputs.Debit Amount" | translate}}</mat-label>
|
||||
@@ -75,17 +71,13 @@
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Affected GL Entry (Credit)" | translate}}</mat-label>
|
||||
<mat-select required formControlName="glAccountId">
|
||||
<mat-option *ngFor="let affectedGLEntryCredit of glAccountData" [value]="affectedGLEntryCredit.id">
|
||||
{{ affectedGLEntryCredit.name + ' (' + affectedGLEntryCredit.glCode + ')' }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="credits.at(i).controls.glAccountId.hasError('required')">
|
||||
{{"labels.inputs.Affected GL Entry (Credit)" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="credits.at(i).controls.glAccountId"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Affected GL Entry (Credit)'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="43%">
|
||||
<mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label>
|
||||
|
||||
+7
-11
@@ -20,17 +20,13 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Account"|translate}}</mat-label>
|
||||
<mat-select required formControlName="glAccountId">
|
||||
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
|
||||
{{ glAccount.name + ' (' + glAccount.glCode + ')' }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="financialActivityMappingForm.controls.glAccountId.hasError('required')">
|
||||
{{"labels.inputs.Account"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector
|
||||
[inputFormControl]="financialActivityMappingForm.controls.glAccountId"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Account'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@ import { Router, ActivatedRoute } from '@angular/router';
|
||||
|
||||
/** Custom Services */
|
||||
import { AccountingService } from '../../accounting.service';
|
||||
import { GLAccount } from 'app/shared/models/general.model';
|
||||
|
||||
/**
|
||||
* Create financial activity mapping component.
|
||||
@@ -21,7 +22,7 @@ export class CreateFinancialActivityMappingComponent implements OnInit {
|
||||
/** GL Account options. */
|
||||
glAccountOptions: any;
|
||||
/** GL Account data. */
|
||||
glAccountData: any;
|
||||
glAccountData: GLAccount[] = [];
|
||||
/** Financial activity data. */
|
||||
financialActivityData: any;
|
||||
|
||||
|
||||
+7
-9
@@ -17,15 +17,13 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Account"|translate}}</mat-label>
|
||||
<mat-select required formControlName="glAccountId">
|
||||
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
|
||||
{{ glAccount.name + ' (' + glAccount.glCode + ')' }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mifosx-gl-account-selector
|
||||
[inputFormControl]="financialActivityMappingForm.controls.glAccountId"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Account'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@ import { Router, ActivatedRoute } from '@angular/router';
|
||||
|
||||
/** Custom Services */
|
||||
import { AccountingService } from '../../accounting.service';
|
||||
import { GLAccount } from 'app/shared/models/general.model';
|
||||
|
||||
/**
|
||||
* Edit financial activity mapping component.
|
||||
@@ -21,7 +22,7 @@ export class EditFinancialActivityMappingComponent implements OnInit {
|
||||
/** GL Account options. */
|
||||
glAccountOptions: any;
|
||||
/** GL Account data. */
|
||||
glAccountData: any;
|
||||
glAccountData: GLAccount[] = [];
|
||||
/** Financial activity data. */
|
||||
financialActivityData: any;
|
||||
/** Financial activity account ID. */
|
||||
|
||||
+5
-7
@@ -25,13 +25,11 @@
|
||||
{{ financialActivityAccount?.financialActivityData.name }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Name" | translate}}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
{{ financialActivityAccount?.glAccountData.name }}
|
||||
</div>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[glAccount]="financialActivityAccount?.glAccountData"
|
||||
[accountTitle]="'Account Name'"
|
||||
>
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5,10 +5,13 @@
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{"labels.inputs.GL Account Name or Code" | translate}}</mat-label>
|
||||
<input matInput [formControl]="glAccount" [matAutocomplete]="glAccountAutocomplete">
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="31%"
|
||||
[inputFormControl]="glAccount"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'GL Account Name or Code'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
|
||||
@@ -62,13 +65,6 @@
|
||||
</mat-option>
|
||||
</mat-autocomplete>
|
||||
|
||||
<mat-autocomplete autoActiveFirstOption #glAccountAutocomplete="matAutocomplete" [displayWith]="displayGLAccount">
|
||||
<mat-option *ngFor="let glAccount of filteredGLAccountData | async" [value]="{ id: glAccount.id, name: glAccount.name, glCode: glAccount.glCode }">
|
||||
{{ glAccount.name + ' (' + glAccount.glCode + ')' }}
|
||||
</mat-option>
|
||||
</mat-autocomplete>
|
||||
|
||||
|
||||
<div class="mat-elevation-z8 container">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
@@ -170,7 +170,7 @@ export class SearchJournalEntryComponent implements OnInit, AfterViewInit {
|
||||
|
||||
this.glAccount.valueChanges
|
||||
.pipe(
|
||||
map(value => value.id ? value.id : ''),
|
||||
map(value => value ? value : ''),
|
||||
debounceTime(500),
|
||||
distinctUntilChanged(),
|
||||
tap((filterValue) => {
|
||||
@@ -269,15 +269,6 @@ export class SearchJournalEntryComponent implements OnInit, AfterViewInit {
|
||||
return office ? office.name : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays gl account name in form control input.
|
||||
* @param {any} glAccount Gl Account data.
|
||||
* @returns {string} Gl Account name if valid otherwise undefined.
|
||||
*/
|
||||
displayGLAccount(glAccount?: any): string | undefined {
|
||||
return glAccount ? glAccount.name + ' (' + glAccount.glCode + ')' : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets filtered offices for autocomplete.
|
||||
*/
|
||||
|
||||
+1
-3
@@ -70,9 +70,7 @@ export class RejectClientTransferComponent implements OnInit {
|
||||
rejectClientTransferFormData.transferDate = this.dateUtils.formatDate(prevTransferDate, dateFormat);
|
||||
}
|
||||
const data = {
|
||||
...rejectClientTransferFormData,
|
||||
dateFormat,
|
||||
locale
|
||||
...rejectClientTransferFormData
|
||||
};
|
||||
this.clientsService.executeClientCommand(this.clientId, 'rejectTransfer', data).subscribe(() => {
|
||||
this.router.navigate(['../../'], { relativeTo: this.route });
|
||||
|
||||
+1
-3
@@ -73,9 +73,7 @@ export class UndoClientTransferComponent implements OnInit {
|
||||
undoClientTransferFormData.transferDate = this.dateUtils.formatDate(prevTransferDate, dateFormat);
|
||||
}
|
||||
const data = {
|
||||
...undoClientTransferFormData,
|
||||
dateFormat,
|
||||
locale
|
||||
...undoClientTransferFormData
|
||||
};
|
||||
this.clientsService.executeClientCommand(this.clientId, 'withdrawTransfer', data).subscribe(() => {
|
||||
this.router.navigate(['../../'], { relativeTo: this.route });
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<mat-card-title fxLayout="row wrap" class="content">
|
||||
<h3 fxFlex="95%">
|
||||
<i class="fa fa-stop" [ngClass]="clientViewData.status.code|statusLookup"
|
||||
[matTooltip]="clientViewData.status.value"></i>
|
||||
matTooltip="{{'labels.status.' + clientViewData.status.value | translate}}"></i>
|
||||
<b>{{"labels.inputs.Client Name" | translate}} :</b><mifosx-entity-name entityName="{{clientViewData.displayName}}"></mifosx-entity-name>
|
||||
</h3>
|
||||
<div fxFlex="5%">
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
<div fxFlex="4%">
|
||||
<button mat-icon-button [matMenuTriggerFor]="accountMenu" aria-label="Loan account actions"
|
||||
yPosition="below">
|
||||
yPosition="below" *ngIf="buttonConfig.singleButtons.length > 0">
|
||||
<mat-icon matListIcon class="actions-menu">
|
||||
<fa-icon icon="bars" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
|
||||
+61
-76
@@ -723,93 +723,78 @@
|
||||
<h4 fxFlexFill class="mat-h4">Assets / Liabilities</h4>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="47%">Fund source:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.fundSourceAccount.glCode}}) {{
|
||||
accountingMappings.fundSourceAccount.name }}</span>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Fund source'" [glAccount]="accountingMappings.fundSourceAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
</div>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Assets</h4>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Assets' | translate}}</h4>
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="47%">Loan portfolio:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.loanPortfolioAccount.glCode}}) {{
|
||||
accountingMappings.loanPortfolioAccount.name }}</span>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Loan portfolio'" [glAccount]="accountingMappings.loanPortfolioAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<div fxFlexFill *ngIf="loanProduct.accountingRule.id === 3 || loanProduct.accountingRule.id === 4"
|
||||
fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="47%">Interest Receivable:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.receivableInterestAccount.glCode}}) {{
|
||||
accountingMappings.receivableInterestAccount.name }}</span>
|
||||
<span fxFlex="47%">Fees Receivable:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.receivableFeeAccount.glCode}}) {{
|
||||
accountingMappings.receivableInterestAccount.name }}</span>
|
||||
<span fxFlex="47%">Penalties Receivable:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.receivablePenaltyAccount.glCode}}) {{
|
||||
accountingMappings.receivablePenaltyAccount.name }}</span>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Interest Receivable'" [glAccount]="accountingMappings.receivableInterestAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Fees Receivable'" [glAccount]="accountingMappings.receivableFeeAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Penalties Receivable'" [glAccount]="accountingMappings.receivablePenaltyAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
</div>
|
||||
<span fxFlex="47%">Transfer in suspense:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.transfersInSuspenseAccount.glCode}}) {{
|
||||
accountingMappings.transfersInSuspenseAccount.name }}</span>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Transfer in suspense'" [glAccount]="accountingMappings.transfersInSuspenseAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
</div>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Income</h4>
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Income' | translate}}</h4>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Income from Interest'" [glAccount]="accountingMappings.interestOnLoanAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Income from fees'" [glAccount]="accountingMappings.incomeFromFeeAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Income from penalties'" [glAccount]="accountingMappings.incomeFromPenaltyAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Income from Recovery Repayments'" [glAccount]="accountingMappings.incomeFromRecoveryAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<mifosx-gl-account-display fxFlex="100%" *ngIf="accountingMappings.incomeFromChargeOffInterestAccount"
|
||||
[accountTitle]="'Income from ChargeOff Interest'" [glAccount]="accountingMappings.incomeFromChargeOffInterestAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" *ngIf="accountingMappings.incomeFromChargeOffFeesAccount"
|
||||
[accountTitle]="'Income from ChargeOff Fees'" [glAccount]="accountingMappings.incomeFromChargeOffFeesAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" *ngIf="accountingMappings.incomeFromChargeOffPenaltyAccount"
|
||||
[accountTitle]="'Income from ChargeOff Penalty'" [glAccount]="accountingMappings.incomeFromChargeOffPenaltyAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Expenses' | translate}}</h4>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="47%">Income from Interest:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.interestOnLoanAccount.glCode}}) {{
|
||||
accountingMappings.interestOnLoanAccount.name }}</span>
|
||||
<span fxFlex="47%">Income from fees:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.incomeFromFeeAccount.glCode}}) {{
|
||||
accountingMappings.incomeFromFeeAccount.name }}</span>
|
||||
<span fxFlex="47%">Income from penalties:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.incomeFromPenaltyAccount.glCode}}) {{
|
||||
accountingMappings.incomeFromPenaltyAccount.name }}</span>
|
||||
<span fxFlex="47%">Income from Recovery Repayments:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.incomeFromRecoveryAccount.glCode}}) {{
|
||||
accountingMappings.incomeFromRecoveryAccount.name }}</span>
|
||||
<span *ngIf="accountingMappings.incomeFromChargeOffInterestAccount" fxFlex="47%">Income from ChargeOff
|
||||
Interest:</span>
|
||||
<span *ngIf="accountingMappings.incomeFromChargeOffInterestAccount" fxFlex="53%">
|
||||
({{accountingMappings.incomeFromChargeOffInterestAccount.glCode}}) {{
|
||||
accountingMappings.incomeFromChargeOffInterestAccount.name }}</span>
|
||||
<span fxFlex="47%" *ngIf="accountingMappings.incomeFromChargeOffFeesAccount">Income from ChargeOff
|
||||
Fees:</span>
|
||||
<span fxFlex="53%" *ngIf="accountingMappings.incomeFromChargeOffFeesAccount">
|
||||
({{accountingMappings.incomeFromChargeOffFeesAccount.glCode}}) {{
|
||||
accountingMappings.incomeFromChargeOffFeesAccount.name }}</span>
|
||||
<span fxFlex="47%" *ngIf="accountingMappings.incomeFromChargeOffPenaltyAccount">Income from ChargeOff
|
||||
Penalty:</span>
|
||||
<span fxFlex="53%" *ngIf="accountingMappings.incomeFromChargeOffPenaltyAccount">
|
||||
({{accountingMappings.incomeFromChargeOffPenaltyAccount.glCode}}) {{
|
||||
accountingMappings.incomeFromChargeOffPenaltyAccount.name }}</span>
|
||||
</div>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Losses written off'" [glAccount]="accountingMappings.writeOffAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Expenses from Goodwill Credit'" [glAccount]="accountingMappings.goodwillCreditAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" *ngIf="accountingMappings.chargeOffExpenseAccount"
|
||||
[accountTitle]="'ChargeOff Expense'" [glAccount]="accountingMappings.chargeOffExpenseAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" *ngIf="accountingMappings.chargeOffFraudExpenseAccount"
|
||||
[accountTitle]="'ChargeOff Fraud Expense'" [glAccount]="accountingMappings.chargeOffFraudExpenseAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Expenses</h4>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="47%">Losses written off:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.writeOffAccount.glCode}}) {{
|
||||
accountingMappings.writeOffAccount.name }}</span>
|
||||
<span fxFlex="47%">Expenses from Goodwill Credit:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.goodwillCreditAccount.glCode}}) {{
|
||||
accountingMappings.goodwillCreditAccount.name }}</span>
|
||||
<span *ngIf="accountingMappings.chargeOffExpenseAccount" fxFlex="47%">ChargeOff Expense:</span>
|
||||
<span *ngIf="accountingMappings.chargeOffExpenseAccount" fxFlex="53%">
|
||||
({{accountingMappings.chargeOffExpenseAccount.glCode}}) {{
|
||||
accountingMappings.chargeOffExpenseAccount.name }}</span>
|
||||
<span *ngIf="accountingMappings.chargeOffFraudExpenseAccount" fxFlex="47%">ChargeOff Fraud
|
||||
Expense:</span>
|
||||
<span *ngIf="accountingMappings.chargeOffFraudExpenseAccount" fxFlex="53%">
|
||||
({{accountingMappings.chargeOffFraudExpenseAccount.glCode}}) {{
|
||||
accountingMappings.chargeOffFraudExpenseAccount.name }}</span>
|
||||
</div>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Liabilities</h4>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="47%">Over payment liability:</span>
|
||||
<span fxFlex="53%">({{accountingMappings.overpaymentLiabilityAccount.glCode}}) {{
|
||||
accountingMappings.overpaymentLiabilityAccount.name }}</span>
|
||||
</div>
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Liabilities' | translate}}</h4>
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
[accountTitle]="'Over payment liability'" [glAccount]="accountingMappings.overpaymentLiabilityAccount" [withTitle]="'47%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<div
|
||||
*ngIf="isAdvancedAccountingEnabled()"
|
||||
|
||||
+165
-249
@@ -12,277 +12,193 @@
|
||||
|
||||
<div *ngIf="loanProductAccountingForm.value.accountingRule >= 2 && loanProductAccountingForm.value.accountingRule <= 4" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Assets / Liability</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Assets' | translate}} / {{'labels.heading.Liability' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Fund source</mat-label>
|
||||
<mat-select formControlName="fundSourceAccountId" required>
|
||||
<mat-option *ngFor="let assetAndLiabilityAccount of assetAndLiabilityAccountData" [value]="assetAndLiabilityAccount.id">
|
||||
({{ assetAndLiabilityAccount.glCode }}) {{ assetAndLiabilityAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Fund source is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.fundSourceAccountId"
|
||||
[glAccountList]="assetAndLiabilityAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Fund source'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Assets</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Assets' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Loan portfolio</mat-label>
|
||||
<mat-select formControlName="loanPortfolioAccountId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Loan portfolio is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.loanPortfolioAccountId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Loan portfolio'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.transfersInSuspenseAccountId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Transfer in suspense'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<div *ngIf="loanProductAccountingForm.value.accountingRule === 3 || loanProductAccountingForm.value.accountingRule === 4" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Interest Receivable</mat-label>
|
||||
<mat-select formControlName="receivableInterestAccountId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Interest Receivable is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.receivableInterestAccountId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Interest Receivable'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Fees Receivable</mat-label>
|
||||
<mat-select formControlName="receivableFeeAccountId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Fees Receivable is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.receivableFeeAccountId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Fees Receivable'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Penalties Receivable</mat-label>
|
||||
<mat-select formControlName="receivablePenaltyAccountId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Penalties Receivable is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.receivablePenaltyAccountId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Penalties Receivable'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Transfer in suspense</mat-label>
|
||||
<mat-select formControlName="transfersInSuspenseAccountId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Transfer in suspense is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Income' | translate}}</h4>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.interestOnLoanAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from Interest'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromFeeAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from fees'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromPenaltyAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from penalties'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromRecoveryAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from Recovery Repayments'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromChargeOffInterestAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from ChargeOff Interest'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromChargeOffFeesAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from ChargeOff Fees'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromChargeOffPenaltyAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from ChargeOff Penalty'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromGoodwillCreditInterestAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from Goodwill Credit Interest'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromGoodwillCreditFeesAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from Goodwill Credit Fees'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.incomeFromGoodwillCreditPenaltyAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from Goodwill Credit Penalty'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Income</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Expenses' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from Interest</mat-label>
|
||||
<mat-select formControlName="interestOnLoanAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from Interest is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.writeOffAccountId"
|
||||
[glAccountList]="expenseAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Losses written off'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from fees</mat-label>
|
||||
<mat-select formControlName="incomeFromFeeAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from fees is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.goodwillCreditAccountId"
|
||||
[glAccountList]="expenseAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Expenses from Goodwill Credit'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from penalties</mat-label>
|
||||
<mat-select formControlName="incomeFromPenaltyAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from penalties is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.chargeOffExpenseAccountId"
|
||||
[glAccountList]="expenseAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'ChargeOff Expense'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from Recovery Repayments</mat-label>
|
||||
<mat-select formControlName="incomeFromRecoveryAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from Recovery Repayments is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from ChargeOff Interest</mat-label>
|
||||
<mat-select formControlName="incomeFromChargeOffInterestAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from ChargeOff Interest is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from ChargeOff Fees</mat-label>
|
||||
<mat-select formControlName="incomeFromChargeOffFeesAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from ChargeOff Fees is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from ChargeOff Penalty</mat-label>
|
||||
<mat-select formControlName="incomeFromChargeOffPenaltyAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from ChargeOff Penalty is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from Goodwill Credit Interest</mat-label>
|
||||
<mat-select formControlName="incomeFromGoodwillCreditInterestAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from Goodwill Credit Interest is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from Goodwill Credit Fees</mat-label>
|
||||
<mat-select formControlName="incomeFromGoodwillCreditFeesAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from Goodwill Credit Fees is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from Goodwill Credit Penalty</mat-label>
|
||||
<mat-select formControlName="incomeFromGoodwillCreditPenaltyAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from Goodwill Credit Penalty is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.chargeOffFraudExpenseAccountId"
|
||||
[glAccountList]="expenseAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'ChargeOff Fraud Expense'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Expenses</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Liabilities' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Losses written off</mat-label>
|
||||
<mat-select formControlName="writeOffAccountId" required>
|
||||
<mat-option *ngFor="let expenseAccount of expenseAccountData" [value]="expenseAccount.id">
|
||||
({{ expenseAccount.glCode }}) {{ expenseAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Losses written off is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Expenses from Goodwill Credit</mat-label>
|
||||
<mat-select formControlName="goodwillCreditAccountId" required>
|
||||
<mat-option *ngFor="let expenseAccount of expenseAccountData" [value]="expenseAccount.id">
|
||||
({{ expenseAccount.glCode }}) {{ expenseAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Goodwill credit is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>ChargeOff Expense</mat-label>
|
||||
<mat-select formControlName="chargeOffExpenseAccountId" required>
|
||||
<mat-option *ngFor="let expenseAccount of expenseAccountData" [value]="expenseAccount.id">
|
||||
({{ expenseAccount.glCode }}) {{ expenseAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
ChargeOff Expense is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>ChargeOff Fraud Expense</mat-label>
|
||||
<mat-select formControlName="chargeOffFraudExpenseAccountId" required>
|
||||
<mat-option *ngFor="let expenseAccount of expenseAccountData" [value]="expenseAccount.id">
|
||||
({{ expenseAccount.glCode }}) {{ expenseAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
ChargeOff Fraud Expense is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Liabilities</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Over payment liability</mat-label>
|
||||
<mat-select formControlName="overpaymentLiabilityAccountId" required>
|
||||
<mat-option *ngFor="let liabilityAccount of liabilityAccountData" [value]="liabilityAccount.id">
|
||||
({{ liabilityAccount.glCode }}) {{ liabilityAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Over payment liability is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="loanProductAccountingForm.controls.overpaymentLiabilityAccountId"
|
||||
[glAccountList]="liabilityAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Over payment liability'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
|
||||
+74
-114
@@ -12,139 +12,99 @@
|
||||
|
||||
<div *ngIf="savingProductAccountingForm.value.accountingRule === 2" fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Assets</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Assets' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Saving reference</mat-label>
|
||||
<mat-select formControlName="savingsReferenceAccountId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Saving reference is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.savingsReferenceAccountId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Saving reference'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Overdraft portfolio</mat-label>
|
||||
<mat-select formControlName="overdraftPortfolioControlId" required>
|
||||
<mat-option *ngFor="let assetAccount of assetAccountData" [value]="assetAccount.id">
|
||||
({{ assetAccount.glCode }}) {{ assetAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Overdraft portfolio is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.overdraftPortfolioControlId"
|
||||
[glAccountList]="assetAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Overdraft portfolio'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Liabilities</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Liabilities' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Saving control</mat-label>
|
||||
<mat-select formControlName="savingsControlAccountId" required>
|
||||
<mat-option *ngFor="let liabilityAccount of liabilityAccountData" [value]="liabilityAccount.id">
|
||||
({{ liabilityAccount.glCode }}) {{ liabilityAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Saving control is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.savingsControlAccountId"
|
||||
[glAccountList]="liabilityAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Saving control'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Savings transfers in suspense</mat-label>
|
||||
<mat-select formControlName="transfersInSuspenseAccountId" required>
|
||||
<mat-option *ngFor="let liabilityAccount of liabilityAccountData" [value]="liabilityAccount.id">
|
||||
({{ liabilityAccount.glCode }}) {{ liabilityAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Savings transfers in suspense is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.transfersInSuspenseAccountId"
|
||||
[glAccountList]="liabilityAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Savings transfers in suspense'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="isDormancyTrackingActive.value">
|
||||
<mat-label>Escheat liability</mat-label>
|
||||
<mat-select formControlName="escheatLiabilityId" required>
|
||||
<mat-option *ngFor="let liabilityAccount of liabilityAccountData" [value]="liabilityAccount.id">
|
||||
({{ liabilityAccount.glCode }}) {{ liabilityAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Escheat liability is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%" *ngIf="isDormancyTrackingActive.value"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.escheatLiabilityId"
|
||||
[glAccountList]="liabilityAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Escheat liability'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Expenses</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Expenses' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Interest on savings</mat-label>
|
||||
<mat-select formControlName="interestOnSavingsAccountId" required>
|
||||
<mat-option *ngFor="let expenseAccount of expenseAccountData" [value]="expenseAccount.id">
|
||||
({{ expenseAccount.glCode }}) {{ expenseAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Interest on savings is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.interestOnSavingsAccountId"
|
||||
[glAccountList]="expenseAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Interest on savings'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Write-off</mat-label>
|
||||
<mat-select formControlName="writeOffAccountId" required>
|
||||
<mat-option *ngFor="let expenseAccount of expenseAccountData" [value]="expenseAccount.id">
|
||||
({{ expenseAccount.glCode }}) {{ expenseAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Write-off is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.writeOffAccountId"
|
||||
[glAccountList]="expenseAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Write-off'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Income</h4>
|
||||
<h4 fxFlex="98%" class="mat-h4">{{'labels.heading.Income' | translate}}</h4>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from fees</mat-label>
|
||||
<mat-select formControlName="incomeFromFeeAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from fees Repayments is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.incomeFromFeeAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from fees'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Income from penalties</mat-label>
|
||||
<mat-select formControlName="incomeFromPenaltyAccountId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Income from penalties is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.incomeFromPenaltyAccountId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Income from penalties'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>Overdraft Interest Income</mat-label>
|
||||
<mat-select formControlName="incomeFromInterestId" required>
|
||||
<mat-option *ngFor="let incomeAccount of incomeAccountData" [value]="incomeAccount.id">
|
||||
({{ incomeAccount.glCode }}) {{ incomeAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error>
|
||||
Overdraft Interest Income is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
[inputFormControl]="savingProductAccountingForm.controls.incomeFromInterestId"
|
||||
[glAccountList]="incomeAccountData"
|
||||
[required]="true"
|
||||
[inputLabel]="'Overdraft Interest Income'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
|
||||
|
||||
+35
-48
@@ -208,57 +208,44 @@
|
||||
|
||||
<div fxFlexFill *ngIf="savingProduct.accountingRule.id === 2" fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Assets</h4>
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Assets' | translate}}</h4>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Saving reference'"
|
||||
[glAccount]="savingProduct.accountingMappings.savingsReferenceAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Overdraft portfolio'"
|
||||
[glAccount]="savingProduct.accountingMappings.overdraftPortfolioControl" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="40%">Saving reference:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.savingsReferenceAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.savingsReferenceAccount.name }}</span>
|
||||
<span fxFlex="40%">Overdraft portfolio:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.overdraftPortfolioControl.glCode }}) {{
|
||||
savingProduct.accountingMappings.overdraftPortfolioControl.name }}</span>
|
||||
</div>
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Income' | translate}}</h4>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Income from fees'"
|
||||
[glAccount]="savingProduct.accountingMappings.incomeFromFeeAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Income from penalties'"
|
||||
[glAccount]="savingProduct.accountingMappings.incomeFromPenaltyAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Income from penalties'"
|
||||
[glAccount]="savingProduct.accountingMappings.incomeFromInterest" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Liabilities</h4>
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Expenses' | translate}}</h4>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Interest on savings'"
|
||||
[glAccount]="savingProduct.accountingMappings.interestOnSavingsAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Write-off'"
|
||||
[glAccount]="savingProduct.accountingMappings.writeOffAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="40%">Saving control:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.savingsControlAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.savingsControlAccount.name }}</span>
|
||||
<span fxFlex="40%">Savings transfers in suspense:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.transfersInSuspenseAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.transfersInSuspenseAccount.name }}</span>
|
||||
<div fxFlexFill *ngIf="savingProduct.isDormancyTrackingActive">
|
||||
<span fxFlex="40%">Escheat liability:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.escheatLiabilityAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.escheatLiabilityAccount.name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Expenses</h4>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="40%">Interest on savings:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.interestOnSavingsAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.interestOnSavingsAccount.name }}</span>
|
||||
<span fxFlex="40%">Write-off:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.writeOffAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.writeOffAccount.name }}</span>
|
||||
</div>
|
||||
|
||||
<h4 fxFlexFill class="mat-h4">Income</h4>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<span fxFlex="40%">Income from fees:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.incomeFromFeeAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.incomeFromFeeAccount.name }}</span>
|
||||
<span fxFlex="40%">Income from penalties:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.incomeFromPenaltyAccount.glCode }}) {{
|
||||
savingProduct.accountingMappings.incomeFromPenaltyAccount.name }}</span>
|
||||
<span fxFlex="40%">Overdraft Interest Income:</span>
|
||||
<span fxFlex="60%">({{ savingProduct.accountingMappings.incomeFromInterest.glCode }}) {{
|
||||
savingProduct.accountingMappings.incomeFromInterest.name }}</span>
|
||||
</div>
|
||||
<h4 fxFlexFill class="mat-h4">{{'labels.heading.Liabilities' | translate}}</h4>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Saving control'"
|
||||
[glAccount]="savingProduct.accountingMappings.savingsControlAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Savings transfers in suspense'"
|
||||
[glAccount]="savingProduct.accountingMappings.transfersInSuspenseAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Escheat liability'"
|
||||
*ngIf="savingProduct.accountingMappings.escheatLiabilityAccount"
|
||||
[glAccount]="savingProduct.accountingMappings.escheatLiabilityAccount" [withTitle]="'40%'">
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<div
|
||||
*ngIf="savingProduct.paymentChannelToFundSourceMappings?.length || savingProduct.feeToIncomeAccountMappings?.length || savingProduct.penaltyToIncomeAccountMappings?.length"
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<span *ngIf="accountTitle">
|
||||
<div fxFlex="{{withTitle}}" class="header">
|
||||
{{'labels.inputs.' + accountTitle | translate}}
|
||||
</div>
|
||||
|
||||
<div fxFlex="{{withAccount}}">
|
||||
{{glAccountValue()}}
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<div fxFlex="100%" *ngIf="!accountTitle">
|
||||
{{glAccountValue()}}
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
div {
|
||||
margin: 0.3rem 0;
|
||||
word-wrap: break-word;
|
||||
|
||||
&.header {
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { GlAccountDisplayComponent } from './gl-account-display.component';
|
||||
|
||||
describe('GlAccountDisplayComponent', () => {
|
||||
let component: GlAccountDisplayComponent;
|
||||
let fixture: ComponentFixture<GlAccountDisplayComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ GlAccountDisplayComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(GlAccountDisplayComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
import { GLAccount } from 'app/shared/models/general.model';
|
||||
|
||||
@Component({
|
||||
selector: 'mifosx-gl-account-display',
|
||||
templateUrl: './gl-account-display.component.html',
|
||||
styleUrls: ['./gl-account-display.component.scss']
|
||||
})
|
||||
export class GlAccountDisplayComponent implements OnInit {
|
||||
|
||||
@Input() glAccount: GLAccount | null = null;
|
||||
@Input() accountTitle: string | null = null;
|
||||
@Input() withTitle = '50%';
|
||||
@Input() withAccount = '50%';
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
glAccountValue(): string {
|
||||
if (this.glAccount) {
|
||||
return '(' + this.glAccount.glCode + ') ' + (this.glAccount.nameDecorated ? this.glAccount.nameDecorated : this.glAccount.name);
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<mat-form-field fxFlex="100%" *ngIf="required">
|
||||
<mat-label>{{'labels.inputs.' + inputLabel | translate}}</mat-label>
|
||||
|
||||
<mat-select required [formControl]="inputFormControl">
|
||||
<mat-option>
|
||||
<ngx-mat-select-search [formControl]="filterFormCtrl"></ngx-mat-select-search>
|
||||
</mat-option>
|
||||
<mat-option *ngFor="let glAccount of glAccountData | async" [value]="glAccount.id">
|
||||
{{ '(' + glAccount.glCode + ') ' + glAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="inputFormControl.hasError('required')">
|
||||
{{"labels.inputs.Account"| translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="100%" *ngIf="!required">
|
||||
<mat-label>{{'labels.inputs.' + inputLabel | translate}}</mat-label>
|
||||
|
||||
<mat-select [formControl]="inputFormControl">
|
||||
<mat-option>
|
||||
<ngx-mat-select-search [formControl]="filterFormCtrl"
|
||||
placeholderLabel="{{placeHolderLabel}}"
|
||||
noEntriesFoundLabel="{{noEntriesFoundLabel}}">
|
||||
</ngx-mat-select-search>
|
||||
</mat-option>
|
||||
<mat-option *ngFor="let glAccount of glAccountData | async" [value]="glAccount.id">
|
||||
{{ '(' + glAccount.glCode + ') ' + glAccount.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@@ -0,0 +1,23 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { GlAccountSelectorComponent } from './gl-account-selector.component';
|
||||
|
||||
describe('GlAccountSelectorComponent', () => {
|
||||
let component: GlAccountSelectorComponent;
|
||||
let fixture: ComponentFixture<GlAccountSelectorComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ GlAccountSelectorComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(GlAccountSelectorComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,71 @@
|
||||
import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { GLAccount } from 'app/shared/models/general.model';
|
||||
import { ReplaySubject, Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'mifosx-gl-account-selector',
|
||||
templateUrl: './gl-account-selector.component.html',
|
||||
styleUrls: ['./gl-account-selector.component.scss']
|
||||
})
|
||||
export class GlAccountSelectorComponent implements OnInit, OnChanges, OnDestroy {
|
||||
|
||||
@Input() inputFormControl: UntypedFormControl;
|
||||
@Input() glAccountList: GLAccount[] = [];
|
||||
@Input() required = false;
|
||||
@Input() inputLabel = '';
|
||||
|
||||
/** GL Account data. */
|
||||
protected glAccountData: ReplaySubject<GLAccount[]> = new ReplaySubject<GLAccount[]>(1);
|
||||
|
||||
/** control for the filter select */
|
||||
protected filterFormCtrl: UntypedFormControl = new UntypedFormControl('');
|
||||
|
||||
/** Subject that emits when the component has been destroyed. */
|
||||
protected _onDestroy = new Subject<void>();
|
||||
|
||||
placeHolderLabel = '';
|
||||
noEntriesFoundLabel = '';
|
||||
|
||||
constructor(private translateService: TranslateService) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
// listen for search field value changes
|
||||
this.filterFormCtrl.valueChanges
|
||||
.pipe(takeUntil(this._onDestroy))
|
||||
.subscribe(() => {
|
||||
this.searchGLAccount();
|
||||
});
|
||||
|
||||
this.placeHolderLabel = this.translateService.instant('labels.inputs.Filter');
|
||||
this.noEntriesFoundLabel = this.translateService.instant('labels.text.No data found');
|
||||
}
|
||||
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
if (this.glAccountList) {
|
||||
this.glAccountData.next(this.glAccountList.slice());
|
||||
}
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
this._onDestroy.next();
|
||||
this._onDestroy.complete();
|
||||
}
|
||||
|
||||
searchGLAccount(): void {
|
||||
if (this.glAccountList) {
|
||||
const search: string = this.filterFormCtrl.value.toLowerCase();
|
||||
|
||||
if (!search) {
|
||||
this.glAccountData.next(this.glAccountList.slice());
|
||||
} else {
|
||||
this.glAccountData.next(this.glAccountList.filter((option: GLAccount) => {
|
||||
return option.name.toLowerCase().indexOf(search) >= 0 || option.glCode.toLowerCase().indexOf(search) >= 0;
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -32,6 +32,7 @@ import {
|
||||
faDollarSign,
|
||||
faEdit,
|
||||
faEnvelope,
|
||||
faExchange,
|
||||
faExclamationCircle,
|
||||
faExclamationTriangle,
|
||||
faEye,
|
||||
@@ -154,6 +155,7 @@ export class IconsModule {
|
||||
faDollarSign,
|
||||
faEdit,
|
||||
faEnvelope,
|
||||
faExchange,
|
||||
faExclamationCircle,
|
||||
faExclamationTriangle,
|
||||
faEye,
|
||||
|
||||
@@ -38,6 +38,7 @@ import { MatTabsModule } from '@angular/material/tabs';
|
||||
import { MatToolbarModule } from '@angular/material/toolbar';
|
||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
import { MatTreeModule } from '@angular/material/tree';
|
||||
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
||||
|
||||
/**
|
||||
* Material Module
|
||||
@@ -71,6 +72,7 @@ import { MatTreeModule } from '@angular/material/tree';
|
||||
MatProgressSpinnerModule,
|
||||
MatRadioModule,
|
||||
MatSelectModule,
|
||||
NgxMatSelectSearchModule,
|
||||
MatSidenavModule,
|
||||
MatSliderModule,
|
||||
MatSlideToggleModule,
|
||||
|
||||
@@ -15,6 +15,7 @@ export interface GLAccount {
|
||||
name: string;
|
||||
glCode: string;
|
||||
description: string;
|
||||
nameDecorated?: string;
|
||||
disabled: boolean;
|
||||
manualEntriesAllowed: boolean;
|
||||
type: OptionData;
|
||||
|
||||
@@ -43,6 +43,8 @@ import { AccountNumberComponent } from './account-number/account-number.componen
|
||||
import { EntityNameComponent } from './entity-name/entity-name.component';
|
||||
import { TransactionPaymentDetailComponent } from './transaction-payment-detail/transaction-payment-detail.component';
|
||||
import { StepperButtonsComponent } from './steppers/stepper-buttons/stepper-buttons.component';
|
||||
import { GlAccountSelectorComponent } from './accounting/gl-account-selector/gl-account-selector.component';
|
||||
import { GlAccountDisplayComponent } from './accounting/gl-account-display/gl-account-display.component';
|
||||
|
||||
/**
|
||||
* Shared Module
|
||||
@@ -92,7 +94,9 @@ import { StepperButtonsComponent } from './steppers/stepper-buttons/stepper-butt
|
||||
AccountNumberComponent,
|
||||
EntityNameComponent,
|
||||
TransactionPaymentDetailComponent,
|
||||
StepperButtonsComponent
|
||||
StepperButtonsComponent,
|
||||
GlAccountSelectorComponent,
|
||||
GlAccountDisplayComponent
|
||||
],
|
||||
exports: [
|
||||
FileUploadComponent,
|
||||
@@ -120,7 +124,9 @@ import { StepperButtonsComponent } from './steppers/stepper-buttons/stepper-butt
|
||||
SvgIconComponent,
|
||||
EntityNameComponent,
|
||||
TransactionPaymentDetailComponent,
|
||||
StepperButtonsComponent
|
||||
StepperButtonsComponent,
|
||||
GlAccountSelectorComponent,
|
||||
GlAccountDisplayComponent
|
||||
]
|
||||
})
|
||||
export class SharedModule { }
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Průvodce konfigurací",
|
||||
"Create Guarantor": "Vytvořit garanta",
|
||||
"Create Journal Entry": "Vytvořit položku deníku",
|
||||
"Credit Balance Refund": "Vrácení kreditního zůstatek",
|
||||
"Dashboard": "Přístrojová deska",
|
||||
"Delete": "Vymazat",
|
||||
"Deposit": "Vklad",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Půjčka před výplatou",
|
||||
"Products": "produkty",
|
||||
"Profile": "Profil",
|
||||
"Recove From Guarantor": "Vymáhání od ručitele",
|
||||
"Recover From Guarantor": "Vymáhání od ručitele",
|
||||
"Recovery Payment": "Platba obnovy",
|
||||
"Reject": "Odmítnout",
|
||||
"Reports": "Zprávy",
|
||||
"Reschedule": "Přeplánovat",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Aktivní",
|
||||
"Closed": "ZAVŘENO"
|
||||
"Approved": "Schválený",
|
||||
"Closed": "ZAVŘENO",
|
||||
"Closed (rescheduled)": "Uzavřeno (přeplánováno)",
|
||||
"Closed (written off)": "Uzavřeno (odepsané)",
|
||||
"Overpaid": "Přeplatek",
|
||||
"Pending": "čekající",
|
||||
"Rejected": "Odmítnuto",
|
||||
"Submitted and pending approval": "Předložený a čekající na schválení",
|
||||
"Transfer in progress": "Převod",
|
||||
"Transfer on hold": "Přenesejte na pozastavení",
|
||||
"Withdrawn": "Stažený"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Are you sure you want Unassign Staff",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Transakce ručního zápisu do deníku zaznamenané v deníku",
|
||||
"Mifos Initiative": "Iniciativa Mifos",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Tabulky dat Mifos X umožňují uživateli přidat vlastní pole kromě vestavěných polí do profilu klienta, úvěrového/spořicího účtu, skupiny, centra nebo kanceláře.",
|
||||
"Migrate Opening Balances": "Tento formulář bude použit k migraci počátečních zůstatků. Chcete-li vědět více, klikněte:",
|
||||
"Migrate Opening Balances": "Migrujte úvodní zůstatky",
|
||||
"Modify Loans Account": "Upravit úvěrový účet",
|
||||
"N/A": "N/A",
|
||||
"Navigate system selecting entity": "To uživateli umožní rychle procházet entitou pro výběr systému, zatímco vyhledávání činí navigaci robustnější.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Konfigurationsassistent",
|
||||
"Create Guarantor": "Bürgen erstellen",
|
||||
"Create Journal Entry": "Journaleintrag erstellen",
|
||||
"Credit Balance Refund": "Rückerstattung des Kreditsaldos",
|
||||
"Dashboard": "Armaturenbrett",
|
||||
"Delete": "Löschen",
|
||||
"Deposit": "Kaution",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Darlehen mit Vorauszahlung",
|
||||
"Products": "Produkte",
|
||||
"Profile": "Profil",
|
||||
"Recove From Guarantor": "Rückforderung vom Bürgen",
|
||||
"Recover From Guarantor": "Rückforderung vom Bürgen",
|
||||
"Recovery Payment": "Wiederherstellungszahlung",
|
||||
"Reject": "Ablehnen",
|
||||
"Reports": "Berichte",
|
||||
"Reschedule": "Neu planen",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Aktiv",
|
||||
"Closed": "Geschlossen"
|
||||
"Approved": "Genehmigt",
|
||||
"Closed": "Geschlossen",
|
||||
"Closed (rescheduled)": "Geschlossen (verschoben)",
|
||||
"Closed (written off)": "Geschlossen (abgeschrieben)",
|
||||
"Overpaid": "Überbezahlt",
|
||||
"Pending": "Ausstehend",
|
||||
"Rejected": "Abgelehnt",
|
||||
"Submitted and pending approval": "Eingereicht und ausstehende Genehmigung",
|
||||
"Transfer in progress": "Übertragung in Arbeit",
|
||||
"Transfer on hold": "Übertragen",
|
||||
"Withdrawn": "Zurückgezogen"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Sind Sie sicher, dass Sie das Personal freistellen möchten",
|
||||
@@ -2520,7 +2532,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Manuelle Journalbuchungstransaktionen, die in einem Journal aufgezeichnet werden",
|
||||
"Mifos Initiative": "Mifos-Initiative",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Mifos",
|
||||
"Migrate Opening Balances": "Dieses Formular wird zur Migration von Eröffnungssalden verwendet. Um mehr zu erfahren, klicken Sie:",
|
||||
"Migrate Opening Balances": "Migrate Öffnungsbilanzen",
|
||||
"Modify Loans Account": "Darlehenskonto ändern",
|
||||
"N/A": "N / A",
|
||||
"Navigate system selecting entity": "Dadurch kann der Benutzer schnell durch das System navigieren und eine Entität auswählen, während die Suche die Navigation robuster macht.",
|
||||
|
||||
@@ -2095,6 +2095,7 @@
|
||||
"Configuration Wizard": "Configuration Wizard",
|
||||
"Create Guarantor": "Create Guarantor",
|
||||
"Create Journal Entry": "Create Journal Entry",
|
||||
"Credit Balance Refund": "Credit Balance Refund",
|
||||
"Dashboard": "Dashboard",
|
||||
"Delete": "Delete",
|
||||
"Deposit": "Deposit",
|
||||
@@ -2132,7 +2133,8 @@
|
||||
"Prepay Loan": "Prepay Loan",
|
||||
"Products": "Products",
|
||||
"Profile": "Profile",
|
||||
"Recove From Guarantor": "Recovery From Guarantor",
|
||||
"Recover From Guarantor": "Recover From Guarantor",
|
||||
"Recovery Payment": "Recovery Payment",
|
||||
"Reject": "Reject",
|
||||
"Reports": "Reports",
|
||||
"Reschedule": "Reschedule",
|
||||
@@ -2168,7 +2170,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Active",
|
||||
"Closed": "Closed"
|
||||
"Approved": "Approved",
|
||||
"Closed": "Closed",
|
||||
"Closed (rescheduled)": "Closed (rescheduled)",
|
||||
"Closed (written off)": "Closed (written off)",
|
||||
"Overpaid": "Overpaid",
|
||||
"Pending": "Pending",
|
||||
"Rejected": "Rejected",
|
||||
"Submitted and pending approval": "Submitted and pending approval",
|
||||
"Transfer in progress": "Transfer in progress",
|
||||
"Transfer on hold": "Transfer on hold",
|
||||
"Withdrawn": "Withdrawn"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Are you sure you want Unassign Staff",
|
||||
@@ -2522,7 +2534,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Manual journal entry transactions recorded in a journal",
|
||||
"Mifos Initiative": "Mifos Initiative",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Mifos X data-tables allow the user to add custom fields in addition to the built-in fields to a client profile, loan/saving account, group, center or an office.",
|
||||
"Migrate Opening Balances": "This form will be used to migrate opening balances. To know more click:",
|
||||
"Migrate Opening Balances": "Migrate Opening Balances",
|
||||
"Modify Loans Account": "Modify Loans Account",
|
||||
"N/A": "N/A",
|
||||
"Navigate system selecting entity": "This will allow the user to quickly navigate the system selecting entity while searching makes the navigation more robust.",
|
||||
|
||||
@@ -2094,7 +2094,8 @@
|
||||
"Configuration Wizard": "Asistente de configuración",
|
||||
"Create Guarantor": "Crear garante",
|
||||
"Create Journal Entry": "Crear entrada de diario",
|
||||
"Dashboard": "Panel",
|
||||
"Credit Balance Refund": "Reembolsar saldo de crédito",
|
||||
"Dashboard": "Tableros",
|
||||
"Delete": "Borrar",
|
||||
"Deposit": "Depósito",
|
||||
"Disburse": "Desembolsar",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Crédito Prepago",
|
||||
"Products": "Productos",
|
||||
"Profile": "Perfil",
|
||||
"Recove From Guarantor": "Recuperación del garante",
|
||||
"Recover From Guarantor": "Recuperar del Garante",
|
||||
"Recovery Payment": "Pago de recuperación",
|
||||
"Reject": "Rechazar",
|
||||
"Reports": "Informes",
|
||||
"Reschedule": "Reprogramar",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Activo",
|
||||
"Closed": "Cerrado"
|
||||
"Approved": "Aprobado",
|
||||
"Closed": "Cerrado",
|
||||
"Closed (rescheduled)": "Cerrado (reprogramado)",
|
||||
"Closed (written off)": "Cerrado (cancelado)",
|
||||
"Overpaid": "Sobrepagado",
|
||||
"Pending": "Pendiente",
|
||||
"Rejected": "Rechazado",
|
||||
"Submitted and pending approval": "Aprobación pendiente",
|
||||
"Transfer in progress": "Transferencia en progreso",
|
||||
"Transfer on hold": "Transferencia en pausa",
|
||||
"Withdrawn": "Retirado"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "¿Estás seguro de que deseas desasignar al personal?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Transacciones de asiento de diario manuales registradas en un diario",
|
||||
"Mifos Initiative": "Iniciativa Mifos",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Las tablas de datos de Mifos X permiten al usuario agregar campos personalizados además de los campos integrados a un perfil de cliente, cuenta de Crédito/ahorro, grupo, centro u oficina.",
|
||||
"Migrate Opening Balances": "Este formulario se utilizará para migrar saldos iniciales. Para saber más haga clic en:",
|
||||
"Migrate Opening Balances": "Migrar saldos de apertura",
|
||||
"Modify Loans Account": "Modificar cuenta de Créditos",
|
||||
"N/A": "N / A",
|
||||
"Navigate system selecting entity": "Esto permitirá al usuario navegar rápidamente por el sistema seleccionando la entidad mientras la búsqueda hace que la navegación sea más sólida.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Assistant de configuration",
|
||||
"Create Guarantor": "Créer un garant",
|
||||
"Create Journal Entry": "Créer une entrée de journal",
|
||||
"Credit Balance Refund": "Remboursement du solde de crédit",
|
||||
"Dashboard": "Tableau de bord",
|
||||
"Delete": "Supprimer",
|
||||
"Deposit": "Dépôt",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Prêt à remboursement anticipé",
|
||||
"Products": "Des produits",
|
||||
"Profile": "Profil",
|
||||
"Recove From Guarantor": "Récupération auprès du garant",
|
||||
"Recover From Guarantor": "Récupération auprès du garant",
|
||||
"Recovery Payment": "Paiement de récupération",
|
||||
"Reject": "Rejeter",
|
||||
"Reports": "Rapports",
|
||||
"Reschedule": "Reprogrammer",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Actif",
|
||||
"Closed": "Fermé"
|
||||
"Approved": "Approuvé",
|
||||
"Closed": "Fermé",
|
||||
"Closed (rescheduled)": "Fermé (reprogrammé)",
|
||||
"Closed (written off)": "Fermé (radié)",
|
||||
"Overpaid": "Trop payant",
|
||||
"Pending": "En attente",
|
||||
"Rejected": "Rejeté",
|
||||
"Submitted and pending approval": "Approbation soumise et en attente",
|
||||
"Transfer in progress": "Transfert en cours",
|
||||
"Transfer on hold": "Transfert en attente",
|
||||
"Withdrawn": "Retiré"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Êtes-vous sûr de vouloir désassigner le personnel",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Opérations d'écriture de journal manuelle enregistrées dans un journal",
|
||||
"Mifos Initiative": "Initiative Mifos",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Les tables de données Mifos X permettent à l'utilisateur d'ajouter des champs personnalisés en plus des champs intégrés à un profil client, un compte de prêt/épargne, un groupe, un centre ou un bureau.",
|
||||
"Migrate Opening Balances": "Ce formulaire sera utilisé pour migrer les soldes d’ouverture. Pour en savoir plus cliquez :",
|
||||
"Migrate Opening Balances": "Migrer les soldes d'ouverture",
|
||||
"Modify Loans Account": "Modifier le compte de prêts",
|
||||
"N/A": "N / A",
|
||||
"Navigate system selecting entity": "Cela permettra à l'utilisateur de naviguer rapidement dans l'entité de sélection du système tandis que la recherche rendra la navigation plus robuste.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Procedura guidata di configurazione",
|
||||
"Create Guarantor": "Creare Garante",
|
||||
"Create Journal Entry": "Crea voce di diario",
|
||||
"Credit Balance Refund": "Rimborso del saldo del credito",
|
||||
"Dashboard": "Pannello di controllo",
|
||||
"Delete": "Eliminare",
|
||||
"Deposit": "Depositare",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Prestito con pagamento anticipato",
|
||||
"Products": "Prodotti",
|
||||
"Profile": "Profilo",
|
||||
"Recove From Guarantor": "Recupero dal garante",
|
||||
"Recover From Guarantor": "Recupero dal garante",
|
||||
"Recovery Payment": "Pagamento di recupero",
|
||||
"Reject": "Rifiutare",
|
||||
"Reports": "Rapporti",
|
||||
"Reschedule": "Riprogrammare",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Attivo",
|
||||
"Closed": "Chiuso"
|
||||
"Approved": "Approvato",
|
||||
"Closed": "Chiuso",
|
||||
"Closed (rescheduled)": "Chiuso (riprogrammata)",
|
||||
"Closed (written off)": "Chiuso (scritto)",
|
||||
"Overpaid": "Pagato in eccesso",
|
||||
"Pending": "In attesa di",
|
||||
"Rejected": "Respinto",
|
||||
"Submitted and pending approval": "Approvazione presentata e in sospeso",
|
||||
"Transfer in progress": "Trasferimento in corso",
|
||||
"Transfer on hold": "Trasferimento in attesa",
|
||||
"Withdrawn": "Ritirato"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Sei sicuro di voler deassegnare il personale",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Transazioni di registrazione a giornale manuali registrate in un giornale",
|
||||
"Mifos Initiative": "Iniziativa Mifos",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Le tabelle dati di Mifos X consentono all'utente di aggiungere campi personalizzati oltre ai campi integrati al profilo cliente, conto di prestito/risparmio, gruppo, centro o ufficio.",
|
||||
"Migrate Opening Balances": "Questo modulo verrà utilizzato per migrare i saldi di apertura. Per saperne di più clicca:",
|
||||
"Migrate Opening Balances": "Migrare i saldi di apertura",
|
||||
"Modify Loans Account": "Modifica conto prestiti",
|
||||
"N/A": "N / A",
|
||||
"Navigate system selecting entity": "Ciò consentirà all'utente di navigare rapidamente nel sistema selezionando l'entità mentre la ricerca rende la navigazione più affidabile.",
|
||||
|
||||
@@ -779,6 +779,7 @@
|
||||
"Question": "질문",
|
||||
"Recent Activities": "최근 활동",
|
||||
"Recover from Guarantor": "보증인에서 회복하십시오",
|
||||
"Recovery Payment": "복구 지불",
|
||||
"Recover Original Schedule": "원래 일정을 복구하십시오",
|
||||
"Recurring Deposit Accounts": "반복 예금 계좌",
|
||||
"Recurring Deposit Details": "정기입금 내역",
|
||||
@@ -2094,6 +2095,7 @@
|
||||
"Configuration Wizard": "구성 마법사",
|
||||
"Create Guarantor": "보증인 만들기",
|
||||
"Create Journal Entry": "분개 항목 만들기",
|
||||
"Credit Balance Refund": "신용 잔액 환불",
|
||||
"Dashboard": "계기반",
|
||||
"Delete": "삭제",
|
||||
"Deposit": "보증금",
|
||||
@@ -2131,7 +2133,7 @@
|
||||
"Prepay Loan": "선불대출",
|
||||
"Products": "제품",
|
||||
"Profile": "프로필",
|
||||
"Recove From Guarantor": "보증인으로부터의 회복",
|
||||
"Recover From Guarantor": "보증인으로부터의 회복",
|
||||
"Reject": "거부하다",
|
||||
"Reports": "보고서",
|
||||
"Reschedule": "일정 변경",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "활동적인",
|
||||
"Closed": "닫은"
|
||||
"Approved": "승인",
|
||||
"Closed": "닫은",
|
||||
"Closed (rescheduled)": "폐쇄 (일정 조정)",
|
||||
"Closed (written off)": "폐쇄 (서면)",
|
||||
"Overpaid": "초과 지불",
|
||||
"Pending": "보류 중",
|
||||
"Rejected": "거부",
|
||||
"Submitted and pending approval": "제출 및 보류 승인",
|
||||
"Transfer in progress": "진행중인 양도",
|
||||
"Transfer on hold": "보류에 이체하십시오",
|
||||
"Withdrawn": "빼는"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "직원 해제를 하시겠습니까?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "분개장에 기록된 수동 분개 거래",
|
||||
"Mifos Initiative": "미포스 이니셔티브",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Mifos X 데이터 테이블을 사용하면 사용자는 클라이언트 프로필, 대출/저축 계좌, 그룹, 센터 또는 사무실에 기본 제공 필드 외에 사용자 정의 필드를 추가할 수 있습니다.",
|
||||
"Migrate Opening Balances": "이 양식은 기초 잔액을 마이그레이션하는 데 사용됩니다. 자세한 내용을 보려면 다음을 클릭하세요.",
|
||||
"Migrate Opening Balances": "개방 잔액을 마이그레이션합니다",
|
||||
"Modify Loans Account": "대출 계정 수정",
|
||||
"N/A": "해당 없음",
|
||||
"Navigate system selecting entity": "이를 통해 사용자는 시스템 선택 엔터티를 빠르게 탐색할 수 있으며 검색은 탐색을 더욱 강력하게 만듭니다.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Konfigūracijos vedlys",
|
||||
"Create Guarantor": "Sukurti garantą",
|
||||
"Create Journal Entry": "Sukurti žurnalo įrašą",
|
||||
"Credit Balance Refund": "Kredito balanso grąžinimas",
|
||||
"Dashboard": "Prietaisų skydelis",
|
||||
"Delete": "Ištrinti",
|
||||
"Deposit": "Užstatas",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Išankstinio mokėjimo paskola",
|
||||
"Products": "Produktai",
|
||||
"Profile": "Profilis",
|
||||
"Recove From Guarantor": "Išieškojimas iš garanto",
|
||||
"Recover From Guarantor": "Išieškojimas iš garanto",
|
||||
"Recovery Payment": "Išieškojimo mokėjimas",
|
||||
"Reject": "Atmesti",
|
||||
"Reports": "Ataskaitos",
|
||||
"Reschedule": "Suplanuoti iš naujo",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Aktyvus",
|
||||
"Closed": "Uždaryta"
|
||||
"Approved": "Patvirtinta",
|
||||
"Closed": "Uždaryta",
|
||||
"Closed (rescheduled)": "Uždarytas (pertvarkytas)",
|
||||
"Closed (written off)": "Uždarytas (nurašytas)",
|
||||
"Overpaid": "Permokėta",
|
||||
"Pending": "Kol",
|
||||
"Rejected": "Atstumtas",
|
||||
"Submitted and pending approval": "Pateikta ir laukiama patvirtinimo",
|
||||
"Transfer in progress": "Vykdomas perkėlimas",
|
||||
"Transfer on hold": "Perkelti sustabdytas",
|
||||
"Withdrawn": "Pasitraukė"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Ar tikrai norite atšaukti darbuotojo priskyrimą?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Neautomatinio žurnalo įrašymo operacijos, įrašytos į žurnalą",
|
||||
"Mifos Initiative": "Mifos iniciatyva",
|
||||
"Mifos X data-tables allow the user to add custom fields": "„Mifos X“ duomenų lentelės leidžia vartotojui pridėti pasirinktinius laukus be įtaisytųjų laukų prie kliento profilio, paskolos / taupymo sąskaitos, grupės, centro ar biuro.",
|
||||
"Migrate Opening Balances": "Ši forma bus naudojama pradiniams likučiams perkelti. Norėdami sužinoti daugiau, spustelėkite:",
|
||||
"Migrate Opening Balances": "Perkelkite atidarymo balansus",
|
||||
"Modify Loans Account": "Modifikuoti paskolų sąskaitą",
|
||||
"N/A": "N/A",
|
||||
"Navigate system selecting entity": "Tai leis vartotojui greitai naršyti sistemos pasirinkimo objektą, o ieškant naršymas tampa patikimesnis.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Konfigurācijas vednis",
|
||||
"Create Guarantor": "Izveidojiet galvotāju",
|
||||
"Create Journal Entry": "Izveidojiet žurnāla ierakstu",
|
||||
"Credit Balance Refund": "Kredīta atlikuma atmaksa",
|
||||
"Dashboard": "Mērinstrumentu panelis",
|
||||
"Delete": "Dzēst",
|
||||
"Deposit": "Depozīts",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Priekšapmaksas aizdevums",
|
||||
"Products": "Produkti",
|
||||
"Profile": "Profils",
|
||||
"Recove From Guarantor": "Atgūšana no galvotāja",
|
||||
"Recover From Guarantor": "Atgūšana no galvotāja",
|
||||
"Recovery Payment": "Atgūšanas maksājums",
|
||||
"Reject": "Noraidīt",
|
||||
"Reports": "Pārskati",
|
||||
"Reschedule": "Pārplānot",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Aktīvs",
|
||||
"Closed": "Slēgts"
|
||||
"Approved": "Apstiprināts",
|
||||
"Closed": "Slēgts",
|
||||
"Closed (rescheduled)": "Slēgts (pārplānots)",
|
||||
"Closed (written off)": "Slēgts (norakstīts)",
|
||||
"Overpaid": "Pārmaksāts",
|
||||
"Pending": "Līdz",
|
||||
"Rejected": "Noraidīts",
|
||||
"Submitted and pending approval": "Iesniegts un gaidīts apstiprinājums",
|
||||
"Transfer in progress": "Iepriekšējā pārnešana",
|
||||
"Transfer on hold": "Pārnešana aizturēta",
|
||||
"Withdrawn": "Atsaukts"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Vai tiešām vēlaties atcelt darbinieka piešķiršanu?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Manuālā žurnāla ieraksta darījumi, kas ierakstīti žurnālā",
|
||||
"Mifos Initiative": "Mifos iniciatīva",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Mifos X datu tabulas ļauj lietotājam papildus iebūvētajiem laukiem pievienot pielāgotus laukus klienta profilam, aizdevuma/uzkrājuma kontam, grupai, centram vai birojam.",
|
||||
"Migrate Opening Balances": "Šī veidlapa tiks izmantota sākuma bilanču migrēšanai. Lai uzzinātu vairāk, noklikšķiniet:",
|
||||
"Migrate Opening Balances": "Migrēt atveres atlikumus",
|
||||
"Modify Loans Account": "Modificēt aizdevuma kontu",
|
||||
"N/A": "N/A",
|
||||
"Navigate system selecting entity": "Tas ļaus lietotājam ātri pārvietoties pa sistēmas atlases entītiju, kamēr meklēšana padara navigāciju noturīgāku.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "कन्फिगरेसन विजार्ड",
|
||||
"Create Guarantor": "ग्यारेन्टर सिर्जना गर्नुहोस्",
|
||||
"Create Journal Entry": "जर्नल प्रविष्टि सिर्जना गर्नुहोस्",
|
||||
"Credit Balance Refund": "क्रेडिट ब्यालेन्स फिर्ती",
|
||||
"Dashboard": "ड्यासबोर्ड",
|
||||
"Delete": "मेटाउन",
|
||||
"Deposit": "जम्मा",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "पूर्व भुक्तानी ऋण",
|
||||
"Products": "उत्पादनहरू",
|
||||
"Profile": "प्रोफाइल",
|
||||
"Recove From Guarantor": "ग्यारेन्टरबाट रिकभरी",
|
||||
"Recover From Guarantor": "ग्यारेन्टरबाट रिकभरी",
|
||||
"Recovery Payment": "रिकभरी भुक्तानी",
|
||||
"Reject": "अस्वीकार गर्नुहोस्",
|
||||
"Reports": "रिपोर्टहरू",
|
||||
"Reschedule": "पुन: तालिका",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "सक्रिय",
|
||||
"Closed": "बन्द"
|
||||
"Approved": "स्वीकार",
|
||||
"Closed": "बन्द",
|
||||
"Closed (rescheduled)": "बन्द (पुनः शेडवर्ड)",
|
||||
"Closed (written off)": "बन्द (लिखित बन्द)",
|
||||
"Overpaid": "अधिकपात",
|
||||
"Pending": "फैसला बांकी राखेको",
|
||||
"Rejected": "अस्वीकृत",
|
||||
"Submitted and pending approval": "बुझाइएको र अनुमोदन पेन्डिंग",
|
||||
"Transfer in progress": "प्रगतिमा स्थानान्तरण",
|
||||
"Transfer on hold": "होल्डमा स्थानान्तरण गर्नुहोस्",
|
||||
"Withdrawn": "फिर्ता लिन"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "के तपाईं निश्चित हुनुहुन्छ कि तपाईंले कर्मचारीलाई अनपाइन्ट गर्न चाहनुहुन्छ?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "जर्नलमा रेकर्ड गरिएको म्यानुअल जर्नल प्रविष्टि लेनदेन",
|
||||
"Mifos Initiative": "Mifos पहल",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Mifos X डाटा-टेबलहरूले प्रयोगकर्तालाई ग्राहक प्रोफाइल, ऋण/बचत खाता, समूह, केन्द्र वा कार्यालयमा निर्मित क्षेत्रहरू बाहेक अनुकूलन क्षेत्रहरू थप्न अनुमति दिन्छ।",
|
||||
"Migrate Opening Balances": "यो फारम ओपनिङ ब्यालेन्स माइग्रेट गर्न प्रयोग गरिने छ। थप जान्नको लागि क्लिक गर्नुहोस्:",
|
||||
"Migrate Opening Balances": "ओप्रवाहको ब्यालेन्स सारियो",
|
||||
"Modify Loans Account": "ऋण खाता परिमार्जन गर्नुहोस्",
|
||||
"N/A": "N/A",
|
||||
"Navigate system selecting entity": "यसले प्रयोगकर्तालाई प्रणाली चयन गर्ने निकायलाई द्रुत रूपमा नेभिगेट गर्न अनुमति दिनेछ जब खोजी गर्दा नेभिगेसनलाई अझ बलियो बनाउँछ।",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Assistente de configuração",
|
||||
"Create Guarantor": "Criar fiador",
|
||||
"Create Journal Entry": "Criar lançamento contábil manual",
|
||||
"Credit Balance Refund": "Reembolso do saldo do crédito",
|
||||
"Dashboard": "Painel",
|
||||
"Delete": "Excluir",
|
||||
"Deposit": "Depósito",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Empréstimo pré-pago",
|
||||
"Products": "Produtos",
|
||||
"Profile": "Perfil",
|
||||
"Recove From Guarantor": "Recuperação do Fiador",
|
||||
"Recover From Guarantor": "Recuperação do Fiador",
|
||||
"Recovery Payment": "Pagamento de recuperação",
|
||||
"Reject": "Rejeitar",
|
||||
"Reports": "Relatórios",
|
||||
"Reschedule": "Reprogramar",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Ativo",
|
||||
"Closed": "Fechado"
|
||||
"Approved": "Aprovado",
|
||||
"Closed": "Fechado",
|
||||
"Closed (rescheduled)": "Fechado (remarcado)",
|
||||
"Closed (written off)": "Fechado (desligado)",
|
||||
"Overpaid": "Pago em excesso",
|
||||
"Pending": "Pendente",
|
||||
"Rejected": "Rejeitado",
|
||||
"Submitted and pending approval": "Aprovação enviada e pendente",
|
||||
"Transfer in progress": "Transferência em andamento",
|
||||
"Transfer on hold": "Transferência em espera",
|
||||
"Withdrawn": "Retirado"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Tem a certeza que deseja desassociar o funcionário?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Transações de lançamento manual registradas em um diário",
|
||||
"Mifos Initiative": "Iniciativa Mifos",
|
||||
"Mifos X data-tables allow the user to add custom fields": "As tabelas de dados Mifos X permitem ao usuário adicionar campos personalizados além dos campos integrados a um perfil de cliente, empréstimo/conta poupança, grupo, centro ou escritório.",
|
||||
"Migrate Opening Balances": "Este formulário será usado para migrar saldos iniciais. Para saber mais clique:",
|
||||
"Migrate Opening Balances": "Migrar saldos de abertura",
|
||||
"Modify Loans Account": "Modificar conta de empréstimos",
|
||||
"N/A": "N / D",
|
||||
"Navigate system selecting entity": "Isso permitirá que o usuário navegue rapidamente no sistema selecionando a entidade enquanto a pesquisa torna a navegação mais robusta.",
|
||||
|
||||
@@ -2094,6 +2094,7 @@
|
||||
"Configuration Wizard": "Mchawi wa Usanidi",
|
||||
"Create Guarantor": "Unda Mdhamini",
|
||||
"Create Journal Entry": "Unda Ingizo la Jarida",
|
||||
"Credit Balance Refund": "Marejesho ya Mizani ya Mkopo",
|
||||
"Dashboard": "Dashibodi",
|
||||
"Delete": "Futa",
|
||||
"Deposit": "Amana",
|
||||
@@ -2131,7 +2132,8 @@
|
||||
"Prepay Loan": "Lipa Mkopo",
|
||||
"Products": "Bidhaa",
|
||||
"Profile": "Wasifu",
|
||||
"Recove From Guarantor": "Urejeshaji Kutoka kwa Mdhamini",
|
||||
"Recover From Guarantor": "Urejeshaji Kutoka kwa Mdhamini",
|
||||
"Recovery Payment": "Malipo ya uokoaji",
|
||||
"Reject": "Kataa",
|
||||
"Reports": "Ripoti",
|
||||
"Reschedule": "Panga upya",
|
||||
@@ -2167,7 +2169,17 @@
|
||||
},
|
||||
"status": {
|
||||
"Active": "Inayotumika",
|
||||
"Closed": "Imefungwa"
|
||||
"Approved": "Kupitishwa",
|
||||
"Closed": "Imefungwa",
|
||||
"Closed (rescheduled)": "Imefungwa (imewekwa upya)",
|
||||
"Closed (written off)": "Imefungwa (imeandikwa mbali)",
|
||||
"Overpaid": "Kulipwa zaidi",
|
||||
"Pending": "Inasubiri",
|
||||
"Rejected": "Kukataliwa",
|
||||
"Submitted and pending approval": "Imewasilishwa na idhini inayosubiri",
|
||||
"Transfer in progress": "Uhamisho unaendelea",
|
||||
"Transfer on hold": "Uhamisho juu ya kushikilia",
|
||||
"Withdrawn": "Kutolewa"
|
||||
},
|
||||
"dialogContext": {
|
||||
"Are you sure you want Unassign Staff": "Je, una uhakika unataka kuondoa wafanyakazi?",
|
||||
@@ -2521,7 +2533,7 @@
|
||||
"Manual journal entry transactions recorded in a journal": "Uingizaji wa shughuli za jarida kwa mikono iliyorekodiwa kwenye jarida",
|
||||
"Mifos Initiative": "Mpango wa Mifos",
|
||||
"Mifos X data-tables allow the user to add custom fields": "Jedwali la data la Mifos X huruhusu mtumiaji kuongeza sehemu maalum pamoja na sehemu zilizojengewa ndani kwa wasifu wa mteja, akaunti ya mkopo/kuokoa, kikundi, kituo au ofisi.",
|
||||
"Migrate Opening Balances": "Fomu hii itatumika kuhamisha mizani ya ufunguzi. Kujua zaidi bofya:",
|
||||
"Migrate Opening Balances": "Kuhamia mizani ya ufunguzi",
|
||||
"Modify Loans Account": "Rekebisha Akaunti ya Mikopo",
|
||||
"N/A": "N/A",
|
||||
"Navigate system selecting entity": "Hii itamruhusu mtumiaji kuabiri kwa haraka huluki ya kuchagua mfumo huku akitafuta hufanya urambazaji kuwa thabiti zaidi.",
|
||||
|
||||
Reference in New Issue
Block a user