Transactions tab standarization
This commit is contained in:
committed by
Jose Alberto Hernandez
parent
dab5ceec9d
commit
54dc91e0e2
@@ -54,3 +54,4 @@ testem.log
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
.vscode/
|
.vscode/
|
||||||
|
cypress/
|
||||||
|
|||||||
+16
-7
@@ -1,15 +1,24 @@
|
|||||||
import { defineConfig } from 'cypress'
|
import { defineConfig } from "cypress";
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
videosFolder: 'cypress/videos',
|
videosFolder: "cypress/videos",
|
||||||
screenshotsFolder: 'cypress/screenshots',
|
screenshotsFolder: "cypress/screenshots",
|
||||||
fixturesFolder: 'cypress/fixtures',
|
fixturesFolder: "cypress/fixtures",
|
||||||
|
|
||||||
e2e: {
|
e2e: {
|
||||||
// We've imported your old cypress plugins here.
|
// We've imported your old cypress plugins here.
|
||||||
// You may want to clean this up later by importing these.
|
// You may want to clean this up later by importing these.
|
||||||
setupNodeEvents(on, config) {
|
setupNodeEvents(on, config) {
|
||||||
return require('./cypress/plugins/index.ts')(on, config)
|
return require("./cypress/plugins/index.ts")(on, config);
|
||||||
},
|
},
|
||||||
baseUrl: 'http://localhost:4200',
|
baseUrl: "http://localhost:4200",
|
||||||
},
|
},
|
||||||
})
|
|
||||||
|
component: {
|
||||||
|
devServer: {
|
||||||
|
framework: "angular",
|
||||||
|
bundler: "webpack",
|
||||||
|
},
|
||||||
|
specPattern: "**/*.cy.ts",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|||||||
@@ -16,6 +16,19 @@ import { OptionData } from 'app/shared/models/option-data.model';
|
|||||||
return ['NONE', 'Cash', 'Accrual (periodic)', 'Accrual (upfront)'];
|
return ['NONE', 'Cash', 'Accrual (periodic)', 'Accrual (upfront)'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getAccountRuleName(value: string): string {
|
||||||
|
if (value === 'ACCRUAL PERIODIC') {
|
||||||
|
return 'Accrual (periodic)';
|
||||||
|
} else if (value === 'ACCRUAL UPFRONT') {
|
||||||
|
return 'Accrual (upfront)';
|
||||||
|
} else if (value === 'CASH BASED') {
|
||||||
|
return 'Cash';
|
||||||
|
} else if (value === 'NONE') {
|
||||||
|
return 'None';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
public isNoneAccounting(accountingRule: OptionData): boolean {
|
public isNoneAccounting(accountingRule: OptionData): boolean {
|
||||||
return (accountingRule.id === 1);
|
return (accountingRule.id === 1);
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-14
@@ -6,6 +6,8 @@
|
|||||||
<h3>{{"labels.heading.All Transactions" | translate }}</h3>
|
<h3>{{"labels.heading.All Transactions" | translate }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-button m-b-20" fxLayout="row" fxLayoutGap="20px" *ngIf="checkStatus()">
|
<div class="action-button m-b-20" fxLayout="row" fxLayoutGap="20px" *ngIf="checkStatus()">
|
||||||
|
<mat-checkbox [formControl]="hideReversedParam" (click)="hideReversed()" class="accruals">
|
||||||
|
{{"labels.inputs.Hide Reversed" | translate}}</mat-checkbox>
|
||||||
<mat-checkbox [formControl]="hideAccrualsParam" (click)="hideAccruals()" class="accruals">
|
<mat-checkbox [formControl]="hideAccrualsParam" (click)="hideAccruals()" class="accruals">
|
||||||
{{"labels.inputs.Hide Accruals" | translate}}</mat-checkbox>
|
{{"labels.inputs.Hide Accruals" | translate}}</mat-checkbox>
|
||||||
</div>
|
</div>
|
||||||
@@ -20,50 +22,55 @@
|
|||||||
|
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.ID" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.ID" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.id }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" (click)="showTransactions(transaction)"> {{ transaction.id }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="transactionDate">
|
<ng-container matColumnDef="transactionDate">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.date | dateFormat }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" > {{ transaction.date | dateFormat }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="transactionType">
|
<ng-container matColumnDef="transactionType">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Type" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Type" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.transactionType.value }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" > {{ transaction.transactionType.value }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="debit">
|
<ng-container matColumnDef="debit">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Debit" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Debit" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ isDebit(transaction.transactionType) ? transaction.amount : 'N/A'}} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" > {{ isDebit(transaction.transactionType) ? transaction.amount : 'N/A'}} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="credit">
|
<ng-container matColumnDef="credit">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Credit" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Credit" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ !isDebit(transaction.transactionType) ? transaction.amount : 'N/A' }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" > {{ !isDebit(transaction.transactionType) ? transaction.amount : 'N/A' }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="balance">
|
<ng-container matColumnDef="balance">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.runningBalance }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" > {{ transaction.runningBalance }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
|
||||||
<td mat-cell class="center" *matCellDef="let transaction">
|
<td mat-cell class="center" *matCellDef="let transaction">
|
||||||
<button class="account-action-button" mat-raised-button color="primary" (click)="routeEdit($event)" [routerLink]="[transaction.id, 'reciept']">
|
<button mat-icon-button [matMenuTriggerFor]="transactionMenu" aria-label="" class="action-button">
|
||||||
<i class="fa fa-file" matTooltip="View Reciept"></i>
|
<mat-icon>more_vert</mat-icon>
|
||||||
</button>
|
|
||||||
<button class="account-action-button" mat-raised-button color="primary" matTooltip="View Journal Entries"
|
|
||||||
matTooltipPosition="left" (click)="routeEdit($event)"
|
|
||||||
[routerLink]="['/','journal-entry', 'view', 'S'+transaction.id ]">
|
|
||||||
<i class="fa fa-arrow-circle-right"></i>
|
|
||||||
</button>
|
</button>
|
||||||
|
<mat-menu #transactionMenu="matMenu">
|
||||||
|
<button mat-menu-item (click)="showTransactions(transaction)">
|
||||||
|
<mat-icon><fa-icon icon="eye" size="sm"></fa-icon></mat-icon>
|
||||||
|
<span>{{ 'labels.text.View Transaction' | translate}}</span>
|
||||||
|
</button>
|
||||||
|
<button mat-menu-item (click)="routeEdit($event)" [routerLink]="['/','journal-entry', 'view', 'S'+transaction.id ]">
|
||||||
|
<mat-icon><fa-icon icon="table-cells" size="sm"></fa-icon></mat-icon>
|
||||||
|
<span>{{ 'tooltips.View Journal Entries' | translate}}</span>
|
||||||
|
</button>
|
||||||
|
</mat-menu>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" class="select-row" (click)="showTransactions(row)"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;" class="select-row"></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
-15
@@ -33,18 +33,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.active {
|
|
||||||
background-color: $status-active;
|
|
||||||
height: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.linked {
|
|
||||||
background-color: $status-approved;
|
|
||||||
height: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.undo {
|
|
||||||
background-color: $status-active-overdue;
|
|
||||||
height: 4px;
|
|
||||||
}
|
|
||||||
|
|||||||
+42
-32
@@ -1,8 +1,12 @@
|
|||||||
/** Angular Imports */
|
/** Angular Imports */
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { UntypedFormControl } from '@angular/forms';
|
import { UntypedFormControl } from '@angular/forms';
|
||||||
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
|
import { MatPaginator } from '@angular/material/paginator';
|
||||||
|
import { MatSort } from '@angular/material/sort';
|
||||||
import { MatTableDataSource } from '@angular/material/table';
|
import { MatTableDataSource } from '@angular/material/table';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { SavingsAccountTransaction } from 'app/savings/models/savings-account-transaction.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transactions Tab Component.
|
* Transactions Tab Component.
|
||||||
@@ -13,18 +17,19 @@ import { ActivatedRoute, Router } from '@angular/router';
|
|||||||
styleUrls: ['./transactions-tab.component.scss']
|
styleUrls: ['./transactions-tab.component.scss']
|
||||||
})
|
})
|
||||||
export class TransactionsTabComponent implements OnInit {
|
export class TransactionsTabComponent implements OnInit {
|
||||||
|
accountId: string;
|
||||||
status: any;
|
status: any;
|
||||||
/** Transactions Data */
|
/** Transactions Data */
|
||||||
transactionsData: any;
|
transactionsData: any;
|
||||||
/** Temporary Transaction Data */
|
|
||||||
tempTransaction: any;
|
|
||||||
/** Form control to handle accural parameter */
|
/** Form control to handle accural parameter */
|
||||||
hideAccrualsParam: UntypedFormControl;
|
hideAccrualsParam: UntypedFormControl;
|
||||||
|
hideReversedParam: UntypedFormControl;
|
||||||
/** Columns to be displayed in transactions table. */
|
/** Columns to be displayed in transactions table. */
|
||||||
displayedColumns: string[] = ['row', 'id', 'transactionDate', 'transactionType', 'debit', 'credit', 'balance', 'actions'];
|
displayedColumns: string[] = ['row', 'id', 'transactionDate', 'transactionType', 'debit', 'credit', 'balance', 'actions'];
|
||||||
/** Data source for transactions table. */
|
/** Data source for transactions table. */
|
||||||
dataSource: MatTableDataSource<any>;
|
dataSource: MatTableDataSource<any>;
|
||||||
|
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
|
||||||
|
@ViewChild(MatSort, { static: true }) sort: MatSort;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves fixed deposits account data from `resolve`.
|
* Retrieves fixed deposits account data from `resolve`.
|
||||||
@@ -32,28 +37,19 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
* @param {Router} router Router
|
* @param {Router} router Router
|
||||||
*/
|
*/
|
||||||
constructor(private route: ActivatedRoute,
|
constructor(private route: ActivatedRoute,
|
||||||
private router: Router) {
|
private router: Router,
|
||||||
|
public dialog: MatDialog) {
|
||||||
this.route.parent.data.subscribe((data: { fixedDepositsAccountData: any }) => {
|
this.route.parent.data.subscribe((data: { fixedDepositsAccountData: any }) => {
|
||||||
this.transactionsData = data.fixedDepositsAccountData.transactions;
|
this.transactionsData = data.fixedDepositsAccountData.transactions;
|
||||||
this.tempTransaction = this.transactionsData;
|
this.accountId = this.route.parent.snapshot.params['fixedDepositAccountId'];
|
||||||
this.status = data.fixedDepositsAccountData.status.value;
|
this.status = data.fixedDepositsAccountData.status.value;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.hideAccrualsParam = new UntypedFormControl(false);
|
this.hideAccrualsParam = new UntypedFormControl(false);
|
||||||
|
this.hideReversedParam = new UntypedFormControl(false);
|
||||||
this.dataSource = new MatTableDataSource(this.transactionsData);
|
this.dataSource = new MatTableDataSource(this.transactionsData);
|
||||||
if (this.tempTransaction) {
|
|
||||||
this.tempTransaction.forEach((element: any) => {
|
|
||||||
if (this.isAccrual(element.transactionType)) {
|
|
||||||
this.tempTransaction = this.removeItem(this.tempTransaction, element);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private removeItem(arr: any, item: any) {
|
|
||||||
return arr.filter((f: any) => f !== item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,25 +84,36 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
transactionColor(transaction: any): string {
|
hideAccruals() {
|
||||||
|
this.filterTransactions(this.hideReversedParam.value, !this.hideAccrualsParam.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
hideReversed() {
|
||||||
|
this.filterTransactions(!this.hideReversedParam.value, this.hideAccrualsParam.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
filterTransactions(hideReversed: boolean, hideAccrual: boolean): void {
|
||||||
|
let transactions: SavingsAccountTransaction[] = this.transactionsData;
|
||||||
|
|
||||||
|
if (hideAccrual || hideReversed) {
|
||||||
|
transactions = this.transactionsData.filter((t: SavingsAccountTransaction) => {
|
||||||
|
return (!(hideReversed && t.reversed) && !(hideAccrual && t.transactionType.accrual));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.dataSource = new MatTableDataSource(transactions);
|
||||||
|
this.dataSource.paginator = this.paginator;
|
||||||
|
this.dataSource.sort = this.sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
savingsTransactionColor(transaction: SavingsAccountTransaction): string {
|
||||||
if (transaction.reversed) {
|
if (transaction.reversed) {
|
||||||
return 'strike';
|
return 'strike';
|
||||||
}
|
} else if (transaction.transfer) {
|
||||||
if (this.isAccrual(transaction.transactionType)) {
|
return 'transfer';
|
||||||
|
} else if (transaction.transactionType.accrual) {
|
||||||
return 'accrual';
|
return 'accrual';
|
||||||
}
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
private isAccrual(transactionType: any): boolean {
|
|
||||||
return (transactionType.accrual);
|
|
||||||
}
|
|
||||||
|
|
||||||
hideAccruals() {
|
|
||||||
if (!this.hideAccrualsParam.value) {
|
|
||||||
this.dataSource = new MatTableDataSource(this.tempTransaction);
|
|
||||||
} else {
|
} else {
|
||||||
this.dataSource = new MatTableDataSource(this.transactionsData);
|
return '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,4 +125,7 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
$event.stopPropagation();
|
$event.stopPropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
undoTransaction(transactionData: SavingsAccountTransaction): void {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-51
@@ -64,57 +64,9 @@
|
|||||||
{{ transactionData.note }}
|
{{ transactionData.note }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-container *ngIf="transactionData.paymentDetailData">
|
<mifosx-transaction-payment-detail *ngIf="transactionData.paymentDetailData"
|
||||||
|
[paymentDetailData]="transactionData.paymentDetailData">
|
||||||
<div *ngIf="transactionData.paymentDetailData.paymentType" fxFlex="50%" class="mat-body-strong">
|
</mifosx-transaction-payment-detail>
|
||||||
{{"labels.inputs.Payment Type" | translate }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.paymentType" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.paymentType.name }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.accountNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Account No" | translate }}.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.accountNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.accountNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.checkNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Cheque Number" | translate }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.checkNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.checkNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.routingCode" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Routing Code" | translate }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.routingCode" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.routingCode }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.receiptNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Receipt No" | translate }}.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.receiptNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.receiptNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.bankNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Bank No" | translate }}.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.bankNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.bankNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+31
-10
@@ -6,6 +6,8 @@
|
|||||||
<h3>{{"labels.heading.All Transactions" | translate }}</h3>
|
<h3>{{"labels.heading.All Transactions" | translate }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-button m-b-20" fxLayout="row" fxLayoutGap="20px" *ngIf="checkStatus()">
|
<div class="action-button m-b-20" fxLayout="row" fxLayoutGap="20px" *ngIf="checkStatus()">
|
||||||
|
<mat-checkbox [formControl]="hideReversedParam" (click)="hideReversed()" class="accruals">
|
||||||
|
{{"labels.inputs.Hide Reversed" | translate}}</mat-checkbox>
|
||||||
<mat-checkbox [formControl]="hideAccrualsParam" (click)="hideAccruals()" class="accruals">
|
<mat-checkbox [formControl]="hideAccrualsParam" (click)="hideAccruals()" class="accruals">
|
||||||
{{"labels.inputs.Hide Accruals" | translate}}</mat-checkbox>
|
{{"labels.inputs.Hide Accruals" | translate}}</mat-checkbox>
|
||||||
</div>
|
</div>
|
||||||
@@ -20,38 +22,57 @@
|
|||||||
|
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.ID" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.ID" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.id }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)" (click)="showTransactions(transaction)"> {{ transaction.id }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="transactionDate">
|
<ng-container matColumnDef="transactionDate">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.date | dateFormat }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)"> {{ transaction.date | dateFormat }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="transactionType">
|
<ng-container matColumnDef="transactionType">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Type" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Type" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.transactionType.value }} </td>
|
<td mat-cell *matCellDef="let transaction" [ngClass]="savingsTransactionColor(transaction)"> {{ transaction.transactionType.value }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="debit">
|
<ng-container matColumnDef="debit">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Debit" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef class="center"> {{"labels.inputs.Debit" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}">
|
<td mat-cell *matCellDef="let transaction" class="r-amount" [ngClass]="savingsTransactionColor(transaction)">
|
||||||
{{ isDebit(transaction.transactionType) ? transaction.amount : 'N/A'}} </td>
|
{{ isDebit(transaction.transactionType) ? transaction.amount : 'N/A'}} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="credit">
|
<ng-container matColumnDef="credit">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Credit" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef class="center"> {{"labels.inputs.Credit" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}">
|
<td mat-cell *matCellDef="let transaction" class="r-amount" [ngClass]="savingsTransactionColor(transaction)">
|
||||||
{{ !isDebit(transaction.transactionType) ? transaction.amount : 'N/A' }} </td>
|
{{ !isDebit(transaction.transactionType) ? transaction.amount : 'N/A' }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="balance">
|
<ng-container matColumnDef="balance">
|
||||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate }} </th>
|
<th mat-header-cell *matHeaderCellDef class="center"> {{"labels.inputs.Balance" | translate }} </th>
|
||||||
<td mat-cell *matCellDef="let transaction" [ngClass]="{'strike': transaction.reversed}"> {{ transaction.runningBalance }} </td>
|
<td mat-cell *matCellDef="let transaction" class="r-amount" [ngClass]="savingsTransactionColor(transaction)"> {{ transaction.runningBalance | formatNumber }} </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
|
||||||
|
<td mat-cell class="center" *matCellDef="let transaction">
|
||||||
|
<button mat-icon-button [matMenuTriggerFor]="transactionMenu" aria-label="" class="action-button">
|
||||||
|
<mat-icon>more_vert</mat-icon>
|
||||||
|
</button>
|
||||||
|
<mat-menu #transactionMenu="matMenu">
|
||||||
|
<button mat-menu-item (click)="showTransactions(transaction)">
|
||||||
|
<mat-icon><fa-icon icon="eye" size="sm"></fa-icon></mat-icon>
|
||||||
|
<span>{{ 'labels.text.View Transaction' | translate}}</span>
|
||||||
|
</button>
|
||||||
|
<button mat-menu-item (click)="routeEdit($event)" [routerLink]="['/','journal-entry', 'view', 'S'+transaction.id ]">
|
||||||
|
<mat-icon><fa-icon icon="table-cells" size="sm"></fa-icon></mat-icon>
|
||||||
|
<span>{{ 'tooltips.View Journal Entries' | translate}}</span>
|
||||||
|
</button>
|
||||||
|
</mat-menu>
|
||||||
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" class="select-row" (click)="showTransactions(row)"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;" class="select-row" ></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -1,3 +1,5 @@
|
|||||||
|
@import "assets/styles/helper";
|
||||||
|
|
||||||
.tab-container {
|
.tab-container {
|
||||||
padding: 1%;
|
padding: 1%;
|
||||||
margin: 1%;
|
margin: 1%;
|
||||||
@@ -23,8 +25,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.strike {
|
|
||||||
text-decoration: line-through;
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|||||||
+37
-23
@@ -1,8 +1,11 @@
|
|||||||
/** Angular Imports */
|
/** Angular Imports */
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { UntypedFormControl } from '@angular/forms';
|
import { UntypedFormControl } from '@angular/forms';
|
||||||
|
import { MatPaginator } from '@angular/material/paginator';
|
||||||
|
import { MatSort } from '@angular/material/sort';
|
||||||
import { MatTableDataSource } from '@angular/material/table';
|
import { MatTableDataSource } from '@angular/material/table';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { SavingsAccountTransaction } from 'app/savings/models/savings-account-transaction.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transactions Tab Component.
|
* Transactions Tab Component.
|
||||||
@@ -18,14 +21,15 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
status: any;
|
status: any;
|
||||||
/** Transactions Data */
|
/** Transactions Data */
|
||||||
transactionsData: any;
|
transactionsData: any;
|
||||||
/** Temporary Transaction Data */
|
|
||||||
tempTransaction: any;
|
|
||||||
/** Form control to handle accural parameter */
|
/** Form control to handle accural parameter */
|
||||||
hideAccrualsParam: UntypedFormControl;
|
hideAccrualsParam: UntypedFormControl;
|
||||||
|
hideReversedParam: UntypedFormControl;
|
||||||
/** Columns to be displayed in transactions table. */
|
/** Columns to be displayed in transactions table. */
|
||||||
displayedColumns: string[] = ['row', 'id', 'transactionDate', 'transactionType', 'debit', 'credit', 'balance'];
|
displayedColumns: string[] = ['row', 'id', 'transactionDate', 'transactionType', 'debit', 'credit', 'balance', 'actions'];
|
||||||
/** Data source for transactions table. */
|
/** Data source for transactions table. */
|
||||||
dataSource: MatTableDataSource<any>;
|
dataSource: MatTableDataSource<any>;
|
||||||
|
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
|
||||||
|
@ViewChild(MatSort, { static: true }) sort: MatSort;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves recurring deposits account data from `resolve`.
|
* Retrieves recurring deposits account data from `resolve`.
|
||||||
@@ -35,7 +39,6 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
private router: Router) {
|
private router: Router) {
|
||||||
this.route.parent.data.subscribe((data: { recurringDepositsAccountData: any }) => {
|
this.route.parent.data.subscribe((data: { recurringDepositsAccountData: any }) => {
|
||||||
this.transactionsData = data.recurringDepositsAccountData.transactions;
|
this.transactionsData = data.recurringDepositsAccountData.transactions;
|
||||||
this.tempTransaction = this.transactionsData;
|
|
||||||
this.status = data.recurringDepositsAccountData.status.value;
|
this.status = data.recurringDepositsAccountData.status.value;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -43,17 +46,7 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.dataSource = new MatTableDataSource(this.transactionsData);
|
this.dataSource = new MatTableDataSource(this.transactionsData);
|
||||||
this.hideAccrualsParam = new UntypedFormControl(false);
|
this.hideAccrualsParam = new UntypedFormControl(false);
|
||||||
if (this.tempTransaction) {
|
this.hideReversedParam = new UntypedFormControl(false);
|
||||||
this.tempTransaction.forEach((element: any) => {
|
|
||||||
if (this.isAccrual(element.transactionType)) {
|
|
||||||
this.tempTransaction = this.removeItem(this.tempTransaction, element);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private removeItem(arr: any, item: any) {
|
|
||||||
return arr.filter((f: any) => f !== item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,15 +58,36 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
|| transactionType.overdraftInterest === true || transactionType.withholdTax === true;
|
|| transactionType.overdraftInterest === true || transactionType.withholdTax === true;
|
||||||
}
|
}
|
||||||
|
|
||||||
isAccrual(transactionType: any): boolean {
|
hideAccruals() {
|
||||||
return (transactionType.accrual || transactionType.code === 'savingsAccountTransactionType.accrual');
|
this.filterTransactions(this.hideReversedParam.value, !this.hideAccrualsParam.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
hideAccruals() {
|
hideReversed() {
|
||||||
if (!this.hideAccrualsParam.value) {
|
this.filterTransactions(!this.hideReversedParam.value, this.hideAccrualsParam.value);
|
||||||
this.dataSource = new MatTableDataSource(this.tempTransaction);
|
}
|
||||||
|
|
||||||
|
filterTransactions(hideReversed: boolean, hideAccrual: boolean): void {
|
||||||
|
let transactions: SavingsAccountTransaction[] = this.transactionsData;
|
||||||
|
|
||||||
|
if (hideAccrual || hideReversed) {
|
||||||
|
transactions = this.transactionsData.filter((t: SavingsAccountTransaction) => {
|
||||||
|
return (!(hideReversed && t.reversed) && !(hideAccrual && t.transactionType.accrual));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.dataSource = new MatTableDataSource(transactions);
|
||||||
|
this.dataSource.paginator = this.paginator;
|
||||||
|
this.dataSource.sort = this.sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
savingsTransactionColor(transaction: SavingsAccountTransaction): string {
|
||||||
|
if (transaction.reversed) {
|
||||||
|
return 'strike';
|
||||||
|
} else if (transaction.transfer) {
|
||||||
|
return 'transfer';
|
||||||
|
} else if (transaction.transactionType.accrual) {
|
||||||
|
return 'accrual';
|
||||||
} else {
|
} else {
|
||||||
this.dataSource = new MatTableDataSource(this.transactionsData);
|
return '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +106,7 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
* Show Transactions Details
|
* Show Transactions Details
|
||||||
* @param transactionsData Transactions Data
|
* @param transactionsData Transactions Data
|
||||||
*/
|
*/
|
||||||
showTransactions(transactionsData: any) {
|
showTransactions(transactionsData: SavingsAccountTransaction) {
|
||||||
if (transactionsData.transfer) {
|
if (transactionsData.transfer) {
|
||||||
this.router.navigate([`../transfer-funds/account-transfers/${transactionsData.transfer.id}`], { relativeTo: this.route });
|
this.router.navigate([`../transfer-funds/account-transfers/${transactionsData.transfer.id}`], { relativeTo: this.route });
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+4
-52
@@ -61,7 +61,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
{{ transactionData.amount }}
|
{{ transactionData.amount | currency:transactionData.currency.code:'symbol-narrow':'1.2-2'}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" *ngIf="transactionData.note" class="mat-body-strong">
|
<div fxFlex="50%" *ngIf="transactionData.note" class="mat-body-strong">
|
||||||
@@ -72,57 +72,9 @@
|
|||||||
{{ transactionData.note }}
|
{{ transactionData.note }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-container *ngIf="transactionData.paymentDetailData">
|
<mifosx-transaction-payment-detail *ngIf="transactionData.paymentDetailData"
|
||||||
|
[paymentDetailData]="transactionData.paymentDetailData">
|
||||||
<div *ngIf="transactionData.paymentDetailData.paymentType" fxFlex="50%" class="mat-body-strong">
|
</mifosx-transaction-payment-detail>
|
||||||
{{"labels.inputs.Payment Type" | translate }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.paymentType" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.paymentType.name }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.accountNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Account No" | translate }}.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.accountNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.accountNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.checkNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Cheque Number" | translate }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.checkNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.checkNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.routingCode" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Routing Code" | translate }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.routingCode" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.routingCode }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.receiptNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Receipt No" | translate }}.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.receiptNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.receiptNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.bankNumber" fxFlex="50%" class="mat-body-strong">
|
|
||||||
{{"labels.inputs.Bank No" | translate }}.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="transactionData.paymentDetailData.bankNumber" fxFlex="50%">
|
|
||||||
{{ transactionData.paymentDetailData.bankNumber }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+22
@@ -1,3 +1,5 @@
|
|||||||
|
@import "assets/styles/helper";
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
max-width: 37rem;
|
max-width: 37rem;
|
||||||
|
|
||||||
@@ -6,5 +8,25 @@
|
|||||||
margin: 1rem 0;
|
margin: 1rem 0;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mifosx-transaction-payment-detail {
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
background-color: $status-active;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linked {
|
||||||
|
background-color: $status-approved;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.undo {
|
||||||
|
background-color: $status-active-overdue;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
+1
-1
@@ -73,7 +73,7 @@ export class ViewTransactionComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
transactionColor(): string {
|
transactionColor(): string {
|
||||||
if (this.transactionData.manuallyReversed) {
|
if (this.transactionData.reversed) {
|
||||||
return 'undo';
|
return 'undo';
|
||||||
}
|
}
|
||||||
return 'active';
|
return 'active';
|
||||||
|
|||||||
+2
-2
@@ -49,8 +49,8 @@
|
|||||||
|
|
||||||
<mat-checkbox [formControl]="changeRepaymentDate"> {{"labels.inputs.Change Repayment Date" | translate}} </mat-checkbox>
|
<mat-checkbox [formControl]="changeRepaymentDate"> {{"labels.inputs.Change Repayment Date" | translate}} </mat-checkbox>
|
||||||
|
|
||||||
<ng-container *ngIf="changeRepaymentDate.value" (click)="installmentrescheduledDatePicker.open()">
|
<ng-container *ngIf="changeRepaymentDate.value">
|
||||||
<mat-form-field>
|
<mat-form-field (click)="installmentrescheduledDatePicker.open()">
|
||||||
<mat-label>{{"labels.inputs.Installment Rescheduled to" | translate}}</mat-label>
|
<mat-label>{{"labels.inputs.Installment Rescheduled to" | translate}}</mat-label>
|
||||||
<input matInput [min]="minDate" [matDatepicker]="installmentrescheduledDatePicker"
|
<input matInput [min]="minDate" [matDatepicker]="installmentrescheduledDatePicker"
|
||||||
formControlName="adjustedDueDate">
|
formControlName="adjustedDueDate">
|
||||||
|
|||||||
@@ -10,8 +10,11 @@
|
|||||||
<mat-form-field fxFlex="calc(90%-20px)">
|
<mat-form-field fxFlex="calc(90%-20px)">
|
||||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||||
<mat-select required formControlName="currency">
|
<mat-select required formControlName="currency">
|
||||||
<mat-option *ngFor="let currency of currencyData" [value]="currency">
|
<mat-option>
|
||||||
{{ currency.name }}
|
<ngx-mat-select-search [formControl]="filterFormCtrl"></ngx-mat-select-search>
|
||||||
|
</mat-option>
|
||||||
|
<mat-option *ngFor="let currency of currencyData | async" [value]="currency">
|
||||||
|
({{currency.code}}) {{ currency.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error *ngIf="currencyForm.controls.currency.hasError('required')">
|
<mat-error *ngIf="currencyForm.controls.currency.hasError('required')">
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/** Angular Imports */
|
/** Angular Imports */
|
||||||
import { Component, OnInit, TemplateRef, ElementRef, ViewChild, AfterViewInit } from '@angular/core';
|
import { Component, OnInit, TemplateRef, ElementRef, ViewChild, AfterViewInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { MatDialog } from '@angular/material/dialog';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { UntypedFormBuilder, Validators } from '@angular/forms';
|
import { UntypedFormBuilder, UntypedFormControl, Validators } from '@angular/forms';
|
||||||
|
|
||||||
/** Custom Dialogs */
|
/** Custom Dialogs */
|
||||||
import { DeleteDialogComponent } from '../../../shared/delete-dialog/delete-dialog.component';
|
import { DeleteDialogComponent } from '../../../shared/delete-dialog/delete-dialog.component';
|
||||||
@@ -14,6 +14,9 @@ import { ConfigurationWizardService } from '../../../configuration-wizard/config
|
|||||||
|
|
||||||
/** Custom Dialog Component */
|
/** Custom Dialog Component */
|
||||||
import { ContinueSetupDialogComponent } from '../../../configuration-wizard/continue-setup-dialog/continue-setup-dialog.component';
|
import { ContinueSetupDialogComponent } from '../../../configuration-wizard/continue-setup-dialog/continue-setup-dialog.component';
|
||||||
|
import { takeUntil } from 'rxjs/operators';
|
||||||
|
import { ReplaySubject, Subject } from 'rxjs';
|
||||||
|
import { Currency } from 'app/shared/models/general.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manage Currencies component.
|
* Manage Currencies component.
|
||||||
@@ -23,12 +26,12 @@ import { ContinueSetupDialogComponent } from '../../../configuration-wizard/cont
|
|||||||
templateUrl: './manage-currencies.component.html',
|
templateUrl: './manage-currencies.component.html',
|
||||||
styleUrls: ['./manage-currencies.component.scss']
|
styleUrls: ['./manage-currencies.component.scss']
|
||||||
})
|
})
|
||||||
export class ManageCurrenciesComponent implements OnInit, AfterViewInit {
|
export class ManageCurrenciesComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {
|
||||||
|
|
||||||
/** Selected Currencies data. */
|
/** Selected Currencies data. */
|
||||||
selectedCurrencies: any[];
|
selectedCurrencies: any[];
|
||||||
/** Currency options data */
|
/** Currency options data */
|
||||||
currencyData: any;
|
currencyList: Currency[] = [];
|
||||||
/** Currency form */
|
/** Currency form */
|
||||||
currencyForm: any;
|
currencyForm: any;
|
||||||
|
|
||||||
@@ -37,6 +40,15 @@ export class ManageCurrenciesComponent implements OnInit, AfterViewInit {
|
|||||||
@ViewChild('currencyFormRef') currencyFormRef: ElementRef<any>;
|
@ViewChild('currencyFormRef') currencyFormRef: ElementRef<any>;
|
||||||
@ViewChild('templateCurrencyFormRef') templateCurrencyFormRef: TemplateRef<any>;
|
@ViewChild('templateCurrencyFormRef') templateCurrencyFormRef: TemplateRef<any>;
|
||||||
|
|
||||||
|
/** Currency data. */
|
||||||
|
protected currencyData: ReplaySubject<Currency[]> = new ReplaySubject<Currency[]>(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>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the currency data from `resolve`.
|
* Retrieves the currency data from `resolve`.
|
||||||
* @param {ActivatedRoute} route Activated Route
|
* @param {ActivatedRoute} route Activated Route
|
||||||
@@ -53,14 +65,30 @@ export class ManageCurrenciesComponent implements OnInit, AfterViewInit {
|
|||||||
private popoverService: PopoverService) {
|
private popoverService: PopoverService) {
|
||||||
this.route.parent.data.subscribe(( data: { currencies: any }) => {
|
this.route.parent.data.subscribe(( data: { currencies: any }) => {
|
||||||
this.selectedCurrencies = data.currencies.selectedCurrencyOptions;
|
this.selectedCurrencies = data.currencies.selectedCurrencyOptions;
|
||||||
this.currencyData = data.currencies.currencyOptions;
|
this.currencyList = data.currencies.currencyOptions;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
this.filterFormCtrl.valueChanges
|
||||||
|
.pipe(takeUntil(this._onDestroy))
|
||||||
|
.subscribe(() => {
|
||||||
|
this.searchItem();
|
||||||
|
});
|
||||||
this.createCurrencyForm();
|
this.createCurrencyForm();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
this._onDestroy.next();
|
||||||
|
this._onDestroy.complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnChanges(changes: SimpleChanges): void {
|
||||||
|
if (this.currencyList) {
|
||||||
|
this.currencyData.next(this.currencyList.slice());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the currency form.
|
* Creates the currency form.
|
||||||
*/
|
*/
|
||||||
@@ -70,6 +98,20 @@ export class ManageCurrenciesComponent implements OnInit, AfterViewInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
searchItem(): void {
|
||||||
|
if (this.currencyList) {
|
||||||
|
const search: string = this.filterFormCtrl.value.toLowerCase();
|
||||||
|
|
||||||
|
if (!search) {
|
||||||
|
this.currencyData.next(this.currencyList.slice());
|
||||||
|
} else {
|
||||||
|
this.currencyData.next(this.currencyList.filter((option: Currency) => {
|
||||||
|
return option.name.toLowerCase().indexOf(search) >= 0 || option.code.toLowerCase().indexOf(search) >= 0;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a new currency to the list.
|
* Adds a new currency to the list.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CASHIER'">
|
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CASHIER'">
|
||||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||||
Edit
|
{{'labels.buttons.Edit' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button color="warn" (click)="deleteCashier()" *mifosxHasPermission="'DELETECASHIER_TELLER'">
|
<button mat-raised-button color="warn" (click)="deleteCashier()" *mifosxHasPermission="'DELETECASHIER_TELLER'">
|
||||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>
|
<fa-icon icon="trash" class="m-r-10"></fa-icon>
|
||||||
Delete
|
{{'labels.buttons.Delete' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
<div fxLayout="row wrap" class="content">
|
<div fxLayout="row wrap" class="content">
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
Name
|
{{'labels.inputs.Name' | translate}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
Teller
|
{{'labels.inputs.Teller' | translate}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header" *ngIf="cashierData.description !== ''">
|
<div fxFlex="50%" class="header" *ngIf="cashierData.description !== ''">
|
||||||
Description
|
{{'labels.inputs.Description' | translate}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" *ngIf="cashierData.description !== ''">
|
<div fxFlex="50%" *ngIf="cashierData.description !== ''">
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
Start Date
|
{{'labels.inputs.Start Date' | translate}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
End Date
|
{{'labels.inputs.End Date' | translate}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="header">
|
<div fxFlex="50%" class="header">
|
||||||
Full Day?
|
{{'labels.inputs.Full Day?' | translate}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
@@ -69,7 +69,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
|
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||||
|
<button type="button" mat-raised-button [routerLink]="['..']">{{"labels.buttons.Back" | translate}}</button>
|
||||||
|
</mat-card-actions>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+9
-1
@@ -1,6 +1,14 @@
|
|||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||||
|
<!--
|
||||||
|
<button mat-raised-button color="primary" *mifosxHasPermission="'UPDATE_LOANPRODUCT'" (click)="copyProduct()">
|
||||||
|
<fa-icon icon="copy" class="m-r-10"></fa-icon>{{'labels.buttons.Create' | translate}} {{'labels.text.Copy' | translate}}
|
||||||
|
</button>
|
||||||
|
-->
|
||||||
|
<button mat-raised-button color="primary" *mifosxHasPermission="'UPDATE_LOANPRODUCT'" (click)="exportDefinition()">
|
||||||
|
<fa-icon icon="download" class="m-r-10"></fa-icon>{{'labels.buttons.Export' | translate}}
|
||||||
|
</button>
|
||||||
<button mat-raised-button color="primary" [routerLink]="['../edit']" *mifosxHasPermission="'UPDATE_LOANPRODUCT'">
|
<button mat-raised-button color="primary" [routerLink]="['../edit']" *mifosxHasPermission="'UPDATE_LOANPRODUCT'">
|
||||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>Edit
|
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{'labels.buttons.Edit' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+98
-2
@@ -1,6 +1,13 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { LoanProduct } from '../../models/loan-product.model';
|
import { LoanProduct } from '../../models/loan-product.model';
|
||||||
|
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
|
||||||
|
import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
|
||||||
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
|
import { ProductsService } from 'app/products/products.service';
|
||||||
|
import { SettingsService } from 'app/settings/settings.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-general-tab',
|
selector: 'mifosx-general-tab',
|
||||||
@@ -12,7 +19,12 @@ export class GeneralTabComponent implements OnInit {
|
|||||||
loanProduct: LoanProduct;
|
loanProduct: LoanProduct;
|
||||||
useDueForRepaymentsConfigurations = false;
|
useDueForRepaymentsConfigurations = false;
|
||||||
|
|
||||||
constructor(private route: ActivatedRoute) {
|
constructor(private route: ActivatedRoute,
|
||||||
|
private router: Router,
|
||||||
|
private dialog: MatDialog,
|
||||||
|
private productsService: ProductsService,
|
||||||
|
private settingsService: SettingsService,
|
||||||
|
private translateService: TranslateService) {
|
||||||
this.route.data.subscribe((data: { loanProduct: any }) => {
|
this.route.data.subscribe((data: { loanProduct: any }) => {
|
||||||
this.loanProduct = data.loanProduct;
|
this.loanProduct = data.loanProduct;
|
||||||
this.useDueForRepaymentsConfigurations = (!this.loanProduct.dueDaysForRepaymentEvent && !this.loanProduct.overDueDaysForRepaymentEvent);
|
this.useDueForRepaymentsConfigurations = (!this.loanProduct.dueDaysForRepaymentEvent && !this.loanProduct.overDueDaysForRepaymentEvent);
|
||||||
@@ -23,4 +35,88 @@ export class GeneralTabComponent implements OnInit {
|
|||||||
this.loanProduct.allowAttributeConfiguration = Object.values(this.loanProduct.allowAttributeOverrides).some((attribute: boolean) => attribute);
|
this.loanProduct.allowAttributeConfiguration = Object.values(this.loanProduct.allowAttributeOverrides).some((attribute: boolean) => attribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exportDefinition(): void {
|
||||||
|
const product = this.loanProduct;
|
||||||
|
delete product['id'];
|
||||||
|
const fileName: string = product.name.replace(' ', '_') + '.json';
|
||||||
|
const link = document.createElement('a');
|
||||||
|
link.setAttribute('href', 'data:text/plain;charset=utf-u,' + encodeURIComponent(JSON.stringify(product, null, 2)));
|
||||||
|
link.setAttribute('download', fileName);
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
}
|
||||||
|
|
||||||
|
copyProduct(): void {
|
||||||
|
const productNameTmp = `${this.loanProduct.name.replace(' ', '_')}_${this.translateService.instant('labels.text.Copy')}`;
|
||||||
|
const productCopy = JSON.parse(JSON.stringify(this.loanProduct));
|
||||||
|
|
||||||
|
const formfields: FormfieldBase[] = [
|
||||||
|
new InputBase({
|
||||||
|
controlName: 'name',
|
||||||
|
label: this.translateService.instant('labels.inputs.Name'),
|
||||||
|
value: productNameTmp,
|
||||||
|
type: 'text',
|
||||||
|
required: true,
|
||||||
|
order: 2
|
||||||
|
}),
|
||||||
|
new InputBase({
|
||||||
|
controlName: 'shortName',
|
||||||
|
label: this.translateService.instant('labels.inputs.Short Name'),
|
||||||
|
value: '',
|
||||||
|
type: 'text',
|
||||||
|
required: true,
|
||||||
|
order: 2
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
const data = {
|
||||||
|
title: `${this.translateService.instant('labels.buttons.Create')} ${this.translateService.instant('labels.inputs.Loan Product')}`,
|
||||||
|
layout: { addButtonText: this.translateService.instant('labels.buttons.Create') },
|
||||||
|
formfields: formfields
|
||||||
|
};
|
||||||
|
const createProductDialogRef = this.dialog.open(FormDialogComponent, { data });
|
||||||
|
createProductDialogRef.afterClosed().subscribe((productResponse: any) => {
|
||||||
|
if (productResponse.data) {
|
||||||
|
|
||||||
|
productCopy['name'] = productResponse.data.value['name'];
|
||||||
|
productCopy['shortName'] = productResponse.data.value['shortName'];
|
||||||
|
productCopy['delinquencyBucketId'] = productCopy['delinquencyBucket'] ? productCopy['delinquencyBucket']['id'] : null;
|
||||||
|
productCopy['currencyCode'] = productCopy['currency'] ? productCopy['currency']['code'] : null;
|
||||||
|
productCopy['interestRatePerPeriod'] = productCopy['annualInterestRate'];
|
||||||
|
productCopy['transactionProcessingStrategyCode'] = productCopy['transactionProcessingStrategyName'];
|
||||||
|
productCopy['allowPartialPeriodInterestCalcualtion'] = productCopy['allowPartialPeriodInterestCalculation'];
|
||||||
|
productCopy['locale'] = this.settingsService.language.code;
|
||||||
|
|
||||||
|
let valueTmp: any = productCopy['daysInMonthType']['value'];
|
||||||
|
productCopy['daysInMonthType'] = valueTmp;
|
||||||
|
valueTmp = productCopy['daysInYearType']['value'];
|
||||||
|
productCopy['daysInYearType'] = valueTmp;
|
||||||
|
valueTmp = productCopy['amortizationType']['id'];
|
||||||
|
productCopy['amortizationType'] = valueTmp;
|
||||||
|
|
||||||
|
delete productCopy['id'];
|
||||||
|
delete productCopy['advancedPaymentAllocationTransactionTypes'];
|
||||||
|
delete productCopy['advancedPaymentAllocationTypes'];
|
||||||
|
delete productCopy['creditAllocationTransactionTypes'];
|
||||||
|
delete productCopy['creditAllocationAllocationTypes'];
|
||||||
|
delete productCopy['delinquencyBucketOptions'];
|
||||||
|
delete productCopy['allowAttributeConfiguration'];
|
||||||
|
delete productCopy['status'];
|
||||||
|
delete productCopy['delinquencyBucket'];
|
||||||
|
delete productCopy['currency'];
|
||||||
|
delete productCopy['isRatesEnabled'];
|
||||||
|
delete productCopy['annualInterestRate'];
|
||||||
|
delete productCopy['transactionProcessingStrategyName'];
|
||||||
|
delete productCopy['allowPartialPeriodInterestCalculation'];
|
||||||
|
delete productCopy['advancedPaymentAllocationFutureInstallmentAllocationRules'];
|
||||||
|
|
||||||
|
this.productsService.createLoanProduct(productCopy)
|
||||||
|
.subscribe((response: any) => {
|
||||||
|
this.router.navigate(['../', response.resourceId], { relativeTo: this.route });
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
<div class="mat-elevation-z1 m-b-25" [hidden]="!accountWithTransactions">
|
<div class="mat-elevation-z1 m-b-25" [hidden]="!accountWithTransactions">
|
||||||
<div fxLayout="row" fxLayoutAlign="start">
|
<div fxLayout="row" fxLayoutAlign="start">
|
||||||
<div class="m-b-10">
|
<div class="m-b-10">
|
||||||
<h3>{{"labels.headings.All Transactions" | translate }}</h3>
|
<h3>{{"labels.heading.All Transactions" | translate }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-button m-b-20" fxLayout="row" fxLayoutGap="20px" *ngIf="checkStatus()">
|
<div class="action-button m-b-20" fxLayout="row" fxLayoutGap="20px" *ngIf="checkStatus()">
|
||||||
<mat-checkbox [formControl]="hideReversedParam" (click)="hideReversed()" class="accruals">
|
<mat-checkbox [formControl]="hideReversedParam" (click)="hideReversed()" class="accruals">
|
||||||
|
|||||||
@@ -25,12 +25,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.strike {
|
|
||||||
text-decoration: line-through;
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.transfer {
|
|
||||||
color: $status-transfer;
|
|
||||||
}
|
|
||||||
+14
-28
@@ -26,8 +26,6 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
status: any;
|
status: any;
|
||||||
/** Transactions Data */
|
/** Transactions Data */
|
||||||
transactionsData: SavingsAccountTransaction[] = [];
|
transactionsData: SavingsAccountTransaction[] = [];
|
||||||
/** Temporary Transaction Data */
|
|
||||||
tempTransaction: any;
|
|
||||||
/** Form control to handle accural parameter */
|
/** Form control to handle accural parameter */
|
||||||
hideAccrualsParam: UntypedFormControl;
|
hideAccrualsParam: UntypedFormControl;
|
||||||
hideReversedParam: UntypedFormControl;
|
hideReversedParam: UntypedFormControl;
|
||||||
@@ -54,7 +52,6 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
private dateUtils: Dates) {
|
private dateUtils: Dates) {
|
||||||
this.route.parent.parent.data.subscribe((data: { savingsAccountData: any }) => {
|
this.route.parent.parent.data.subscribe((data: { savingsAccountData: any }) => {
|
||||||
this.transactionsData = data.savingsAccountData.transactions;
|
this.transactionsData = data.savingsAccountData.transactions;
|
||||||
this.tempTransaction = this.transactionsData;
|
|
||||||
this.status = data.savingsAccountData.status.value;
|
this.status = data.savingsAccountData.status.value;
|
||||||
});
|
});
|
||||||
this.accountId = this.route.parent.parent.snapshot.params['savingAccountId'];
|
this.accountId = this.route.parent.parent.snapshot.params['savingAccountId'];
|
||||||
@@ -71,17 +68,6 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
this.accountWithTransactions = (this.transactionsData && this.transactionsData.length > 0);
|
this.accountWithTransactions = (this.transactionsData && this.transactionsData.length > 0);
|
||||||
this.dataSource.paginator = this.paginator;
|
this.dataSource.paginator = this.paginator;
|
||||||
this.dataSource.sort = this.sort;
|
this.dataSource.sort = this.sort;
|
||||||
if (this.tempTransaction) {
|
|
||||||
this.tempTransaction.forEach((element: any) => {
|
|
||||||
if (this.isAccrual(element.transactionType)) {
|
|
||||||
this.tempTransaction = this.removeItem(this.tempTransaction, element);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private removeItem(arr: any, item: any) {
|
|
||||||
return arr.filter((f: any) => f !== item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -129,21 +115,19 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hideAccruals() {
|
hideAccruals() {
|
||||||
if (!this.hideAccrualsParam.value) {
|
this.filterTransactions(this.hideReversedParam.value, !this.hideAccrualsParam.value);
|
||||||
this.dataSource = new MatTableDataSource(this.tempTransaction);
|
|
||||||
} else {
|
|
||||||
this.dataSource = new MatTableDataSource(this.transactionsData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hideReversed() {
|
hideReversed() {
|
||||||
|
this.filterTransactions(!this.hideReversedParam.value, this.hideAccrualsParam.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
filterTransactions(hideReversed: boolean, hideAccrual: boolean): void {
|
||||||
let transactions: SavingsAccountTransaction[] = this.transactionsData;
|
let transactions: SavingsAccountTransaction[] = this.transactionsData;
|
||||||
if (!this.hideReversedParam.value) {
|
|
||||||
transactions = [];
|
if (hideAccrual || hideReversed) {
|
||||||
this.transactionsData.forEach((t: SavingsAccountTransaction) => {
|
transactions = this.transactionsData.filter((t: SavingsAccountTransaction) => {
|
||||||
if (!t.reversed) {
|
return (!(hideReversed && t.reversed) && !(hideAccrual && t.transactionType.accrual));
|
||||||
transactions.push(t);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.dataSource = new MatTableDataSource(transactions);
|
this.dataSource = new MatTableDataSource(transactions);
|
||||||
@@ -154,11 +138,13 @@ export class TransactionsTabComponent implements OnInit {
|
|||||||
savingsTransactionColor(transaction: SavingsAccountTransaction): string {
|
savingsTransactionColor(transaction: SavingsAccountTransaction): string {
|
||||||
if (transaction.reversed) {
|
if (transaction.reversed) {
|
||||||
return 'strike';
|
return 'strike';
|
||||||
}
|
} else if (transaction.transfer) {
|
||||||
if (transaction.transfer) {
|
|
||||||
return 'transfer';
|
return 'transfer';
|
||||||
|
} else if (transaction.transactionType.accrual) {
|
||||||
|
return 'accrual';
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
return '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
undoTransaction(transactionData: SavingsAccountTransaction): void {
|
undoTransaction(transactionData: SavingsAccountTransaction): void {
|
||||||
|
|||||||
+5
-3
@@ -29,6 +29,8 @@
|
|||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
|
|
||||||
<div fxLayout="row wrap" class="content">
|
<div fxLayout="row wrap" class="content">
|
||||||
|
<div fxFlex="100%" [ngClass]="transactionColor()">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="mat-body-strong">
|
<div fxFlex="50%" class="mat-body-strong">
|
||||||
{{"labels.inputs.Id" | translate}}
|
{{"labels.inputs.Id" | translate}}
|
||||||
@@ -59,15 +61,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
{{ transactionData.currency.name }}
|
{{ transactionData.currency.displayLabel }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="mat-body-strong">
|
<div fxFlex="50%" class="mat-body-strong">
|
||||||
{{"labels.inputs.Amount" | translate}}
|
{{"labels.inputs.Amount" | translate }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%">
|
<div fxFlex="50%">
|
||||||
{{ transactionData.amount | currency:transactionData.currency.code }}
|
{{ transactionData.amount | currency:transactionData.currency.code:'symbol-narrow':'1.2-2' }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="transactionData.note">
|
<div fxFlex="50%" class="mat-body-strong" *ngIf="transactionData.note">
|
||||||
|
|||||||
+17
@@ -1,3 +1,5 @@
|
|||||||
|
@import "assets/styles/helper";
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
max-width: 37rem;
|
max-width: 37rem;
|
||||||
.content {
|
.content {
|
||||||
@@ -12,3 +14,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
background-color: $status-active;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linked {
|
||||||
|
background-color: $status-approved;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.undo {
|
||||||
|
background-color: $status-active-overdue;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
+6
@@ -71,4 +71,10 @@ export class SavingsTransactionGeneralTabComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transactionColor(): string {
|
||||||
|
if (this.transactionData.reversed) {
|
||||||
|
return 'undo';
|
||||||
|
}
|
||||||
|
return 'active';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
<nav mat-tab-nav-bar class="navigation-tabs">
|
<nav mat-tab-nav-bar class="navigation-tabs">
|
||||||
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
|
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
|
||||||
[active]="general.isActive">
|
[active]="general.isActive">
|
||||||
General
|
{{'labels.heading.General' | translate}}
|
||||||
</a>
|
</a>
|
||||||
<ng-container *ngFor="let entityDatatable of entityDatatables">
|
<ng-container *ngFor="let entityDatatable of entityDatatables">
|
||||||
<a mat-tab-link [routerLink]="['./datatables',entityDatatable.registeredTableName]" routerLinkActive
|
<a mat-tab-link [routerLink]="['./datatables',entityDatatable.registeredTableName]" routerLinkActive
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<div fxFlexFill *ngIf="accountingRule" fxLayout="row wrap" fxLayout.lt-md="column">
|
<div fxFlexFill *ngIf="accountingRule" fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
<span fxFlex="40%">{{'labels.inputs.Type' | translate}}:</span>
|
<span fxFlex="40%">{{'labels.inputs.Type' | translate}}:</span>
|
||||||
<span fxFlex="60%">{{'labels.accounting.' + accountingRule.value | translate}}</span>
|
<span fxFlex="60%">{{'labels.accounting.' + getAccountingRuleName(accountingRule.value) | translate}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div fxFlexFill *ngIf="isCashOrAccrualAccounting()" fxLayout="row wrap" fxLayout.lt-md="column">
|
<div fxFlexFill *ngIf="isCashOrAccrualAccounting()" fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|||||||
+4
@@ -31,4 +31,8 @@ export class ViewSavingsAccountingDetailsComponent implements OnInit {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAccountingRuleName(value: string): string {
|
||||||
|
return this.accounting.getAccountRuleName(value);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-dialog-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
<mat-dialog-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||||
<button mat-raised-button mat-dialog-close>{{ layout.cancelButtonText }}</button>
|
<button mat-raised-button mat-dialog-close>{{ 'labels.buttons.' + layout.cancelButtonText | translate }}</button>
|
||||||
<button mat-raised-button color="primary" [mat-dialog-close]="{ data: form }" [disabled]="!form.valid || form.pristine">{{ layout.addButtonText }}</button>
|
<button mat-raised-button color="primary" [mat-dialog-close]="{ data: form }" [disabled]="!form.valid || form.pristine">{{ 'labels.buttons.' + layout.addButtonText | translate }}</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<mat-card class="container-card">
|
<mat-card class="container-card">
|
||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
<mat-tab-group #tabGroup mat-align-tabs="center" (selectedTabChange)="onJobTabChange($event)">
|
<mat-tab-group #tabGroup mat-align-tabs="center" (selectedTabChange)="onJobTabChange($event)">
|
||||||
<mat-tab label="Scheduler Jobs">
|
<mat-tab label="{{title('Scheduler Jobs')}}">
|
||||||
<mifosx-manage-scheduler-jobs></mifosx-manage-scheduler-jobs>
|
<mifosx-manage-scheduler-jobs></mifosx-manage-scheduler-jobs>
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
<mat-tab label="Workflow Jobs">
|
<mat-tab label="{{title('Workflow Jobs')}}">
|
||||||
<mifosx-workflow-jobs></mifosx-workflow-jobs>
|
<mifosx-workflow-jobs></mifosx-workflow-jobs>
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
<mat-tab label="COB">
|
<mat-tab label="{{title('COB')}}">
|
||||||
<mifosx-cob-workflow [isCatchUpRunning]="isCatchUpRunning"></mifosx-cob-workflow>
|
<mifosx-cob-workflow [isCatchUpRunning]="isCatchUpRunning"></mifosx-cob-workflow>
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
</mat-tab-group>
|
</mat-tab-group>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { MatTabChangeEvent } from '@angular/material/tabs';
|
import { MatTabChangeEvent } from '@angular/material/tabs';
|
||||||
import { SystemService } from '../system.service';
|
import { SystemService } from '../system.service';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-manage-jobs',
|
selector: 'mifosx-manage-jobs',
|
||||||
@@ -11,7 +12,8 @@ export class ManageJobsComponent implements OnInit {
|
|||||||
/** Process running flag */
|
/** Process running flag */
|
||||||
isCatchUpRunning = true;
|
isCatchUpRunning = true;
|
||||||
|
|
||||||
constructor(private systemService: SystemService) { }
|
constructor(private systemService: SystemService,
|
||||||
|
private translateService: TranslateService) { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
}
|
}
|
||||||
@@ -24,4 +26,8 @@ export class ManageJobsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
title(label: string) {
|
||||||
|
return this.translateService.instant('labels.inputs.' + label);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<h2>Job: {{ displayName }}</h2>
|
<h2>{{'labels.inputs.Job' | translate}}: {{ displayName }}</h2>
|
||||||
<table mat-table [dataSource]="updatedJobParameters">
|
<table mat-table [dataSource]="updatedJobParameters">
|
||||||
<ng-container matColumnDef="parameterName">
|
<ng-container matColumnDef="parameterName">
|
||||||
<th mat-header-cell *matHeaderCellDef>Parameter Name</th>
|
<th mat-header-cell *matHeaderCellDef>{{'labels.inputs.Parameter Name' | translate}}</th>
|
||||||
<td mat-cell *matCellDef="let element; index as i">
|
<td mat-cell *matCellDef="let element; index as i">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input matInput type="text" placeholder="Parameter Name" [(ngModel)]="element.parameterName" />
|
<input matInput type="text" placeholder="Parameter Name" [(ngModel)]="element.parameterName" />
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="parameterValue">
|
<ng-container matColumnDef="parameterValue">
|
||||||
<th mat-header-cell *matHeaderCellDef>Parameter Value</th>
|
<th mat-header-cell *matHeaderCellDef>{{'labels.inputs.Parameter Value' | translate}}</th>
|
||||||
<td mat-cell *matCellDef="let element; index as i">
|
<td mat-cell *matCellDef="let element; index as i">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input matInput type="text" placeholder="Parameter Value" [(ngModel)]="element.parameterValue" />
|
<input matInput type="text" placeholder="Parameter Value" [(ngModel)]="element.parameterValue" />
|
||||||
@@ -36,6 +36,6 @@
|
|||||||
|
|
||||||
<button mat-button (click)="addParameter()">
|
<button mat-button (click)="addParameter()">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add Parameter
|
{{'labels.buttons.Add Parameter' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
<h2 mat-dialog-title><span class="m-r-10">{{'labels.inputs.Job Name' | translate}}:</span>{{job.displayName}}</h2>
|
||||||
|
<mat-dialog-content>
|
||||||
|
<table class="m-b-5">
|
||||||
|
<tbody>
|
||||||
|
<tr class="m-b-20">
|
||||||
|
<td class="header">{{'labels.inputs.Start Time' | translate}}</td>
|
||||||
|
<td>{{job.lastRunHistory.jobRunStartTime | datetimeFormat}}</td>
|
||||||
|
<td class="header">{{'labels.inputs.End Time' | translate}}</td>
|
||||||
|
<td>{{job.lastRunHistory.jobRunEndTime | datetimeFormat}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4" class="message">
|
||||||
|
<div #content class="note-field" [class.show]="show" [class.note-text]="content.scrollHeight > 18">
|
||||||
|
<span>{{job.lastRunHistory.jobRunErrorLog}}</span>
|
||||||
|
</div>
|
||||||
|
<button mat-flat-button *ngIf="content.scrollHeight > 18" class="show-button" (click)="show = !show">
|
||||||
|
{{ buttonLabel() }}
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</mat-dialog-content>
|
||||||
|
|
||||||
|
<mat-dialog-actions align="center">
|
||||||
|
<button mat-raised-button mat-dialog-close>{{"labels.buttons.Close" | translate}}</button>
|
||||||
|
</mat-dialog-actions>
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
.message {
|
||||||
|
height: auto;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span:not(.note){
|
||||||
|
font-size: .9rem;
|
||||||
|
line-height: 14px
|
||||||
|
}
|
||||||
|
|
||||||
|
.note-text {
|
||||||
|
height: 7.95rem;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.note-field:not(.show)::after {
|
||||||
|
content: '...';
|
||||||
|
padding-left: .5rem;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show {
|
||||||
|
overflow: visible;
|
||||||
|
text-overflow: none;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background: transparent;
|
||||||
|
font-size: small;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { ErrorLogPopoverComponent } from './error-log-popover.component';
|
||||||
|
|
||||||
|
describe('ErrorLogPopoverComponent', () => {
|
||||||
|
let component: ErrorLogPopoverComponent;
|
||||||
|
let fixture: ComponentFixture<ErrorLogPopoverComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
declarations: [ ErrorLogPopoverComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(ErrorLogPopoverComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
|
import { SchedulerJob } from '../models/scheduler-job.model';
|
||||||
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
|
|
||||||
|
interface ErrorJobDataType {
|
||||||
|
job: SchedulerJob;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'mifosx-error-log-popover',
|
||||||
|
templateUrl: './error-log-popover.component.html',
|
||||||
|
styleUrls: ['./error-log-popover.component.scss']
|
||||||
|
})
|
||||||
|
export class ErrorLogPopoverComponent implements OnInit {
|
||||||
|
show = false;
|
||||||
|
|
||||||
|
/* Initialize Selected Job */
|
||||||
|
job: SchedulerJob;
|
||||||
|
|
||||||
|
constructor(@Inject(MAT_DIALOG_DATA) public data: ErrorJobDataType,
|
||||||
|
private translateService: TranslateService) { }
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.job = this.data.job;
|
||||||
|
}
|
||||||
|
|
||||||
|
buttonLabel(): string {
|
||||||
|
const label: string = this.show ? 'Show less' : 'Show more';
|
||||||
|
return this.translateService.instant('labels.buttons.' + label);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
<div class="container m-b-20 space-top" fxLayout="row" fxLayoutGap="20px">
|
<div class="container m-b-20 space-top" fxLayout="row" fxLayoutGap="20px">
|
||||||
<div #schedulerStatus>
|
<div #schedulerStatus>
|
||||||
<h2 class="no-m">Scheduler Status:<span class="m-l-20 m-r-20">{{ schedulerActive ? 'Active' : 'Inactive' }}</span>
|
<h2 class="no-m">{{'labels.heading.Scheduler Status' | translate}}:<span class="m-l-20 m-r-20">{{ schedulerActive ? 'Active' : 'Inactive' }}</span>
|
||||||
</h2>
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
<button mat-raised-button class="suspend" (click)="suspendScheduler()" *ngIf="schedulerActive">
|
<button mat-raised-button class="suspend" (click)="suspendScheduler()" *ngIf="schedulerActive">
|
||||||
<fa-icon icon="times-circle" class="m-r-10"></fa-icon>
|
<fa-icon icon="times-circle" class="m-r-10"></fa-icon>
|
||||||
Suspend
|
{{'labels.buttons.Suspend' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button class="activate" (click)="activateScheduler()" *ngIf="!schedulerActive">
|
<button mat-raised-button class="activate" (click)="activateScheduler()" *ngIf="!schedulerActive">
|
||||||
<fa-icon icon="times-circle" class="m-r-10"></fa-icon>
|
<fa-icon icon="times-circle" class="m-r-10"></fa-icon>
|
||||||
Activate
|
{{'labels.buttons.Activate' | translate}}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -23,14 +23,18 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container space-top" fxLayout="row" fxLayoutGap="20px">
|
<div class="space-top" fxLayout="row" fxLayoutGap="20px">
|
||||||
<button mat-raised-button color="primary" (click)="runSelectedJobs()" [disabled]="!isAnyJobSelected()">
|
<button mat-raised-button color="primary" (click)="runSelectedJobs()" [disabled]="!isAnyJobSelected()">
|
||||||
<fa-icon icon="play" class="m-r-10"></fa-icon>
|
<fa-icon icon="play" class="m-r-10"></fa-icon>
|
||||||
Run Selected Jobs
|
{{'labels.buttons.Run Selected Jobs' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button mat-raised-button color="primary" (click)="openCustomParametersDialog()" [disabled]="!isAnyJobSelected()">
|
<button mat-raised-button color="primary" (click)="openCustomParametersDialog()" [disabled]="!isAnyJobSelected()">
|
||||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||||
Add Custom Parameters
|
{{'labels.buttons.Add Custom Parameters' | translate}}
|
||||||
|
</button>
|
||||||
|
<button mat-raised-button color="primary" (click)="refresh()">
|
||||||
|
<fa-icon icon="sync" class="m-r-10"></fa-icon>
|
||||||
|
{{'labels.buttons.Refresh' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -53,12 +57,12 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="displayName">
|
<ng-container matColumnDef="displayName">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Name' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let job"> {{ job.displayName }} </td>
|
<td mat-cell *matCellDef="let job" [routerLink]="[job.jobId]"> {{ job.displayName }} </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="active">
|
<ng-container matColumnDef="active">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Active ? </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Active' | translate}}</th>
|
||||||
<td mat-cell *matCellDef="let job" class="center">
|
<td mat-cell *matCellDef="let job" class="center">
|
||||||
<div [className]="job.active === true ? 'currently-running' : 'not-currently-running'">
|
<div [className]="job.active === true ? 'currently-running' : 'not-currently-running'">
|
||||||
<fa-icon matTooltip="{{ job.active === true | yesNo }}" matTooltipPosition="right" icon="circle"
|
<fa-icon matTooltip="{{ job.active === true | yesNo }}" matTooltipPosition="right" icon="circle"
|
||||||
@@ -67,31 +71,27 @@
|
|||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="nextRunTime">
|
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Next Run </th>
|
|
||||||
<td mat-cell *matCellDef="let job"> {{ job.nextRunTime }} </td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="previousRunTime">
|
<ng-container matColumnDef="previousRunTime">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Previous Run </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Previous Run' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let job"><span *ngIf="job.lastRunHistory">{{ job.lastRunHistory.jobRunStartTime
|
<td mat-cell *matCellDef="let job">
|
||||||
}}</span></td>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container matColumnDef="previousRunStatus">
|
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Previous Run Status </th>
|
|
||||||
<td mat-cell *matCellDef="let job" class="center">
|
|
||||||
<div *ngIf="job.lastRunHistory">
|
<div *ngIf="job.lastRunHistory">
|
||||||
<fa-icon *ngIf="job.lastRunHistory.status === 'success'" class="success" matTooltip="Successful"
|
<fa-icon *ngIf="job.lastRunHistory.status === 'success'" class="success" matTooltip="Successful"
|
||||||
matTooltipPosition="right" icon="check-circle" size="lg"></fa-icon>
|
matTooltipPosition="right" icon="check-circle" size="lg"></fa-icon>
|
||||||
<fa-icon *ngIf="!(job.lastRunHistory.status == 'success')" class="fail" matTooltip="Failed"
|
<fa-icon *ngIf="!(job.lastRunHistory.status == 'success')" class="fail" matTooltip="Failed"
|
||||||
matTooltipPosition="right" icon="times-circle" size="lg"></fa-icon>
|
matTooltipPosition="right" icon="times-circle" size="lg"></fa-icon>
|
||||||
|
<span *ngIf="job.lastRunHistory" class="m-l-5">
|
||||||
|
{{ job.lastRunHistory.jobRunStartTime | datetimeFormat}}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="nextRunTime">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Next Run' | translate}} </th>
|
||||||
|
<td mat-cell *matCellDef="let job"> {{ job.nextRunTime | datetimeFormat }} </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="currentlyRunning">
|
<ng-container matColumnDef="currentlyRunning">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Currently Running </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Currently Running' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let job" class="center">
|
<td mat-cell *matCellDef="let job" class="center">
|
||||||
<div [className]="job.currentlyRunning === true ? 'currently-running' : 'not-currently-running'">
|
<div [className]="job.currentlyRunning === true ? 'currently-running' : 'not-currently-running'">
|
||||||
<fa-icon matTooltip="{{ job.currentlyRunning === true | yesNo }}" matTooltipPosition="right"
|
<fa-icon matTooltip="{{ job.currentlyRunning === true | yesNo }}" matTooltipPosition="right"
|
||||||
@@ -101,10 +101,10 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="errorLog">
|
<ng-container matColumnDef="errorLog">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> Error Log </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Error Log' | translate}} </th>
|
||||||
<td mat-cell *matCellDef="let job" class="center">
|
<td mat-cell *matCellDef="let job" class="center">
|
||||||
<button mat-icon-button class="errorlog"
|
<button mat-icon-button class="errorlog" (click)="showErrorLog(job)"
|
||||||
*ngIf="!(job.lastRunHistory && job.lastRunHistory.status == 'success')" matTooltip="Error Log"
|
*ngIf="!(job.lastRunHistory && job.lastRunHistory.status == 'success')" matTooltip="{{'labels.inputs.Error Log' | translate}}"
|
||||||
matTooltipPosition="right">
|
matTooltipPosition="right">
|
||||||
<fa-icon icon="exclamation-circle" size="lg"></fa-icon>
|
<fa-icon icon="exclamation-circle" size="lg"></fa-icon>
|
||||||
</button>
|
</button>
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="[row.jobId]" class="select-row"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;" class="select-row"></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@
|
|||||||
<div class="container space-top" fxLayout="row" fxLayoutGap="20px">
|
<div class="container space-top" fxLayout="row" fxLayoutGap="20px">
|
||||||
<button mat-raised-button color="primary" (click)="runSelectedJobs()" [disabled]="!isAnyJobSelected()">
|
<button mat-raised-button color="primary" (click)="runSelectedJobs()" [disabled]="!isAnyJobSelected()">
|
||||||
<fa-icon icon="play" class="m-r-10"></fa-icon>
|
<fa-icon icon="play" class="m-r-10"></fa-icon>
|
||||||
Run Selected Jobs<ng-template #templateSchedulerJobs let-data let-popover="popover">
|
{{'labels.buttons.Run Selected Jobs' | translate}}<ng-template #templateSchedulerJobs let-data let-popover="popover">
|
||||||
<h2>Template</h2>
|
<h2>Template</h2>
|
||||||
<p>This is the template I am trying to use. Is that fine.</p>
|
<p>This is the template I am trying to use. Is that fine.</p>
|
||||||
<button (click)="popover.close();nextStepSchedulerJobs()">Next</button>
|
<button (click)="popover.close();nextStepSchedulerJobs()">Next</button>
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<button mat-raised-button color="primary" (click)="refresh()">
|
<button mat-raised-button color="primary" (click)="refresh()">
|
||||||
<fa-icon icon="sync" class="m-r-10"></fa-icon>
|
<fa-icon icon="sync" class="m-r-10"></fa-icon>
|
||||||
Refresh
|
{{'labels.buttons.Refresh' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -141,10 +141,10 @@
|
|||||||
<h4>Scheduler Status. Button will be used to change the status.</h4>
|
<h4>Scheduler Status. Button will be used to change the status.</h4>
|
||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
<button mat-raised-button color="warn"
|
<button mat-raised-button color="warn"
|
||||||
(click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button>
|
(click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">Back</button>
|
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{'labels.buttons.Back' | translate}}</button>
|
||||||
<button mat-raised-button color="primary"
|
<button mat-raised-button color="primary"
|
||||||
(click)="popover.close();showPopover(templateFilter, filter, 'bottom', true)">Next</button>
|
(click)="popover.close();showPopover(templateFilter, filter, 'bottom', true)">{{'labels.buttons.Next' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
@@ -152,11 +152,11 @@
|
|||||||
<h4>Search bar to filter jobs.</h4>
|
<h4>Search bar to filter jobs.</h4>
|
||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
<button mat-raised-button color="warn"
|
<button mat-raised-button color="warn"
|
||||||
(click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button>
|
(click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
|
||||||
<button mat-raised-button color="primary"
|
<button mat-raised-button color="primary"
|
||||||
(click)="popover.close();showPopover(templateSchedulerStatus,schedulerStatus, 'bottom', true)">Back</button>
|
(click)="popover.close();showPopover(templateSchedulerStatus,schedulerStatus, 'bottom', true)">{{'labels.buttons.Back' | translate}}</button>
|
||||||
<button mat-raised-button color="primary"
|
<button mat-raised-button color="primary"
|
||||||
(click)="popover.close();showPopover(templateJobsTable,jobsTable, 'top', true)">Next</button>
|
(click)="popover.close();showPopover(templateJobsTable,jobsTable, 'top', true)">{{'labels.buttons.Next' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
@@ -166,9 +166,9 @@
|
|||||||
Jobs</a></h4>
|
Jobs</a></h4>
|
||||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||||
<button mat-raised-button color="warn"
|
<button mat-raised-button color="warn"
|
||||||
(click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button>
|
(click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
|
||||||
<button mat-raised-button color="primary"
|
<button mat-raised-button color="primary"
|
||||||
(click)="popover.close();showPopover(templateFilter, filter, 'bottom', true)">Back</button>
|
(click)="popover.close();showPopover(templateFilter, filter, 'bottom', true)">{{'labels.buttons.Back' | translate}}</button>
|
||||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">Next</button>
|
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{'labels.buttons.Next' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@@ -39,3 +39,8 @@ table {
|
|||||||
.space-top {
|
.space-top {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cdk-column-displayName,
|
||||||
|
.mat-column-displayName {
|
||||||
|
flex: 0 0 5px !important;
|
||||||
|
}
|
||||||
@@ -17,6 +17,8 @@ import { ConfigurationWizardService } from '../../../configuration-wizard/config
|
|||||||
/** Custom Dialog Component */
|
/** Custom Dialog Component */
|
||||||
import { NextStepDialogComponent } from '../../../configuration-wizard/next-step-dialog/next-step-dialog.component';
|
import { NextStepDialogComponent } from '../../../configuration-wizard/next-step-dialog/next-step-dialog.component';
|
||||||
import { CustomParametersPopoverComponent } from './custom-parameters-popover/custom-parameters-popover.component';
|
import { CustomParametersPopoverComponent } from './custom-parameters-popover/custom-parameters-popover.component';
|
||||||
|
import { SchedulerJob } from './models/scheduler-job.model';
|
||||||
|
import { ErrorLogPopoverComponent } from './error-log-popover/error-log-popover.component';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manage scheduler jobs component.
|
* Manage scheduler jobs component.
|
||||||
@@ -33,7 +35,7 @@ export class ManageSchedulerJobsComponent implements OnInit, AfterViewInit {
|
|||||||
/** Scheduler data */
|
/** Scheduler data */
|
||||||
schedulerData: any;
|
schedulerData: any;
|
||||||
/** Columns to be displayed in manage scheduler jobs table. */
|
/** Columns to be displayed in manage scheduler jobs table. */
|
||||||
displayedColumns: string[] = ['select', 'displayName', 'active', 'nextRunTime', 'previousRunTime', 'previousRunStatus', 'currentlyRunning', 'errorLog'];
|
displayedColumns: string[] = ['select', 'displayName', 'active', 'previousRunTime', 'currentlyRunning', 'nextRunTime', 'errorLog'];
|
||||||
/** Data source for manage scheduler jobs table. */
|
/** Data source for manage scheduler jobs table. */
|
||||||
dataSource: MatTableDataSource<any>;
|
dataSource: MatTableDataSource<any>;
|
||||||
/** Initialize Selection */
|
/** Initialize Selection */
|
||||||
@@ -252,4 +254,14 @@ export class ManageSchedulerJobsComponent implements OnInit, AfterViewInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showErrorLog(job: SchedulerJob): void {
|
||||||
|
if (job.lastRunHistory) {
|
||||||
|
this.dialog.open(ErrorLogPopoverComponent, {
|
||||||
|
data: {
|
||||||
|
job: job
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
export interface SchedulerJob {
|
||||||
|
jobId: number;
|
||||||
|
displayName: string;
|
||||||
|
nextRunTime: Date;
|
||||||
|
cronExpression: string;
|
||||||
|
active: boolean;
|
||||||
|
currentlyRunning: boolean;
|
||||||
|
lastRunHistory: LastRunHistory;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LastRunHistory {
|
||||||
|
version: number;
|
||||||
|
jobRunStartTime: Date;
|
||||||
|
jobRunEndTime: Date;
|
||||||
|
status: string;
|
||||||
|
jobRunErrorMessage: string;
|
||||||
|
triggerType: string;
|
||||||
|
jobRunErrorLog: string;
|
||||||
|
}
|
||||||
@@ -74,6 +74,7 @@ import { CobWorkflowComponent } from './manage-jobs/cob-workflow/cob-workflow.co
|
|||||||
import { LoanLockedComponent } from './manage-jobs/cob-workflow/loan-locked/loan-locked.component';
|
import { LoanLockedComponent } from './manage-jobs/cob-workflow/loan-locked/loan-locked.component';
|
||||||
import { CustomParametersPopoverComponent } from './manage-jobs/scheduler-jobs/custom-parameters-popover/custom-parameters-popover.component';
|
import { CustomParametersPopoverComponent } from './manage-jobs/scheduler-jobs/custom-parameters-popover/custom-parameters-popover.component';
|
||||||
import { CustomParametersTableComponent } from './manage-jobs/scheduler-jobs/custom-parameters-popover/custom-parameters-table/custom-parameters-table.component';
|
import { CustomParametersTableComponent } from './manage-jobs/scheduler-jobs/custom-parameters-popover/custom-parameters-table/custom-parameters-table.component';
|
||||||
|
import { ErrorLogPopoverComponent } from './manage-jobs/scheduler-jobs/error-log-popover/error-log-popover.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -147,7 +148,8 @@ import { CustomParametersTableComponent } from './manage-jobs/scheduler-jobs/cus
|
|||||||
CobWorkflowComponent,
|
CobWorkflowComponent,
|
||||||
LoanLockedComponent,
|
LoanLockedComponent,
|
||||||
CustomParametersPopoverComponent,
|
CustomParametersPopoverComponent,
|
||||||
CustomParametersTableComponent
|
CustomParametersTableComponent,
|
||||||
|
ErrorLogPopoverComponent
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class SystemModule { }
|
export class SystemModule { }
|
||||||
|
|||||||
@@ -109,3 +109,20 @@ $error-log: #ffa726;
|
|||||||
height: 4px;
|
height: 4px;
|
||||||
cursor: none;
|
cursor: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.strike {
|
||||||
|
text-decoration: line-through;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.transfer {
|
||||||
|
color: $status-transfer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linked {
|
||||||
|
color: $status-approved;
|
||||||
|
}
|
||||||
|
|
||||||
|
.accrual {
|
||||||
|
color: $msg-default;
|
||||||
|
}
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Přidat kolaterál",
|
"Add Collateral": "Přidat kolaterál",
|
||||||
"Add Column": "Přidat sloupec",
|
"Add Column": "Přidat sloupec",
|
||||||
"Add Currency": "Přidat měnu",
|
"Add Currency": "Přidat měnu",
|
||||||
|
"Add Custom Parameters": "Přidat vlastní parametry",
|
||||||
"Add Event": "Přidat událost",
|
"Add Event": "Přidat událost",
|
||||||
"Add Funds": "Přidat prostředky",
|
"Add Funds": "Přidat prostředky",
|
||||||
"Add Group": "Přidat skupinu",
|
"Add Group": "Přidat skupinu",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Nastavení organizace",
|
"Setup Organization": "Nastavení organizace",
|
||||||
"Setup Products": "Nastavení produktů",
|
"Setup Products": "Nastavení produktů",
|
||||||
"Setup System": "Systém nastavení",
|
"Setup System": "Systém nastavení",
|
||||||
|
"Show more": "Zobrazit více",
|
||||||
|
"Show less": "Ukaž méně",
|
||||||
"Staff": "Personál",
|
"Staff": "Personál",
|
||||||
"Staff Assignment History": "Historie přidělení zaměstnanců",
|
"Staff Assignment History": "Historie přidělení zaměstnanců",
|
||||||
"Subledger Account": "Účet vedlejší knihy",
|
"Subledger Account": "Účet vedlejší knihy",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "V současné době běží",
|
"Currently Running": "V současné době běží",
|
||||||
"Custom Report Run Frequency": "Frekvence spouštění vlastní sestavy",
|
"Custom Report Run Frequency": "Frekvence spouštění vlastní sestavy",
|
||||||
"Custom Report Run Frequency (Days)": "Frekvence spouštění vlastního přehledu (dny)",
|
"Custom Report Run Frequency (Days)": "Frekvence spouštění vlastního přehledu (dny)",
|
||||||
|
"COB": "COB",
|
||||||
"DETAILS": "PODROBNOSTI",
|
"DETAILS": "PODROBNOSTI",
|
||||||
"Daily": "Denně",
|
"Daily": "Denně",
|
||||||
"Data Table": "Datová tabulka",
|
"Data Table": "Datová tabulka",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Úsporný produkt",
|
"Savings Product": "Úsporný produkt",
|
||||||
"Savings SubType": "Úsporný podtyp",
|
"Savings SubType": "Úsporný podtyp",
|
||||||
"Savings transfers in suspense": "Převody úspor v nejistotě",
|
"Savings transfers in suspense": "Převody úspor v nejistotě",
|
||||||
"Schedular Jobs": "Práce plánovače",
|
"Scheduler Jobs": "Práce plánovače",
|
||||||
"Schedule Date": "Datum plánu",
|
"Schedule Date": "Datum plánu",
|
||||||
"Score": "Skóre",
|
"Score": "Skóre",
|
||||||
"Screen Report": "Zpráva o obrazovce",
|
"Screen Report": "Zpráva o obrazovce",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Typ trvalého pokynu",
|
"Standing Instruction Type": "Typ trvalého pokynu",
|
||||||
"Standing Instructions": "Stálé instrukce",
|
"Standing Instructions": "Stálé instrukce",
|
||||||
"Start Date": "Datum zahájení",
|
"Start Date": "Datum zahájení",
|
||||||
"Start time": "Doba spuštění",
|
"Start Time": "Doba spuštění",
|
||||||
"Started On": "Zahájeno dne",
|
"Started On": "Zahájeno dne",
|
||||||
"Starting date": "Počáteční datum",
|
"Starting date": "Počáteční datum",
|
||||||
"State / Province": "Stát / provincie",
|
"State / Province": "Stát / provincie",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Platí srážková daň",
|
"Withhold Tax is Applicable": "Platí srážková daň",
|
||||||
"Within Bank": "V rámci banky",
|
"Within Bank": "V rámci banky",
|
||||||
"Working Days": "Pracovní dny",
|
"Working Days": "Pracovní dny",
|
||||||
|
"Workflow Jobs": "Workflow Jobs",
|
||||||
"Write Off Date": "Datum odepsání",
|
"Write Off Date": "Datum odepsání",
|
||||||
"Write off on": "Odepiš dál",
|
"Write off on": "Odepiš dál",
|
||||||
"Write-off": "Odepsat",
|
"Write-off": "Odepsat",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Konfigurace",
|
"Configurations": "Konfigurace",
|
||||||
"Configurations page allows you to further customize": "Stránka Konfigurace vám umožňuje dále přizpůsobit způsob, jakým vaše organizace používá systém Mifos.",
|
"Configurations page allows you to further customize": "Stránka Konfigurace vám umožňuje dále přizpůsobit způsob, jakým vaše organizace používá systém Mifos.",
|
||||||
"Configure Maker Checker Tasks": "Konfigurace úloh Maker Checker",
|
"Configure Maker Checker Tasks": "Konfigurace úloh Maker Checker",
|
||||||
|
"Copy": "kopírovat",
|
||||||
"Copy Account Number": "Zkopírovat číslo účtu",
|
"Copy Account Number": "Zkopírovat číslo účtu",
|
||||||
"Create Account Number Preference": "Vytvořit předvolbu čísla účtu",
|
"Create Account Number Preference": "Vytvořit předvolbu čísla účtu",
|
||||||
"Create Accounting Closure": "Vytvořte účetní uzávěrku",
|
"Create Accounting Closure": "Vytvořte účetní uzávěrku",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Sicherheiten hinzufügen",
|
"Add Collateral": "Sicherheiten hinzufügen",
|
||||||
"Add Column": "Spalte hinzufügen",
|
"Add Column": "Spalte hinzufügen",
|
||||||
"Add Currency": "Währung hinzufügen",
|
"Add Currency": "Währung hinzufügen",
|
||||||
|
"Add Custom Parameters": "Fügen Sie benutzerdefinierte Parameter hinzu",
|
||||||
"Add Event": "Ereignis hinzufügen",
|
"Add Event": "Ereignis hinzufügen",
|
||||||
"Add Funds": "Geld hinzufügen",
|
"Add Funds": "Geld hinzufügen",
|
||||||
"Add Group": "Gruppe hinzufügen",
|
"Add Group": "Gruppe hinzufügen",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Organisation einrichten",
|
"Setup Organization": "Organisation einrichten",
|
||||||
"Setup Products": "Setup-Produkte",
|
"Setup Products": "Setup-Produkte",
|
||||||
"Setup System": "Setup-System",
|
"Setup System": "Setup-System",
|
||||||
|
"Show more": "Zeig mehr",
|
||||||
|
"Show less": "Zeige weniger",
|
||||||
"Staff": "Personal",
|
"Staff": "Personal",
|
||||||
"Staff Assignment History": "Verlauf der Personalzuweisungen",
|
"Staff Assignment History": "Verlauf der Personalzuweisungen",
|
||||||
"Subledger Account": "Nebenbuchkonto",
|
"Subledger Account": "Nebenbuchkonto",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Momentan laufend",
|
"Currently Running": "Momentan laufend",
|
||||||
"Custom Report Run Frequency": "Benutzerdefinierte Berichtsausführungshäufigkeit",
|
"Custom Report Run Frequency": "Benutzerdefinierte Berichtsausführungshäufigkeit",
|
||||||
"Custom Report Run Frequency (Days)": "Häufigkeit der Ausführung benutzerdefinierter Berichte (Tage)",
|
"Custom Report Run Frequency (Days)": "Häufigkeit der Ausführung benutzerdefinierter Berichte (Tage)",
|
||||||
|
"COB": "COB",
|
||||||
"DETAILS": "EINZELHEITEN",
|
"DETAILS": "EINZELHEITEN",
|
||||||
"Daily": "Täglich",
|
"Daily": "Täglich",
|
||||||
"Data Table": "Datentabelle",
|
"Data Table": "Datentabelle",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Sparprodukt",
|
"Savings Product": "Sparprodukt",
|
||||||
"Savings SubType": "Untertyp „Einsparungen“.",
|
"Savings SubType": "Untertyp „Einsparungen“.",
|
||||||
"Savings transfers in suspense": "Spartransfers in der Schwebe",
|
"Savings transfers in suspense": "Spartransfers in der Schwebe",
|
||||||
"Schedular Jobs": "Scheduler-Jobs",
|
"Scheduler Jobs": "Scheduler-Jobs",
|
||||||
"Schedule Date": "Plandatum",
|
"Schedule Date": "Plandatum",
|
||||||
"Score": "Punktzahl",
|
"Score": "Punktzahl",
|
||||||
"Screen Report": "Bildschirmbericht",
|
"Screen Report": "Bildschirmbericht",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Ständiger Instruktionstyp",
|
"Standing Instruction Type": "Ständiger Instruktionstyp",
|
||||||
"Standing Instructions": "Ständige Anweisungen",
|
"Standing Instructions": "Ständige Anweisungen",
|
||||||
"Start Date": "Startdatum",
|
"Start Date": "Startdatum",
|
||||||
"Start time": "Startzeit",
|
"Start Time": "Startzeit",
|
||||||
"Started On": "Begann am",
|
"Started On": "Begann am",
|
||||||
"Starting date": "Anfangsdatum",
|
"Starting date": "Anfangsdatum",
|
||||||
"State / Province": "Staat/Provinz",
|
"State / Province": "Staat/Provinz",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Es fällt eine Quellensteuer an",
|
"Withhold Tax is Applicable": "Es fällt eine Quellensteuer an",
|
||||||
"Within Bank": "Innerhalb der Bank",
|
"Within Bank": "Innerhalb der Bank",
|
||||||
"Working Days": "Arbeitstage",
|
"Working Days": "Arbeitstage",
|
||||||
|
"Workflow Jobs": "Workflow Jobs",
|
||||||
"Write Off Date": "Abschreibungsdatum",
|
"Write Off Date": "Abschreibungsdatum",
|
||||||
"Write off on": "Abschreiben am",
|
"Write off on": "Abschreiben am",
|
||||||
"Write-off": "Abschreiben",
|
"Write-off": "Abschreiben",
|
||||||
@@ -2368,6 +2373,7 @@
|
|||||||
"Configurations": "Konfigurationen",
|
"Configurations": "Konfigurationen",
|
||||||
"Configurations page allows you to further customize": "Auf der Seite „Konfigurationen“ können Sie die Art und Weise, wie Ihre Organisation das Mifos-System nutzt, weiter anpassen.",
|
"Configurations page allows you to further customize": "Auf der Seite „Konfigurationen“ können Sie die Art und Weise, wie Ihre Organisation das Mifos-System nutzt, weiter anpassen.",
|
||||||
"Configure Maker Checker Tasks": "Konfigurieren Sie Maker Checker-Aufgaben",
|
"Configure Maker Checker Tasks": "Konfigurieren Sie Maker Checker-Aufgaben",
|
||||||
|
"Copy": "Kopieren",
|
||||||
"Copy Account Number": "Kontonummer kopieren",
|
"Copy Account Number": "Kontonummer kopieren",
|
||||||
"Create Account Number Preference": "Kontonummernpräferenz erstellen",
|
"Create Account Number Preference": "Kontonummernpräferenz erstellen",
|
||||||
"Create Accounting Closure": "Erstellen Sie einen Buchhaltungsabschluss",
|
"Create Accounting Closure": "Erstellen Sie einen Buchhaltungsabschluss",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Add Collateral",
|
"Add Collateral": "Add Collateral",
|
||||||
"Add Column": "Add Column",
|
"Add Column": "Add Column",
|
||||||
"Add Currency": "Add Currency",
|
"Add Currency": "Add Currency",
|
||||||
|
"Add Custom Parameters": "Add Custom Parameters",
|
||||||
"Add Event": "Add Event",
|
"Add Event": "Add Event",
|
||||||
"Add Funds": "Add Funds",
|
"Add Funds": "Add Funds",
|
||||||
"Add Group": "Add Group",
|
"Add Group": "Add Group",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Setup Organization",
|
"Setup Organization": "Setup Organization",
|
||||||
"Setup Products": "Setup Products",
|
"Setup Products": "Setup Products",
|
||||||
"Setup System": "Setup System",
|
"Setup System": "Setup System",
|
||||||
|
"Show less": "Show less",
|
||||||
|
"Show more": "Show more",
|
||||||
"Staff": "Staff",
|
"Staff": "Staff",
|
||||||
"Staff Assignment History": "Staff Assignment History",
|
"Staff Assignment History": "Staff Assignment History",
|
||||||
"Subledger Account": "Subledger Account",
|
"Subledger Account": "Subledger Account",
|
||||||
@@ -1162,6 +1165,7 @@
|
|||||||
"Currently Running": "Currently Running",
|
"Currently Running": "Currently Running",
|
||||||
"Custom Report Run Frequency": "Custom Report Run Frequency",
|
"Custom Report Run Frequency": "Custom Report Run Frequency",
|
||||||
"Custom Report Run Frequency (Days)": "Custom Report Run Frequency (Days)",
|
"Custom Report Run Frequency (Days)": "Custom Report Run Frequency (Days)",
|
||||||
|
"COB": "COB",
|
||||||
"DETAILS": "DETAILS",
|
"DETAILS": "DETAILS",
|
||||||
"Daily": "Daily",
|
"Daily": "Daily",
|
||||||
"Data Table": "Data Table",
|
"Data Table": "Data Table",
|
||||||
@@ -1894,7 +1898,7 @@
|
|||||||
"Savings Product": "Savings Product",
|
"Savings Product": "Savings Product",
|
||||||
"Savings SubType": "Savings SubType",
|
"Savings SubType": "Savings SubType",
|
||||||
"Savings transfers in suspense": "Savings transfers in suspense",
|
"Savings transfers in suspense": "Savings transfers in suspense",
|
||||||
"Schedular Jobs": "Scheduler Jobs",
|
"Scheduler Jobs": "Scheduler Jobs",
|
||||||
"Schedule Date": "Schedule Date",
|
"Schedule Date": "Schedule Date",
|
||||||
"Score": "Score",
|
"Score": "Score",
|
||||||
"Screen Report": "Screen Report",
|
"Screen Report": "Screen Report",
|
||||||
@@ -1938,7 +1942,7 @@
|
|||||||
"Standing Instruction Type": "Standing Instruction Type",
|
"Standing Instruction Type": "Standing Instruction Type",
|
||||||
"Standing Instructions": "Standing Instructions",
|
"Standing Instructions": "Standing Instructions",
|
||||||
"Start Date": "Start Date",
|
"Start Date": "Start Date",
|
||||||
"Start time": "Start time",
|
"Start Time": "Start Time",
|
||||||
"Started On": "Started On",
|
"Started On": "Started On",
|
||||||
"Starting date": "Starting date",
|
"Starting date": "Starting date",
|
||||||
"State / Province": "State / Province",
|
"State / Province": "State / Province",
|
||||||
@@ -2088,6 +2092,7 @@
|
|||||||
"Withhold Tax is Applicable": "Withhold Tax is Applicable",
|
"Withhold Tax is Applicable": "Withhold Tax is Applicable",
|
||||||
"Within Bank": "Within Bank",
|
"Within Bank": "Within Bank",
|
||||||
"Working Days": "Working Days",
|
"Working Days": "Working Days",
|
||||||
|
"Workflow Jobs": "Workflow Jobs",
|
||||||
"Write Off Date": "Write Off Date",
|
"Write Off Date": "Write Off Date",
|
||||||
"Write off on": "Write off on",
|
"Write off on": "Write off on",
|
||||||
"Write-off": "Write-off",
|
"Write-off": "Write-off",
|
||||||
@@ -2368,6 +2373,7 @@
|
|||||||
"Configurations": "Configurations",
|
"Configurations": "Configurations",
|
||||||
"Configurations page allows you to further customize": "The Configurations page allows you to further customize the way your organization uses the Mifos system.",
|
"Configurations page allows you to further customize": "The Configurations page allows you to further customize the way your organization uses the Mifos system.",
|
||||||
"Configure Maker Checker Tasks": "Configure Maker Checker Tasks",
|
"Configure Maker Checker Tasks": "Configure Maker Checker Tasks",
|
||||||
|
"Copy": "Copy",
|
||||||
"Copy Account Number": "Copy Account Number",
|
"Copy Account Number": "Copy Account Number",
|
||||||
"Create Account Number Preference": "Create Account Number Preference",
|
"Create Account Number Preference": "Create Account Number Preference",
|
||||||
"Create Accounting Closure": "Create Accounting Closure",
|
"Create Accounting Closure": "Create Accounting Closure",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Agregar Garantía",
|
"Add Collateral": "Agregar Garantía",
|
||||||
"Add Column": "Añadir Columna",
|
"Add Column": "Añadir Columna",
|
||||||
"Add Currency": "Agregar Moneda",
|
"Add Currency": "Agregar Moneda",
|
||||||
|
"Add Custom Parameters": "Agregar parámetros especiales",
|
||||||
"Add Event": "Añadir Evento",
|
"Add Event": "Añadir Evento",
|
||||||
"Add Funds": "Añadir Fondos",
|
"Add Funds": "Añadir Fondos",
|
||||||
"Add Group": "Añadir Grupo",
|
"Add Group": "Añadir Grupo",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Configuración de Organización",
|
"Setup Organization": "Configuración de Organización",
|
||||||
"Setup Products": "Configuración de Productos",
|
"Setup Products": "Configuración de Productos",
|
||||||
"Setup System": "Configuración de Sistema",
|
"Setup System": "Configuración de Sistema",
|
||||||
|
"Show more": "Mostrar más",
|
||||||
|
"Show less": "Muestra menos",
|
||||||
"Staff": "Personal",
|
"Staff": "Personal",
|
||||||
"Staff Assignment History": "Historial de asignaciones de personal",
|
"Staff Assignment History": "Historial de asignaciones de personal",
|
||||||
"Subledger Account": "Cuenta auxiliar",
|
"Subledger Account": "Cuenta auxiliar",
|
||||||
@@ -852,7 +855,7 @@
|
|||||||
"Summary Details": "Detalles resumidos",
|
"Summary Details": "Detalles resumidos",
|
||||||
"Tax Components": "Componentes tributarios",
|
"Tax Components": "Componentes tributarios",
|
||||||
"Tax Group": "Grupo Fiscal",
|
"Tax Group": "Grupo Fiscal",
|
||||||
"Teller / Cashier Management": "Gestión de cajeros/cajeros",
|
"Teller / Cashier Management": "Gestión de ventanillas y cajeros",
|
||||||
"Template": "Plantilla",
|
"Template": "Plantilla",
|
||||||
"Template Message": "Mensaje de plantilla",
|
"Template Message": "Mensaje de plantilla",
|
||||||
"Template Parameters": "Parámetros de plantilla",
|
"Template Parameters": "Parámetros de plantilla",
|
||||||
@@ -1012,7 +1015,7 @@
|
|||||||
"Base Price": "Precio base",
|
"Base Price": "Precio base",
|
||||||
"Base Percentage": "Porcentaje de base",
|
"Base Percentage": "Porcentaje de base",
|
||||||
"Beneficiary": "Beneficiario",
|
"Beneficiary": "Beneficiario",
|
||||||
"Branch": "Rama",
|
"Branch": "Sucursal",
|
||||||
"Branch Office": "Sucursal",
|
"Branch Office": "Sucursal",
|
||||||
"Breakdown": "Descomponer",
|
"Breakdown": "Descomponer",
|
||||||
"Business Date": "Fecha del sistema",
|
"Business Date": "Fecha del sistema",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Actualmente en ejecución",
|
"Currently Running": "Actualmente en ejecución",
|
||||||
"Custom Report Run Frequency": "Frecuencia de ejecución de reportes personalizados",
|
"Custom Report Run Frequency": "Frecuencia de ejecución de reportes personalizados",
|
||||||
"Custom Report Run Frequency (Days)": "Frecuencia de ejecución de reportes personalizados (días)",
|
"Custom Report Run Frequency (Days)": "Frecuencia de ejecución de reportes personalizados (días)",
|
||||||
|
"COB": "Cierre de Día",
|
||||||
"DETAILS": "DETALLES",
|
"DETAILS": "DETALLES",
|
||||||
"Daily": "Diario",
|
"Daily": "Diario",
|
||||||
"Data Table": "Tabla de datos",
|
"Data Table": "Tabla de datos",
|
||||||
@@ -1217,7 +1221,7 @@
|
|||||||
"Deposits Frequency": "Frecuencia de depósitos",
|
"Deposits Frequency": "Frecuencia de depósitos",
|
||||||
"Deposits till Date": "Depósitos a la fecha",
|
"Deposits till Date": "Depósitos a la fecha",
|
||||||
"Description": "Descripción",
|
"Description": "Descripción",
|
||||||
"Description/Notes": "Descripción/Notas",
|
"Description/Notes": "Descripción / Notas",
|
||||||
"Destination": "Destino",
|
"Destination": "Destino",
|
||||||
"Destination Group": "Grupo de destino",
|
"Destination Group": "Grupo de destino",
|
||||||
"Destination Group Details": "Detalles del grupo de destino",
|
"Destination Group Details": "Detalles del grupo de destino",
|
||||||
@@ -1621,7 +1625,7 @@
|
|||||||
"Name": "Nombre",
|
"Name": "Nombre",
|
||||||
"Name Decorated": "Nombre decorado",
|
"Name Decorated": "Nombre decorado",
|
||||||
"Name of the Organization": "Nombre de la organización",
|
"Name of the Organization": "Nombre de la organización",
|
||||||
"Net Cash": "El efectivo neto",
|
"Net Cash": "Efectivo neto",
|
||||||
"New Interest Rate": "Nueva tasa de interés",
|
"New Interest Rate": "Nueva tasa de interés",
|
||||||
"Next Meeting Date": "Fecha de la próxima reunión",
|
"Next Meeting Date": "Fecha de la próxima reunión",
|
||||||
"Next Meeting on": "Próxima reunión el",
|
"Next Meeting on": "Próxima reunión el",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Producto de Ahorro",
|
"Savings Product": "Producto de Ahorro",
|
||||||
"Savings SubType": "Subtipo de ahorro",
|
"Savings SubType": "Subtipo de ahorro",
|
||||||
"Savings transfers in suspense": "Transferencias de ahorro en vilo",
|
"Savings transfers in suspense": "Transferencias de ahorro en vilo",
|
||||||
"Schedular Jobs": "Procesos calendarizados",
|
"Scheduler Jobs": "Procesos calendarizados",
|
||||||
"Schedule Date": "Fecha de programacion",
|
"Schedule Date": "Fecha de programacion",
|
||||||
"Score": "Puntos",
|
"Score": "Puntos",
|
||||||
"Screen Report": "Reporte de pantalla",
|
"Screen Report": "Reporte de pantalla",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Tipo de instrucción permanente",
|
"Standing Instruction Type": "Tipo de instrucción permanente",
|
||||||
"Standing Instructions": "Instrucciones permanentes",
|
"Standing Instructions": "Instrucciones permanentes",
|
||||||
"Start Date": "Fecha de inicio",
|
"Start Date": "Fecha de inicio",
|
||||||
"Start time": "Hora de inicio",
|
"Start Time": "Hora de inicio",
|
||||||
"Started On": "Iniciado en",
|
"Started On": "Iniciado en",
|
||||||
"Starting date": "Fecha de inicio",
|
"Starting date": "Fecha de inicio",
|
||||||
"State / Province": "Estado o Provincia",
|
"State / Province": "Estado o Provincia",
|
||||||
@@ -1969,7 +1973,7 @@
|
|||||||
"Tag": "Etiqueta",
|
"Tag": "Etiqueta",
|
||||||
"Tax Group": "Grupo de Impuesto",
|
"Tax Group": "Grupo de Impuesto",
|
||||||
"Tax-Component Name": "Nombre del componente de impuesto",
|
"Tax-Component Name": "Nombre del componente de impuesto",
|
||||||
"Teller": "Cajero",
|
"Teller": "Ventanilla",
|
||||||
"Teller Name": "Nombre del cajero",
|
"Teller Name": "Nombre del cajero",
|
||||||
"Template Message": "Mensaje de plantilla",
|
"Template Message": "Mensaje de plantilla",
|
||||||
"Tenant": "Entidad",
|
"Tenant": "Entidad",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Se aplica la retención de impuestos",
|
"Withhold Tax is Applicable": "Se aplica la retención de impuestos",
|
||||||
"Within Bank": "Dentro del banco",
|
"Within Bank": "Dentro del banco",
|
||||||
"Working Days": "Días laborables",
|
"Working Days": "Días laborables",
|
||||||
|
"Workflow Jobs": "Flujos de Procesos",
|
||||||
"Write Off Date": "Fecha de cancelación",
|
"Write Off Date": "Fecha de cancelación",
|
||||||
"Write off on": "Cancelar en",
|
"Write off on": "Cancelar en",
|
||||||
"Write-off": "Cancelaciones",
|
"Write-off": "Cancelaciones",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Configuraciones",
|
"Configurations": "Configuraciones",
|
||||||
"Configurations page allows you to further customize": "La página Configuraciones le permite personalizar aún más la forma en que su organización utiliza el sistema Mifos.",
|
"Configurations page allows you to further customize": "La página Configuraciones le permite personalizar aún más la forma en que su organización utiliza el sistema Mifos.",
|
||||||
"Configure Maker Checker Tasks": "Configurar tareas de Realizador Aprobador",
|
"Configure Maker Checker Tasks": "Configurar tareas de Realizador Aprobador",
|
||||||
|
"Copy": "Copiar",
|
||||||
"Copy Account Number": "Copiar número de cuenta",
|
"Copy Account Number": "Copiar número de cuenta",
|
||||||
"Create Account Number Preference": "Crear preferencia de número de cuenta",
|
"Create Account Number Preference": "Crear preferencia de número de cuenta",
|
||||||
"Create Accounting Closure": "Crear cierre contable",
|
"Create Accounting Closure": "Crear cierre contable",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Ajouter une garantie",
|
"Add Collateral": "Ajouter une garantie",
|
||||||
"Add Column": "Ajouter une colonne",
|
"Add Column": "Ajouter une colonne",
|
||||||
"Add Currency": "Ajouter une devise",
|
"Add Currency": "Ajouter une devise",
|
||||||
|
"Add Custom Parameters": "Ajouter des paramètres personnalisés",
|
||||||
"Add Event": "Ajouter un évènement",
|
"Add Event": "Ajouter un évènement",
|
||||||
"Add Funds": "Ajouter des fonds",
|
"Add Funds": "Ajouter des fonds",
|
||||||
"Add Group": "Ajouter un groupe",
|
"Add Group": "Ajouter un groupe",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Organisation de configuration",
|
"Setup Organization": "Organisation de configuration",
|
||||||
"Setup Products": "Produits d'installation",
|
"Setup Products": "Produits d'installation",
|
||||||
"Setup System": "Système de configuration",
|
"Setup System": "Système de configuration",
|
||||||
|
"Show more": "Montre plus",
|
||||||
|
"Show less": "Montrer moins",
|
||||||
"Staff": "Personnel",
|
"Staff": "Personnel",
|
||||||
"Staff Assignment History": "Historique des affectations du personnel",
|
"Staff Assignment History": "Historique des affectations du personnel",
|
||||||
"Subledger Account": "Compte auxiliaire",
|
"Subledger Account": "Compte auxiliaire",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Actuellement en cours d'exécution",
|
"Currently Running": "Actuellement en cours d'exécution",
|
||||||
"Custom Report Run Frequency": "Fréquence d'exécution du rapport personnalisé",
|
"Custom Report Run Frequency": "Fréquence d'exécution du rapport personnalisé",
|
||||||
"Custom Report Run Frequency (Days)": "Fréquence d'exécution du rapport personnalisé (jours)",
|
"Custom Report Run Frequency (Days)": "Fréquence d'exécution du rapport personnalisé (jours)",
|
||||||
|
"COB": "COB",
|
||||||
"DETAILS": "DÉTAILS",
|
"DETAILS": "DÉTAILS",
|
||||||
"Daily": "Tous les jours",
|
"Daily": "Tous les jours",
|
||||||
"Data Table": "Tableau de données",
|
"Data Table": "Tableau de données",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Produit d'épargne",
|
"Savings Product": "Produit d'épargne",
|
||||||
"Savings SubType": "Sous-type d'épargne",
|
"Savings SubType": "Sous-type d'épargne",
|
||||||
"Savings transfers in suspense": "Les transferts d’épargne en suspens",
|
"Savings transfers in suspense": "Les transferts d’épargne en suspens",
|
||||||
"Schedular Jobs": "Travaux de planificateur",
|
"Scheduler Jobs": "Travaux de planificateur",
|
||||||
"Schedule Date": "Date prévue",
|
"Schedule Date": "Date prévue",
|
||||||
"Score": "Score",
|
"Score": "Score",
|
||||||
"Screen Report": "Rapport d'écran",
|
"Screen Report": "Rapport d'écran",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Type d'instruction permanente",
|
"Standing Instruction Type": "Type d'instruction permanente",
|
||||||
"Standing Instructions": "Instructions permanentes",
|
"Standing Instructions": "Instructions permanentes",
|
||||||
"Start Date": "Date de début",
|
"Start Date": "Date de début",
|
||||||
"Start time": "Heure de début",
|
"Start Time": "Heure de début",
|
||||||
"Started On": "Commencé le",
|
"Started On": "Commencé le",
|
||||||
"Starting date": "Date de début",
|
"Starting date": "Date de début",
|
||||||
"State / Province": "État/Province",
|
"State / Province": "État/Province",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "La retenue à la source est applicable",
|
"Withhold Tax is Applicable": "La retenue à la source est applicable",
|
||||||
"Within Bank": "Au sein de la banque",
|
"Within Bank": "Au sein de la banque",
|
||||||
"Working Days": "Jours de travail",
|
"Working Days": "Jours de travail",
|
||||||
|
"Workflow Jobs": "Tâches de flux de travail",
|
||||||
"Write Off Date": "Date de radiation",
|
"Write Off Date": "Date de radiation",
|
||||||
"Write off on": "Radier sur",
|
"Write off on": "Radier sur",
|
||||||
"Write-off": "Radier",
|
"Write-off": "Radier",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Configurations",
|
"Configurations": "Configurations",
|
||||||
"Configurations page allows you to further customize": "La page Configurations vous permet de personnaliser davantage la façon dont votre organisation utilise le système Mifos.",
|
"Configurations page allows you to further customize": "La page Configurations vous permet de personnaliser davantage la façon dont votre organisation utilise le système Mifos.",
|
||||||
"Configure Maker Checker Tasks": "Configurer les tâches de Maker Checker",
|
"Configure Maker Checker Tasks": "Configurer les tâches de Maker Checker",
|
||||||
|
"Copy": "Copie",
|
||||||
"Copy Account Number": "Copier le numéro de compte",
|
"Copy Account Number": "Copier le numéro de compte",
|
||||||
"Create Account Number Preference": "Créer une préférence de numéro de compte",
|
"Create Account Number Preference": "Créer une préférence de numéro de compte",
|
||||||
"Create Accounting Closure": "Créer une clôture comptable",
|
"Create Accounting Closure": "Créer une clôture comptable",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Aggiungi garanzia",
|
"Add Collateral": "Aggiungi garanzia",
|
||||||
"Add Column": "Aggiungi colonna",
|
"Add Column": "Aggiungi colonna",
|
||||||
"Add Currency": "Aggiungi valuta",
|
"Add Currency": "Aggiungi valuta",
|
||||||
|
"Add Custom Parameters": "Aggiungi parametri personalizzati",
|
||||||
"Add Event": "Aggiungi evento",
|
"Add Event": "Aggiungi evento",
|
||||||
"Add Funds": "Aggiungere fondi",
|
"Add Funds": "Aggiungere fondi",
|
||||||
"Add Group": "Aggiungere gruppo",
|
"Add Group": "Aggiungere gruppo",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Configurazione dell'organizzazione",
|
"Setup Organization": "Configurazione dell'organizzazione",
|
||||||
"Setup Products": "Imposta prodotti",
|
"Setup Products": "Imposta prodotti",
|
||||||
"Setup System": "Sistema di installazione",
|
"Setup System": "Sistema di installazione",
|
||||||
|
"Show more": "Mostra di più",
|
||||||
|
"Show less": "Mostra meno",
|
||||||
"Staff": "Personale",
|
"Staff": "Personale",
|
||||||
"Staff Assignment History": "Cronologia delle assegnazioni del personale",
|
"Staff Assignment History": "Cronologia delle assegnazioni del personale",
|
||||||
"Subledger Account": "Conto secondario",
|
"Subledger Account": "Conto secondario",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Attualmente in esecuzione",
|
"Currently Running": "Attualmente in esecuzione",
|
||||||
"Custom Report Run Frequency": "Frequenza di esecuzione del rapporto personalizzato",
|
"Custom Report Run Frequency": "Frequenza di esecuzione del rapporto personalizzato",
|
||||||
"Custom Report Run Frequency (Days)": "Frequenza di esecuzione del rapporto personalizzato (giorni)",
|
"Custom Report Run Frequency (Days)": "Frequenza di esecuzione del rapporto personalizzato (giorni)",
|
||||||
|
"COB": "COB",
|
||||||
"DETAILS": "DETTAGLI",
|
"DETAILS": "DETTAGLI",
|
||||||
"Daily": "Quotidiano",
|
"Daily": "Quotidiano",
|
||||||
"Data Table": "Tabella dati",
|
"Data Table": "Tabella dati",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Prodotto di risparmio",
|
"Savings Product": "Prodotto di risparmio",
|
||||||
"Savings SubType": "Sottotipo di risparmio",
|
"Savings SubType": "Sottotipo di risparmio",
|
||||||
"Savings transfers in suspense": "Bonifici di risparmio in sospeso",
|
"Savings transfers in suspense": "Bonifici di risparmio in sospeso",
|
||||||
"Schedular Jobs": "Lavori di pianificazione",
|
"Scheduler Jobs": "Lavori di pianificazione",
|
||||||
"Schedule Date": "Data di pianificazione",
|
"Schedule Date": "Data di pianificazione",
|
||||||
"Score": "Punto",
|
"Score": "Punto",
|
||||||
"Screen Report": "Rapporto sullo schermo",
|
"Screen Report": "Rapporto sullo schermo",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Tipo di istruzione permanente",
|
"Standing Instruction Type": "Tipo di istruzione permanente",
|
||||||
"Standing Instructions": "Istruzioni per la permanenza",
|
"Standing Instructions": "Istruzioni per la permanenza",
|
||||||
"Start Date": "Data d'inizio",
|
"Start Date": "Data d'inizio",
|
||||||
"Start time": "Ora di inizio",
|
"Start Time": "Ora di inizio",
|
||||||
"Started On": "Iniziato il",
|
"Started On": "Iniziato il",
|
||||||
"Starting date": "Data di inizio",
|
"Starting date": "Data di inizio",
|
||||||
"State / Province": "Stato/Provincia",
|
"State / Province": "Stato/Provincia",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "È applicabile la ritenuta d'acconto",
|
"Withhold Tax is Applicable": "È applicabile la ritenuta d'acconto",
|
||||||
"Within Bank": "All'interno della Banca",
|
"Within Bank": "All'interno della Banca",
|
||||||
"Working Days": "Giorni lavorativi",
|
"Working Days": "Giorni lavorativi",
|
||||||
|
"Workflow Jobs": "Lavori del flusso di lavoro",
|
||||||
"Write Off Date": "Cancellare la data",
|
"Write Off Date": "Cancellare la data",
|
||||||
"Write off on": "Cancellare",
|
"Write off on": "Cancellare",
|
||||||
"Write-off": "Cancellare",
|
"Write-off": "Cancellare",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Configurazioni",
|
"Configurations": "Configurazioni",
|
||||||
"Configurations page allows you to further customize": "La pagina Configurazioni ti consente di personalizzare ulteriormente il modo in cui la tua organizzazione utilizza il sistema Mifos.",
|
"Configurations page allows you to further customize": "La pagina Configurazioni ti consente di personalizzare ulteriormente il modo in cui la tua organizzazione utilizza il sistema Mifos.",
|
||||||
"Configure Maker Checker Tasks": "Configura le attività di Maker Checker",
|
"Configure Maker Checker Tasks": "Configura le attività di Maker Checker",
|
||||||
|
"Copy": "copia",
|
||||||
"Copy Account Number": "Copia il numero di conto",
|
"Copy Account Number": "Copia il numero di conto",
|
||||||
"Create Account Number Preference": "Crea preferenza numero di conto",
|
"Create Account Number Preference": "Crea preferenza numero di conto",
|
||||||
"Create Accounting Closure": "Creare la chiusura contabile",
|
"Create Accounting Closure": "Creare la chiusura contabile",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "담보 추가",
|
"Add Collateral": "담보 추가",
|
||||||
"Add Column": "열 추가",
|
"Add Column": "열 추가",
|
||||||
"Add Currency": "통화 추가",
|
"Add Currency": "통화 추가",
|
||||||
|
"Add Custom Parameters": "맞춤 매개변수 추가",
|
||||||
"Add Event": "이벤트 추가",
|
"Add Event": "이벤트 추가",
|
||||||
"Add Funds": "자금 추가",
|
"Add Funds": "자금 추가",
|
||||||
"Add Group": "그룹 추가",
|
"Add Group": "그룹 추가",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "조직 설정",
|
"Setup Organization": "조직 설정",
|
||||||
"Setup Products": "설치 제품",
|
"Setup Products": "설치 제품",
|
||||||
"Setup System": "설정 시스템",
|
"Setup System": "설정 시스템",
|
||||||
|
"Show more": "자세히보기",
|
||||||
|
"Show less": "간략히 보기",
|
||||||
"Staff": "직원",
|
"Staff": "직원",
|
||||||
"Staff Assignment History": "직원 배정 내역",
|
"Staff Assignment History": "직원 배정 내역",
|
||||||
"Subledger Account": "보조원장 계정",
|
"Subledger Account": "보조원장 계정",
|
||||||
@@ -1164,6 +1167,7 @@
|
|||||||
"Currently Running": "현재 실행 중",
|
"Currently Running": "현재 실행 중",
|
||||||
"Custom Report Run Frequency": "사용자 정의 보고서 실행 빈도",
|
"Custom Report Run Frequency": "사용자 정의 보고서 실행 빈도",
|
||||||
"Custom Report Run Frequency (Days)": "사용자 정의 보고서 실행 빈도(일)",
|
"Custom Report Run Frequency (Days)": "사용자 정의 보고서 실행 빈도(일)",
|
||||||
|
"COB": "사업 종료",
|
||||||
"DETAILS": "세부",
|
"DETAILS": "세부",
|
||||||
"Daily": "일일",
|
"Daily": "일일",
|
||||||
"Data Table": "데이터 테이블",
|
"Data Table": "데이터 테이블",
|
||||||
@@ -1896,7 +1900,7 @@
|
|||||||
"Savings Product": "저축상품",
|
"Savings Product": "저축상품",
|
||||||
"Savings SubType": "저축 하위 유형",
|
"Savings SubType": "저축 하위 유형",
|
||||||
"Savings transfers in suspense": "서스펜스 상태의 저축 이체",
|
"Savings transfers in suspense": "서스펜스 상태의 저축 이체",
|
||||||
"Schedular Jobs": "스케줄러 작업",
|
"Scheduler Jobs": "스케줄러 작업",
|
||||||
"Schedule Date": "일정 날짜",
|
"Schedule Date": "일정 날짜",
|
||||||
"Score": "점수",
|
"Score": "점수",
|
||||||
"Screen Report": "화면보고",
|
"Screen Report": "화면보고",
|
||||||
@@ -1940,7 +1944,7 @@
|
|||||||
"Standing Instruction Type": "상임 지시 유형",
|
"Standing Instruction Type": "상임 지시 유형",
|
||||||
"Standing Instructions": "기립 지침",
|
"Standing Instructions": "기립 지침",
|
||||||
"Start Date": "시작일",
|
"Start Date": "시작일",
|
||||||
"Start time": "시작 시간",
|
"Start Time": "시작 시간",
|
||||||
"Started On": "시작 날짜",
|
"Started On": "시작 날짜",
|
||||||
"Starting date": "시작 날짜",
|
"Starting date": "시작 날짜",
|
||||||
"State / Province": "주/도",
|
"State / Province": "주/도",
|
||||||
@@ -2090,6 +2094,7 @@
|
|||||||
"Withhold Tax is Applicable": "원천징수세 적용 가능",
|
"Withhold Tax is Applicable": "원천징수세 적용 가능",
|
||||||
"Within Bank": "은행 내",
|
"Within Bank": "은행 내",
|
||||||
"Working Days": "일하는 날",
|
"Working Days": "일하는 날",
|
||||||
|
"Workflow Jobs": "워크플로 작업",
|
||||||
"Write Off Date": "상각 날짜",
|
"Write Off Date": "상각 날짜",
|
||||||
"Write off on": "에 상각",
|
"Write off on": "에 상각",
|
||||||
"Write-off": "상각",
|
"Write-off": "상각",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "구성",
|
"Configurations": "구성",
|
||||||
"Configurations page allows you to further customize": "구성 페이지에서는 조직이 Mifos 시스템을 사용하는 방식을 추가로 사용자 정의할 수 있습니다.",
|
"Configurations page allows you to further customize": "구성 페이지에서는 조직이 Mifos 시스템을 사용하는 방식을 추가로 사용자 정의할 수 있습니다.",
|
||||||
"Configure Maker Checker Tasks": "Maker Checker 작업 구성",
|
"Configure Maker Checker Tasks": "Maker Checker 작업 구성",
|
||||||
|
"Copy": "복사",
|
||||||
"Copy Account Number": "계좌번호 복사",
|
"Copy Account Number": "계좌번호 복사",
|
||||||
"Create Account Number Preference": "계좌 번호 기본 설정 생성",
|
"Create Account Number Preference": "계좌 번호 기본 설정 생성",
|
||||||
"Create Accounting Closure": "회계 마감 생성",
|
"Create Accounting Closure": "회계 마감 생성",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Pridėti užstatą",
|
"Add Collateral": "Pridėti užstatą",
|
||||||
"Add Column": "Pridėti stulpelį",
|
"Add Column": "Pridėti stulpelį",
|
||||||
"Add Currency": "Pridėti valiutą",
|
"Add Currency": "Pridėti valiutą",
|
||||||
|
"Add Custom Parameters": "Pridėti pasirinktinius parametrus",
|
||||||
"Add Event": "Pridėti įvykį",
|
"Add Event": "Pridėti įvykį",
|
||||||
"Add Funds": "Pridėti lėšų",
|
"Add Funds": "Pridėti lėšų",
|
||||||
"Add Group": "Pridėti grupę",
|
"Add Group": "Pridėti grupę",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Nustatykite organizaciją",
|
"Setup Organization": "Nustatykite organizaciją",
|
||||||
"Setup Products": "Sąrankos produktai",
|
"Setup Products": "Sąrankos produktai",
|
||||||
"Setup System": "Sistemos sąranka",
|
"Setup System": "Sistemos sąranka",
|
||||||
|
"Show more": "Rodyti daugiau",
|
||||||
|
"Show less": "Rodyti mažiau",
|
||||||
"Staff": "Personalas",
|
"Staff": "Personalas",
|
||||||
"Staff Assignment History": "Darbuotojų paskyrimo istorija",
|
"Staff Assignment History": "Darbuotojų paskyrimo istorija",
|
||||||
"Subledger Account": "Subledger sąskaita",
|
"Subledger Account": "Subledger sąskaita",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Šiuo metu veikia",
|
"Currently Running": "Šiuo metu veikia",
|
||||||
"Custom Report Run Frequency": "Individualizuotos ataskaitos vykdymo dažnis",
|
"Custom Report Run Frequency": "Individualizuotos ataskaitos vykdymo dažnis",
|
||||||
"Custom Report Run Frequency (Days)": "Tinkintos ataskaitos vykdymo dažnis (dienomis)",
|
"Custom Report Run Frequency (Days)": "Tinkintos ataskaitos vykdymo dažnis (dienomis)",
|
||||||
|
"COB": "Verslo uždarymas",
|
||||||
"DETAILS": "DUOMENYS",
|
"DETAILS": "DUOMENYS",
|
||||||
"Daily": "Kasdien",
|
"Daily": "Kasdien",
|
||||||
"Data Table": "Duomenų lentelė",
|
"Data Table": "Duomenų lentelė",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Taupymo produktas",
|
"Savings Product": "Taupymo produktas",
|
||||||
"Savings SubType": "Taupymo potipis",
|
"Savings SubType": "Taupymo potipis",
|
||||||
"Savings transfers in suspense": "Taupymo pervedimai nežinioje",
|
"Savings transfers in suspense": "Taupymo pervedimai nežinioje",
|
||||||
"Schedular Jobs": "Planuotojo darbai",
|
"Scheduler Jobs": "Planuotojo darbai",
|
||||||
"Schedule Date": "Tvarkaraštis Data",
|
"Schedule Date": "Tvarkaraštis Data",
|
||||||
"Score": "Rezultatas",
|
"Score": "Rezultatas",
|
||||||
"Screen Report": "Ekrano ataskaita",
|
"Screen Report": "Ekrano ataskaita",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Stovimos instrukcijos tipas",
|
"Standing Instruction Type": "Stovimos instrukcijos tipas",
|
||||||
"Standing Instructions": "Stovėjimo instrukcijos",
|
"Standing Instructions": "Stovėjimo instrukcijos",
|
||||||
"Start Date": "Pradžios data",
|
"Start Date": "Pradžios data",
|
||||||
"Start time": "Pradžios laikas",
|
"Start Time": "Pradžios laikas",
|
||||||
"Started On": "Prasidėjo",
|
"Started On": "Prasidėjo",
|
||||||
"Starting date": "Pradžios data",
|
"Starting date": "Pradžios data",
|
||||||
"State / Province": "Valstybė / provincija",
|
"State / Province": "Valstybė / provincija",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Taikomas išskaičiuojamasis mokestis",
|
"Withhold Tax is Applicable": "Taikomas išskaičiuojamasis mokestis",
|
||||||
"Within Bank": "Banko viduje",
|
"Within Bank": "Banko viduje",
|
||||||
"Working Days": "Darbo dienos",
|
"Working Days": "Darbo dienos",
|
||||||
|
"Workflow Jobs": "Darbo eiga Darbai",
|
||||||
"Write Off Date": "Nurašymo data",
|
"Write Off Date": "Nurašymo data",
|
||||||
"Write off on": "Nurašyti",
|
"Write off on": "Nurašyti",
|
||||||
"Write-off": "Nusirašinėti",
|
"Write-off": "Nusirašinėti",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Konfigūracijos",
|
"Configurations": "Konfigūracijos",
|
||||||
"Configurations page allows you to further customize": "Puslapyje Konfigūracijos galite toliau tinkinti, kaip jūsų organizacija naudoja „Mifos“ sistemą.",
|
"Configurations page allows you to further customize": "Puslapyje Konfigūracijos galite toliau tinkinti, kaip jūsų organizacija naudoja „Mifos“ sistemą.",
|
||||||
"Configure Maker Checker Tasks": "Konfigūruokite Maker Checker užduotis",
|
"Configure Maker Checker Tasks": "Konfigūruokite Maker Checker užduotis",
|
||||||
|
"Copy": "Kopijuoti",
|
||||||
"Copy Account Number": "Nukopijuokite sąskaitos numerį",
|
"Copy Account Number": "Nukopijuokite sąskaitos numerį",
|
||||||
"Create Account Number Preference": "Sukurkite paskyros numerio nuostatą",
|
"Create Account Number Preference": "Sukurkite paskyros numerio nuostatą",
|
||||||
"Create Accounting Closure": "Sukurti apskaitos uždarymą",
|
"Create Accounting Closure": "Sukurti apskaitos uždarymą",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Pievienot nodrošinājumu",
|
"Add Collateral": "Pievienot nodrošinājumu",
|
||||||
"Add Column": "Pievienot kolonnu",
|
"Add Column": "Pievienot kolonnu",
|
||||||
"Add Currency": "Pievienot valūtu",
|
"Add Currency": "Pievienot valūtu",
|
||||||
|
"Add Custom Parameters": "Pievienojiet pielāgotus parametrus",
|
||||||
"Add Event": "Pievienot notikumu",
|
"Add Event": "Pievienot notikumu",
|
||||||
"Add Funds": "Pievienot līdzekļus",
|
"Add Funds": "Pievienot līdzekļus",
|
||||||
"Add Group": "Pievienot grupu",
|
"Add Group": "Pievienot grupu",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Organizācijas iestatīšana",
|
"Setup Organization": "Organizācijas iestatīšana",
|
||||||
"Setup Products": "Iestatīšanas produkti",
|
"Setup Products": "Iestatīšanas produkti",
|
||||||
"Setup System": "Uzstādīšanas sistēma",
|
"Setup System": "Uzstādīšanas sistēma",
|
||||||
|
"Show more": "Parādīt vairāk",
|
||||||
|
"Show less": "Rādīt mazāk",
|
||||||
"Staff": "Personāls",
|
"Staff": "Personāls",
|
||||||
"Staff Assignment History": "Personāla norīkošanas vēsture",
|
"Staff Assignment History": "Personāla norīkošanas vēsture",
|
||||||
"Subledger Account": "Subledger konts",
|
"Subledger Account": "Subledger konts",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Pašlaik darbojas",
|
"Currently Running": "Pašlaik darbojas",
|
||||||
"Custom Report Run Frequency": "Pielāgota pārskata izpildes biežums",
|
"Custom Report Run Frequency": "Pielāgota pārskata izpildes biežums",
|
||||||
"Custom Report Run Frequency (Days)": "Pielāgota pārskata izpildes biežums (dienas)",
|
"Custom Report Run Frequency (Days)": "Pielāgota pārskata izpildes biežums (dienas)",
|
||||||
|
"COB": "Biznesa slēgšana",
|
||||||
"DETAILS": "INFORMĀCIJAS",
|
"DETAILS": "INFORMĀCIJAS",
|
||||||
"Daily": "Ikdienas",
|
"Daily": "Ikdienas",
|
||||||
"Data Table": "Datu tabula",
|
"Data Table": "Datu tabula",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Uzkrājuma produkts",
|
"Savings Product": "Uzkrājuma produkts",
|
||||||
"Savings SubType": "Ietaupījumu apakštips",
|
"Savings SubType": "Ietaupījumu apakštips",
|
||||||
"Savings transfers in suspense": "Uzkrājumu pārskaitījumi šaubās",
|
"Savings transfers in suspense": "Uzkrājumu pārskaitījumi šaubās",
|
||||||
"Schedular Jobs": "Plānotāja darbi",
|
"Scheduler Jobs": "Plānotāja darbi",
|
||||||
"Schedule Date": "Grafika datums",
|
"Schedule Date": "Grafika datums",
|
||||||
"Score": "Rezultāts",
|
"Score": "Rezultāts",
|
||||||
"Screen Report": "Ekrāna ziņojums",
|
"Screen Report": "Ekrāna ziņojums",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Pastāvīgās instrukcijas veids",
|
"Standing Instruction Type": "Pastāvīgās instrukcijas veids",
|
||||||
"Standing Instructions": "Stāvošās instrukcijas",
|
"Standing Instructions": "Stāvošās instrukcijas",
|
||||||
"Start Date": "Sākuma datums",
|
"Start Date": "Sākuma datums",
|
||||||
"Start time": "Sākuma laiks",
|
"Start Time": "Sākuma laiks",
|
||||||
"Started On": "Sākās",
|
"Started On": "Sākās",
|
||||||
"Starting date": "Sākuma datums",
|
"Starting date": "Sākuma datums",
|
||||||
"State / Province": "Valsts/province",
|
"State / Province": "Valsts/province",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Ir piemērojams ieturētais nodoklis",
|
"Withhold Tax is Applicable": "Ir piemērojams ieturētais nodoklis",
|
||||||
"Within Bank": "Bankas ietvaros",
|
"Within Bank": "Bankas ietvaros",
|
||||||
"Working Days": "Darba dienas",
|
"Working Days": "Darba dienas",
|
||||||
|
"Workflow Jobs": "Darbplūsmas darbi",
|
||||||
"Write Off Date": "Norakstīšanas datums",
|
"Write Off Date": "Norakstīšanas datums",
|
||||||
"Write off on": "Norakstīt tālāk",
|
"Write off on": "Norakstīt tālāk",
|
||||||
"Write-off": "Norakstīt",
|
"Write-off": "Norakstīt",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Konfigurācijas",
|
"Configurations": "Konfigurācijas",
|
||||||
"Configurations page allows you to further customize": "Lapa Konfigurācijas ļauj vēl vairāk pielāgot veidu, kā jūsu organizācija izmanto Mifos sistēmu.",
|
"Configurations page allows you to further customize": "Lapa Konfigurācijas ļauj vēl vairāk pielāgot veidu, kā jūsu organizācija izmanto Mifos sistēmu.",
|
||||||
"Configure Maker Checker Tasks": "Konfigurējiet Maker Checker uzdevumus",
|
"Configure Maker Checker Tasks": "Konfigurējiet Maker Checker uzdevumus",
|
||||||
|
"Copy": "Kopēt",
|
||||||
"Copy Account Number": "Kopējiet konta numuru",
|
"Copy Account Number": "Kopējiet konta numuru",
|
||||||
"Create Account Number Preference": "Izveidojiet konta numura preferenci",
|
"Create Account Number Preference": "Izveidojiet konta numura preferenci",
|
||||||
"Create Accounting Closure": "Izveidojiet grāmatvedības slēgšanu",
|
"Create Accounting Closure": "Izveidojiet grāmatvedības slēgšanu",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "संपार्श्विक थप्नुहोस्",
|
"Add Collateral": "संपार्श्विक थप्नुहोस्",
|
||||||
"Add Column": "स्तम्भ थप्नुहोस्",
|
"Add Column": "स्तम्भ थप्नुहोस्",
|
||||||
"Add Currency": "मुद्रा थप्नुहोस्",
|
"Add Currency": "मुद्रा थप्नुहोस्",
|
||||||
|
"Add Custom Parameters": "अनुकूलन प्यारामिटरहरू थप्नुहोस्",
|
||||||
"Add Event": "घटना थप्नुहोस्",
|
"Add Event": "घटना थप्नुहोस्",
|
||||||
"Add Funds": "कोष थप्नुहोस्",
|
"Add Funds": "कोष थप्नुहोस्",
|
||||||
"Add Group": "समूह थप्नुहोस्",
|
"Add Group": "समूह थप्नुहोस्",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "स्थापना संगठन",
|
"Setup Organization": "स्थापना संगठन",
|
||||||
"Setup Products": "उत्पादनहरू सेटअप गर्नुहोस्",
|
"Setup Products": "उत्पादनहरू सेटअप गर्नुहोस्",
|
||||||
"Setup System": "सेटअप प्रणाली",
|
"Setup System": "सेटअप प्रणाली",
|
||||||
|
"Show more": "थप देखाउनुहोस्",
|
||||||
|
"Show less": "कम देखाउनुहोस्",
|
||||||
"Staff": "कर्मचारी",
|
"Staff": "कर्मचारी",
|
||||||
"Staff Assignment History": "कर्मचारी असाइनमेन्ट इतिहास",
|
"Staff Assignment History": "कर्मचारी असाइनमेन्ट इतिहास",
|
||||||
"Subledger Account": "Subledger खाता",
|
"Subledger Account": "Subledger खाता",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "हाल चलिरहेको छ",
|
"Currently Running": "हाल चलिरहेको छ",
|
||||||
"Custom Report Run Frequency": "अनुकूलन रिपोर्ट रन आवृत्ति",
|
"Custom Report Run Frequency": "अनुकूलन रिपोर्ट रन आवृत्ति",
|
||||||
"Custom Report Run Frequency (Days)": "अनुकूलन रिपोर्ट रन आवृत्ति (दिन)",
|
"Custom Report Run Frequency (Days)": "अनुकूलन रिपोर्ट रन आवृत्ति (दिन)",
|
||||||
|
"COB": "व्यापार बन्द",
|
||||||
"DETAILS": "विवरणहरू",
|
"DETAILS": "विवरणहरू",
|
||||||
"Daily": "दैनिक",
|
"Daily": "दैनिक",
|
||||||
"Data Table": "डाटा तालिका",
|
"Data Table": "डाटा तालिका",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "बचत उत्पादन",
|
"Savings Product": "बचत उत्पादन",
|
||||||
"Savings SubType": "बचत उपप्रकार",
|
"Savings SubType": "बचत उपप्रकार",
|
||||||
"Savings transfers in suspense": "सस्पेन्समा बचत स्थानान्तरण",
|
"Savings transfers in suspense": "सस्पेन्समा बचत स्थानान्तरण",
|
||||||
"Schedular Jobs": "अनुसूचित कार्यहरू",
|
"Scheduler Jobs": "अनुसूचित कार्यहरू",
|
||||||
"Schedule Date": "तालिका मिति",
|
"Schedule Date": "तालिका मिति",
|
||||||
"Score": "स्कोर",
|
"Score": "स्कोर",
|
||||||
"Screen Report": "स्क्रिन रिपोर्ट",
|
"Screen Report": "स्क्रिन रिपोर्ट",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "स्थायी निर्देशन प्रकार",
|
"Standing Instruction Type": "स्थायी निर्देशन प्रकार",
|
||||||
"Standing Instructions": "स्थायी निर्देशनहरू",
|
"Standing Instructions": "स्थायी निर्देशनहरू",
|
||||||
"Start Date": "सुरू मिति",
|
"Start Date": "सुरू मिति",
|
||||||
"Start time": "सुरु समय",
|
"Start Time": "सुरु समय",
|
||||||
"Started On": "मा सुरु भयो",
|
"Started On": "मा सुरु भयो",
|
||||||
"Starting date": "सुरु हुने मिति",
|
"Starting date": "सुरु हुने मिति",
|
||||||
"State / Province": "राज्य / प्रदेश",
|
"State / Province": "राज्य / प्रदेश",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "रोक लगाउने कर लागू हुन्छ",
|
"Withhold Tax is Applicable": "रोक लगाउने कर लागू हुन्छ",
|
||||||
"Within Bank": "बैंक भित्र",
|
"Within Bank": "बैंक भित्र",
|
||||||
"Working Days": "काम गर्ने दिनहरू",
|
"Working Days": "काम गर्ने दिनहरू",
|
||||||
|
"Workflow Jobs": "कार्यप्रवाह कार्यहरू",
|
||||||
"Write Off Date": "बन्द मिति लेख्नुहोस्",
|
"Write Off Date": "बन्द मिति लेख्नुहोस्",
|
||||||
"Write off on": "मा लेख्नुहोस्",
|
"Write off on": "मा लेख्नुहोस्",
|
||||||
"Write-off": "राइट-अफ",
|
"Write-off": "राइट-अफ",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "कन्फिगरेसनहरू",
|
"Configurations": "कन्फिगरेसनहरू",
|
||||||
"Configurations page allows you to further customize": "कन्फिगरेसन पृष्ठले तपाइँलाई तपाइँको संगठनले Mifos प्रणाली प्रयोग गर्ने तरिकालाई थप अनुकूलन गर्न अनुमति दिन्छ।",
|
"Configurations page allows you to further customize": "कन्फिगरेसन पृष्ठले तपाइँलाई तपाइँको संगठनले Mifos प्रणाली प्रयोग गर्ने तरिकालाई थप अनुकूलन गर्न अनुमति दिन्छ।",
|
||||||
"Configure Maker Checker Tasks": "मेकर जाँचकर्ता कार्यहरू कन्फिगर गर्नुहोस्",
|
"Configure Maker Checker Tasks": "मेकर जाँचकर्ता कार्यहरू कन्फिगर गर्नुहोस्",
|
||||||
|
"Copy": "कापी",
|
||||||
"Copy Account Number": "खाता नम्बर प्रतिलिपि गर्नुहोस्",
|
"Copy Account Number": "खाता नम्बर प्रतिलिपि गर्नुहोस्",
|
||||||
"Create Account Number Preference": "खाता नम्बर प्राथमिकता सिर्जना गर्नुहोस्",
|
"Create Account Number Preference": "खाता नम्बर प्राथमिकता सिर्जना गर्नुहोस्",
|
||||||
"Create Accounting Closure": "लेखा बन्द सिर्जना गर्नुहोस्",
|
"Create Accounting Closure": "लेखा बन्द सिर्जना गर्नुहोस्",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Adicionar garantia",
|
"Add Collateral": "Adicionar garantia",
|
||||||
"Add Column": "Adicionar coluna",
|
"Add Column": "Adicionar coluna",
|
||||||
"Add Currency": "Adicionar moeda",
|
"Add Currency": "Adicionar moeda",
|
||||||
|
"Add Custom Parameters": "Adicionar parâmetros personalizados",
|
||||||
"Add Event": "Adicionar Evento",
|
"Add Event": "Adicionar Evento",
|
||||||
"Add Funds": "Adicionar fundos",
|
"Add Funds": "Adicionar fundos",
|
||||||
"Add Group": "Adicionar grupo",
|
"Add Group": "Adicionar grupo",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Configurar organização",
|
"Setup Organization": "Configurar organização",
|
||||||
"Setup Products": "Configurar produtos",
|
"Setup Products": "Configurar produtos",
|
||||||
"Setup System": "Sistema de configuração",
|
"Setup System": "Sistema de configuração",
|
||||||
|
"Show more": "Mostre mais",
|
||||||
|
"Show less": "Mostre menos",
|
||||||
"Staff": "Funcionários",
|
"Staff": "Funcionários",
|
||||||
"Staff Assignment History": "Histórico de Atribuição de Pessoal",
|
"Staff Assignment History": "Histórico de Atribuição de Pessoal",
|
||||||
"Subledger Account": "Conta auxiliar",
|
"Subledger Account": "Conta auxiliar",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Atualmente em execução",
|
"Currently Running": "Atualmente em execução",
|
||||||
"Custom Report Run Frequency": "Frequência de execução de relatório personalizado",
|
"Custom Report Run Frequency": "Frequência de execução de relatório personalizado",
|
||||||
"Custom Report Run Frequency (Days)": "Frequência de execução de relatório personalizado (dias)",
|
"Custom Report Run Frequency (Days)": "Frequência de execução de relatório personalizado (dias)",
|
||||||
|
"COB": "Fechamento do negócio",
|
||||||
"DETAILS": "DETALHES",
|
"DETAILS": "DETALHES",
|
||||||
"Daily": "Diário",
|
"Daily": "Diário",
|
||||||
"Data Table": "Tabela de dados",
|
"Data Table": "Tabela de dados",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Produto de poupança",
|
"Savings Product": "Produto de poupança",
|
||||||
"Savings SubType": "Subtipo de poupança",
|
"Savings SubType": "Subtipo de poupança",
|
||||||
"Savings transfers in suspense": "Transferências de poupança em suspense",
|
"Savings transfers in suspense": "Transferências de poupança em suspense",
|
||||||
"Schedular Jobs": "Trabalhos de agendador",
|
"Scheduler Jobs": "Trabalhos de agendador",
|
||||||
"Schedule Date": "Data do agendamento",
|
"Schedule Date": "Data do agendamento",
|
||||||
"Score": "Pontuação",
|
"Score": "Pontuação",
|
||||||
"Screen Report": "Relatório de tela",
|
"Screen Report": "Relatório de tela",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Tipo de instrução permanente",
|
"Standing Instruction Type": "Tipo de instrução permanente",
|
||||||
"Standing Instructions": "Instruções permanentes",
|
"Standing Instructions": "Instruções permanentes",
|
||||||
"Start Date": "Data de início",
|
"Start Date": "Data de início",
|
||||||
"Start time": "Hora de início",
|
"Start Time": "Hora de início",
|
||||||
"Started On": "Começou em",
|
"Started On": "Começou em",
|
||||||
"Starting date": "Data de início",
|
"Starting date": "Data de início",
|
||||||
"State / Province": "Estado/Província",
|
"State / Province": "Estado/Província",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Imposto retido na fonte é aplicável",
|
"Withhold Tax is Applicable": "Imposto retido na fonte é aplicável",
|
||||||
"Within Bank": "Dentro do banco",
|
"Within Bank": "Dentro do banco",
|
||||||
"Working Days": "Dias úteis",
|
"Working Days": "Dias úteis",
|
||||||
|
"Workflow Jobs": "Fluxo de trabalho",
|
||||||
"Write Off Date": "Data de baixa",
|
"Write Off Date": "Data de baixa",
|
||||||
"Write off on": "Anote em",
|
"Write off on": "Anote em",
|
||||||
"Write-off": "Eliminar",
|
"Write-off": "Eliminar",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Configurações",
|
"Configurations": "Configurações",
|
||||||
"Configurations page allows you to further customize": "A página Configurações permite personalizar ainda mais a forma como sua organização usa o sistema Mifos.",
|
"Configurations page allows you to further customize": "A página Configurações permite personalizar ainda mais a forma como sua organização usa o sistema Mifos.",
|
||||||
"Configure Maker Checker Tasks": "Configurar tarefas do Maker Checker",
|
"Configure Maker Checker Tasks": "Configurar tarefas do Maker Checker",
|
||||||
|
"Copy": "Cópia de",
|
||||||
"Copy Account Number": "Copiar número da conta",
|
"Copy Account Number": "Copiar número da conta",
|
||||||
"Create Account Number Preference": "Criar preferência de número de conta",
|
"Create Account Number Preference": "Criar preferência de número de conta",
|
||||||
"Create Accounting Closure": "Criar encerramento contábil",
|
"Create Accounting Closure": "Criar encerramento contábil",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"Add Collateral": "Ongeza Dhamana",
|
"Add Collateral": "Ongeza Dhamana",
|
||||||
"Add Column": "Ongeza Safu",
|
"Add Column": "Ongeza Safu",
|
||||||
"Add Currency": "Ongeza Sarafu",
|
"Add Currency": "Ongeza Sarafu",
|
||||||
|
"Add Custom Parameters": "Ongeza Vigezo Maalum",
|
||||||
"Add Event": "Ongeza Tukio",
|
"Add Event": "Ongeza Tukio",
|
||||||
"Add Funds": "Ongeza Fedha",
|
"Add Funds": "Ongeza Fedha",
|
||||||
"Add Group": "Ongeza Kikundi",
|
"Add Group": "Ongeza Kikundi",
|
||||||
@@ -468,6 +469,8 @@
|
|||||||
"Setup Organization": "Shirika la Kuanzisha",
|
"Setup Organization": "Shirika la Kuanzisha",
|
||||||
"Setup Products": "Weka Bidhaa",
|
"Setup Products": "Weka Bidhaa",
|
||||||
"Setup System": "Kuanzisha Mfumo",
|
"Setup System": "Kuanzisha Mfumo",
|
||||||
|
"Show more": "Onyesha zaidi",
|
||||||
|
"Show less": "Onyesha kidogo",
|
||||||
"Staff": "Wafanyakazi",
|
"Staff": "Wafanyakazi",
|
||||||
"Staff Assignment History": "Historia ya Kazi ya Wafanyakazi",
|
"Staff Assignment History": "Historia ya Kazi ya Wafanyakazi",
|
||||||
"Subledger Account": "Akaunti ya Subleja",
|
"Subledger Account": "Akaunti ya Subleja",
|
||||||
@@ -1163,6 +1166,7 @@
|
|||||||
"Currently Running": "Inaendesha Kwa Sasa",
|
"Currently Running": "Inaendesha Kwa Sasa",
|
||||||
"Custom Report Run Frequency": "Marudio ya Uendeshaji wa Ripoti Maalum",
|
"Custom Report Run Frequency": "Marudio ya Uendeshaji wa Ripoti Maalum",
|
||||||
"Custom Report Run Frequency (Days)": "Marudio ya Uendeshaji wa Ripoti Maalum (Siku)",
|
"Custom Report Run Frequency (Days)": "Marudio ya Uendeshaji wa Ripoti Maalum (Siku)",
|
||||||
|
"COB": "Funga ya Biashara",
|
||||||
"DETAILS": "MAELEZO",
|
"DETAILS": "MAELEZO",
|
||||||
"Daily": "Kila siku",
|
"Daily": "Kila siku",
|
||||||
"Data Table": "Jedwali la Data",
|
"Data Table": "Jedwali la Data",
|
||||||
@@ -1895,7 +1899,7 @@
|
|||||||
"Savings Product": "Bidhaa ya Akiba",
|
"Savings Product": "Bidhaa ya Akiba",
|
||||||
"Savings SubType": "Aina ndogo ya Akiba",
|
"Savings SubType": "Aina ndogo ya Akiba",
|
||||||
"Savings transfers in suspense": "Uhamisho wa akiba kwa mashaka",
|
"Savings transfers in suspense": "Uhamisho wa akiba kwa mashaka",
|
||||||
"Schedular Jobs": "Kazi za Mratibu",
|
"Scheduler Jobs": "Kazi za Mratibu",
|
||||||
"Schedule Date": "Tarehe ya Ratiba",
|
"Schedule Date": "Tarehe ya Ratiba",
|
||||||
"Score": "Alama",
|
"Score": "Alama",
|
||||||
"Screen Report": "Ripoti ya skrini",
|
"Screen Report": "Ripoti ya skrini",
|
||||||
@@ -1939,7 +1943,7 @@
|
|||||||
"Standing Instruction Type": "Aina ya Maagizo ya Kudumu",
|
"Standing Instruction Type": "Aina ya Maagizo ya Kudumu",
|
||||||
"Standing Instructions": "Maagizo ya Kudumu",
|
"Standing Instructions": "Maagizo ya Kudumu",
|
||||||
"Start Date": "Tarehe ya Kuanza",
|
"Start Date": "Tarehe ya Kuanza",
|
||||||
"Start time": "Wakati wa kuanza",
|
"Start Time": "Wakati wa kuanza",
|
||||||
"Started On": "Ilianza",
|
"Started On": "Ilianza",
|
||||||
"Starting date": "Tarehe ya kuanza",
|
"Starting date": "Tarehe ya kuanza",
|
||||||
"State / Province": "Jimbo / Mkoa",
|
"State / Province": "Jimbo / Mkoa",
|
||||||
@@ -2089,6 +2093,7 @@
|
|||||||
"Withhold Tax is Applicable": "Kodi ya Zuio Inatumika",
|
"Withhold Tax is Applicable": "Kodi ya Zuio Inatumika",
|
||||||
"Within Bank": "Ndani ya Benki",
|
"Within Bank": "Ndani ya Benki",
|
||||||
"Working Days": "Siku za kazi",
|
"Working Days": "Siku za kazi",
|
||||||
|
"Workflow Jobs": "Kazi za mtiririko wa kazi",
|
||||||
"Write Off Date": "Tarehe ya Kuzimwa",
|
"Write Off Date": "Tarehe ya Kuzimwa",
|
||||||
"Write off on": "Andika mbali",
|
"Write off on": "Andika mbali",
|
||||||
"Write-off": "Kufuta",
|
"Write-off": "Kufuta",
|
||||||
@@ -2369,6 +2374,7 @@
|
|||||||
"Configurations": "Mipangilio",
|
"Configurations": "Mipangilio",
|
||||||
"Configurations page allows you to further customize": "Ukurasa wa Mipangilio hukuruhusu kubinafsisha zaidi jinsi shirika lako linavyotumia mfumo wa Mifos.",
|
"Configurations page allows you to further customize": "Ukurasa wa Mipangilio hukuruhusu kubinafsisha zaidi jinsi shirika lako linavyotumia mfumo wa Mifos.",
|
||||||
"Configure Maker Checker Tasks": "Sanidi Majukumu ya Kikagua Kitengeneza",
|
"Configure Maker Checker Tasks": "Sanidi Majukumu ya Kikagua Kitengeneza",
|
||||||
|
"Copy": "Nakili",
|
||||||
"Copy Account Number": "Nakili Nambari ya Akaunti",
|
"Copy Account Number": "Nakili Nambari ya Akaunti",
|
||||||
"Create Account Number Preference": "Unda Upendeleo wa Nambari ya Akaunti",
|
"Create Account Number Preference": "Unda Upendeleo wa Nambari ya Akaunti",
|
||||||
"Create Accounting Closure": "Unda Kufungwa kwa Uhasibu",
|
"Create Accounting Closure": "Unda Kufungwa kwa Uhasibu",
|
||||||
|
|||||||
Reference in New Issue
Block a user