WEB-263: Add Buy Down Fees tabs
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { Observable } from 'rxjs';
|
||||
import { LoansService } from '../loans.service';
|
||||
|
||||
@Injectable()
|
||||
export class LoanBuyDownFeesDataResolver implements Resolve<Object> {
|
||||
constructor(private loansService: LoansService) {}
|
||||
|
||||
resolve(route: ActivatedRouteSnapshot): Observable<any> {
|
||||
const loanId = route.paramMap.get('loanId') || route.parent.paramMap.get('loanId');
|
||||
|
||||
if (!loanId) {
|
||||
console.error('LoanBuyDownFeesDataResolver: Could not find loanId in route parameters');
|
||||
return new Observable((observer) => {
|
||||
observer.next([]);
|
||||
observer.complete();
|
||||
});
|
||||
}
|
||||
|
||||
return this.loansService.getBuyDownFeeData(loanId);
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,7 @@ import { ViewRecieptComponent } from './loans-view/transactions/view-reciept/vie
|
||||
import { ExportTransactionsComponent } from './loans-view/transactions/export-transactions/export-transactions.component';
|
||||
import { GlimAccountComponent } from './glim-account/glim-account.component';
|
||||
import { CreateGlimAccountComponent } from './glim-account/create-glim-account/create-glim-account.component';
|
||||
import { LoanBuyDownFeesTabComponent } from './loans-view/loan-buy-down-fees-tab/loan-buy-down-fees-tab.component';
|
||||
|
||||
/** Custom Resolvers */
|
||||
import { LoanDetailsResolver } from './common-resolvers/loan-details.resolver';
|
||||
@@ -64,6 +65,7 @@ import { LoanTermVariationsTabComponent } from './loans-view/loan-term-variation
|
||||
import { LoanTermVariationsResolver } from './common-resolvers/loan-term-variations.resolver';
|
||||
import { LoanDeferredIncomeTabComponent } from './loans-view/loan-deferred-income-tab/loan-deferred-income-tab.component';
|
||||
import { LoanDeferredIncomeDataResolver } from './common-resolvers/loan-deferred-income-data.resolver';
|
||||
import { LoanBuyDownFeesDataResolver } from './common-resolvers/loan-buy-down-fees-data.resolver';
|
||||
|
||||
/** Loans Route. */
|
||||
const routes: Routes = [
|
||||
@@ -260,6 +262,14 @@ const routes: Routes = [
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'buy-down-fees',
|
||||
component: LoanBuyDownFeesTabComponent,
|
||||
data: { title: 'Buy Down Fees', breadcrumb: 'Buy Down Fees', routeParamBreadcrumb: false },
|
||||
resolve: {
|
||||
loanBuyDownFeesData: LoanBuyDownFeesDataResolver
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -407,7 +417,8 @@ const routes: Routes = [
|
||||
ExternalAssetOwnerResolver,
|
||||
LoanDelinquencyDataResolver,
|
||||
LoanTermVariationsResolver,
|
||||
LoanDeferredIncomeDataResolver
|
||||
LoanDeferredIncomeDataResolver,
|
||||
LoanBuyDownFeesDataResolver
|
||||
]
|
||||
})
|
||||
export class LoansRoutingModule {}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
<div class="container">
|
||||
<h3>{{ 'labels.heading.Buy Down Fees' | translate }}</h3>
|
||||
|
||||
<div *ngIf="isLoading" class="loading-indicator">
|
||||
<mat-spinner diameter="30"></mat-spinner>
|
||||
</div>
|
||||
|
||||
<div *ngIf="!isLoading">
|
||||
<div *ngIf="buyDownFeeData.length === 0" class="no-data">
|
||||
{{ 'labels.messages.No Data Found' | translate }}
|
||||
</div>
|
||||
|
||||
<table mat-table [dataSource]="buyDownFeeData" *ngIf="buyDownFeeData.length > 0">
|
||||
<ng-container matColumnDef="date">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.heading.Date' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let item">
|
||||
{{ item.date | date: 'mediumDate' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="buyDownFeeAmount">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.heading.Fee Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let item">
|
||||
{{ item.buyDownFeeAmount | formatNumber: '0.00' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="amortizedAmount">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.heading.Amortized Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let item">
|
||||
{{ item.amortizedAmount | formatNumber: '0.00' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="notYetAmortizedAmount">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.heading.Not Yet Amortized Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let item">
|
||||
{{ item.notYetAmortizedAmount | formatNumber: '0.00' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="adjustedAmount">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.heading.Adjusted Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let item">
|
||||
{{ item.adjustedAmount | formatNumber: '0.00' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="chargedOffAmount">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.heading.Charged Off Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let item">
|
||||
{{ item.chargedOffAmount | formatNumber: '0.00' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="buyDownFeeColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: buyDownFeeColumns"></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,106 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import {
|
||||
MatCell,
|
||||
MatCellDef,
|
||||
MatColumnDef,
|
||||
MatHeaderCell,
|
||||
MatHeaderCellDef,
|
||||
MatHeaderRow,
|
||||
MatHeaderRowDef,
|
||||
MatRow,
|
||||
MatRowDef,
|
||||
MatTable
|
||||
} from '@angular/material/table';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { FormatNumberPipe } from '@pipes/format-number.pipe';
|
||||
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
import { LoansService } from '../../loans.service';
|
||||
import { BuyDownFeeAmortizationDetails } from '../../models/loan-account.model';
|
||||
import { DatePipe } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'mifosx-loan-buy-down-fees-tab',
|
||||
templateUrl: './loan-buy-down-fees-tab.component.html',
|
||||
styleUrl: './loan-buy-down-fees-tab.component.scss',
|
||||
imports: [
|
||||
...STANDALONE_SHARED_IMPORTS,
|
||||
MatTable,
|
||||
MatColumnDef,
|
||||
MatHeaderCellDef,
|
||||
MatHeaderCell,
|
||||
MatCellDef,
|
||||
MatCell,
|
||||
MatHeaderRowDef,
|
||||
MatHeaderRow,
|
||||
MatRowDef,
|
||||
MatRow,
|
||||
FormatNumberPipe,
|
||||
DatePipe
|
||||
]
|
||||
})
|
||||
export class LoanBuyDownFeesTabComponent implements OnInit {
|
||||
buyDownFeeData: BuyDownFeeAmortizationDetails[] = [];
|
||||
loanId: string;
|
||||
isLoading = true;
|
||||
|
||||
buyDownFeeColumns: string[] = [
|
||||
'date',
|
||||
'buyDownFeeAmount',
|
||||
'amortizedAmount',
|
||||
'notYetAmortizedAmount',
|
||||
'adjustedAmount',
|
||||
'chargedOffAmount'
|
||||
];
|
||||
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
private loansService: LoansService
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.getLoanId();
|
||||
this.loadBuyDownFees();
|
||||
}
|
||||
|
||||
private getLoanId(): void {
|
||||
if (this.route.snapshot.data && this.route.snapshot.data['loanId']) {
|
||||
this.loanId = this.route.snapshot.data['loanId'];
|
||||
return;
|
||||
}
|
||||
|
||||
let currentRoute = this.route;
|
||||
while (currentRoute) {
|
||||
if (currentRoute.snapshot.paramMap.has('loanId')) {
|
||||
this.loanId = currentRoute.snapshot.paramMap.get('loanId');
|
||||
return;
|
||||
}
|
||||
if (currentRoute.parent) {
|
||||
currentRoute = currentRoute.parent;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
console.error('Could not find loanId in route parameters');
|
||||
}
|
||||
|
||||
private loadBuyDownFees(): void {
|
||||
if (!this.loanId) {
|
||||
console.error('Cannot load buy down fees: loanId is undefined');
|
||||
this.isLoading = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this.isLoading = true;
|
||||
this.loansService.getBuyDownFeeData(this.loanId).subscribe({
|
||||
next: (data: BuyDownFeeAmortizationDetails[]) => {
|
||||
this.buyDownFeeData = data || [];
|
||||
this.isLoading = false;
|
||||
},
|
||||
error: (error) => {
|
||||
console.error('Error loading buy down fees:', error);
|
||||
this.isLoading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -219,6 +219,17 @@
|
||||
{{ 'labels.inputs.Deferred income' | translate }}
|
||||
</a>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="loanDetailsData.enableBuyDownFee">
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./buy-down-fees']"
|
||||
routerLinkActive
|
||||
#buyDownFees="routerLinkActive"
|
||||
[active]="buyDownFees.isActive"
|
||||
>
|
||||
{{ 'labels.heading.Buy Down Fees' | translate }}
|
||||
</a>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="loanDetailsData.status.active">
|
||||
<a
|
||||
mat-tab-link
|
||||
|
||||
@@ -104,6 +104,10 @@ export class LoansService {
|
||||
return this.http.get(`/loans/${loanId}/deferredincome`);
|
||||
}
|
||||
|
||||
getBuyDownFeeData(loanId: string): Observable<any> {
|
||||
return this.http.get(`/loans/${loanId}/buydownfees`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the loan template data with specific condition
|
||||
* @param loanId Loan Id
|
||||
|
||||
@@ -133,3 +133,15 @@ export interface LoanCapitalizedIncomeData {
|
||||
unrecognizedAmount?: number;
|
||||
amountAdjustment?: number;
|
||||
}
|
||||
|
||||
export interface BuyDownFeeAmortizationDetails {
|
||||
id: number;
|
||||
loanId: number;
|
||||
transactionId: number;
|
||||
date: string;
|
||||
buyDownFeeAmount: number;
|
||||
amortizedAmount: number;
|
||||
notYetAmortizedAmount: number;
|
||||
adjustedAmount: number;
|
||||
chargedOffAmount: number;
|
||||
}
|
||||
|
||||
@@ -1164,7 +1164,14 @@
|
||||
"Grace On Principal": "Grace na ředitelce",
|
||||
"Insert Installment": "Vložit splátku",
|
||||
"Interest Rate": "Úroková sazba",
|
||||
"Principal Amount": "Částka jistiny"
|
||||
"Principal Amount": "Částka jistiny",
|
||||
"Buy Down Fees": "Poplatky za odkup",
|
||||
"Fee Amount": "Částka poplatku",
|
||||
"Amortized Amount": "Amortizovaná částka",
|
||||
"Not Yet Amortized Amount": "Dosud neamortizovana castka",
|
||||
"Adjusted Amount": "Upravená částka",
|
||||
"Charged Off Amount": "Odepsaná částka",
|
||||
"Date": "Datum"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Povinné",
|
||||
"Voluntary": "Dobrovolný",
|
||||
"Write a note": "Napište poznámku",
|
||||
"“Maker-Checker” principle requires every tasks": "Princip „Maker-Checker“ vyžaduje, aby každý úkol prováděli dva lidé, aby se snížila pravděpodobnost chyb a zneužití. Jedna osoba proces iniciuje a druhá jej dokončí."
|
||||
"“Maker-Checker” principle requires every tasks": "Princip „Maker-Checker“ vyžaduje, aby každý úkol prováděli dva lidé, aby se snížila pravděpodobnost chyb a zneužití. Jedna osoba proces iniciuje a druhá jej dokončí.",
|
||||
"Buy Down Fees": "Poplatky za odkup"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Přístrojová deska",
|
||||
"Home": "Domov",
|
||||
"Login": "Přihlásit se"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Nebyla nalezena žádná data"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Grace On Principal",
|
||||
"Insert Installment": "Ratenzahlung einfügen",
|
||||
"Interest Rate": "Zinssatz",
|
||||
"Principal Amount": "Hauptbetrag"
|
||||
"Principal Amount": "Hauptbetrag",
|
||||
"Buy Down Fees": "Kaufgebühren",
|
||||
"Fee Amount": "Gebührenbetrag",
|
||||
"Amortized Amount": "Amortisierter Betrag",
|
||||
"Not Yet Amortized Amount": "Noch nicht amortisierter Betrag",
|
||||
"Adjusted Amount": "Angepasster Betrag",
|
||||
"Charged Off Amount": "Abgeschriebener Betrag",
|
||||
"Date": "Datum"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3302,12 +3309,16 @@
|
||||
"Mandatory": "Obligatorisch",
|
||||
"Voluntary": "Freiwillig",
|
||||
"Write a note": "Schreib eine Notitz",
|
||||
"“Maker-Checker” principle requires every tasks": "Das „Maker-Checker“-Prinzip erfordert, dass jede Aufgabe von zwei Personen erledigt wird, um das Risiko von Fehlern und Missbrauch zu verringern. Eine Person leitet den Prozess ein und die zweite Person schließt ihn ab."
|
||||
"“Maker-Checker” principle requires every tasks": "Das „Maker-Checker“-Prinzip erfordert, dass jede Aufgabe von zwei Personen erledigt wird, um das Risiko von Fehlern und Missbrauch zu verringern. Eine Person leitet den Prozess ein und die zweite Person schließt ihn ab.",
|
||||
"Buy Down Fees": "Kaufgebühren"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Armaturenbrett",
|
||||
"Home": "Heim",
|
||||
"Login": "Anmeldung"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Keine Daten gefunden"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1169,7 +1169,14 @@
|
||||
"Grace On Principal": "Grace On Principal",
|
||||
"Insert Installment": "Insert Installment",
|
||||
"Interest Rate": "Interest Rate",
|
||||
"Principal Amount": "Principal Amount"
|
||||
"Principal Amount": "Principal Amount",
|
||||
"Buy Down Fees": "Buy Down Fees",
|
||||
"Fee Amount": "Fee Amount",
|
||||
"Amortized Amount": "Amortized Amount",
|
||||
"Not Yet Amortized Amount": "Not Yet Amortized Amount",
|
||||
"Adjusted Amount": "Adjusted Amount",
|
||||
"Charged Off Amount": "Charged Off Amount",
|
||||
"Date": "Date"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3408,12 +3415,16 @@
|
||||
"Mandatory": "Mandatory",
|
||||
"Voluntary": "Voluntary",
|
||||
"Write a note": "Write a note",
|
||||
"“Maker-Checker” principle requires every tasks": "The “Maker-Checker” principle requires every tasks to be completed by two people to reduce the chance of errors and misuse. One person initiates the process and the second completes it."
|
||||
"“Maker-Checker” principle requires every tasks": "The “Maker-Checker” principle requires every tasks to be completed by two people to reduce the chance of errors and misuse. One person initiates the process and the second completes it.",
|
||||
"Buy Down Fees": "Buy Down Fees"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Dashboard",
|
||||
"Home": "Home",
|
||||
"Login": "Login"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "No Data Found"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1164,7 +1164,14 @@
|
||||
"Grace On Principal": "Gracia al director",
|
||||
"Insert Installment": "Insertar cuota",
|
||||
"Interest Rate": "Tasa de interés",
|
||||
"Principal Amount": "Monto principal"
|
||||
"Principal Amount": "Monto principal",
|
||||
"Buy Down Fees": "Tarifas de compra",
|
||||
"Fee Amount": "Importe de la tarifa",
|
||||
"Amortized Amount": "Importe amortizado",
|
||||
"Not Yet Amortized Amount": "Monto aun no amortizado",
|
||||
"Adjusted Amount": "Importe ajustado",
|
||||
"Charged Off Amount": "Importe cancelado",
|
||||
"Date": "Fecha"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Obligatorio",
|
||||
"Voluntary": "Voluntario",
|
||||
"Write a note": "Escribe una nota",
|
||||
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa."
|
||||
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa.",
|
||||
"Buy Down Fees": "Tarifas de compra"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Tableros",
|
||||
"Home": "Inicio",
|
||||
"Login": "Acceso"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "No se encontraron datos"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1164,7 +1164,14 @@
|
||||
"Grace On Principal": "Gracia al director",
|
||||
"Insert Installment": "Insertar cuota",
|
||||
"Interest Rate": "Tasa de interés",
|
||||
"Principal Amount": "Monto principal"
|
||||
"Principal Amount": "Monto principal",
|
||||
"Buy Down Fees": "Tarifas de compra",
|
||||
"Fee Amount": "Importe de la tarifa",
|
||||
"Amortized Amount": "Importe amortizado",
|
||||
"Not Yet Amortized Amount": "Monto aun no amortizado",
|
||||
"Adjusted Amount": "Importe ajustado",
|
||||
"Charged Off Amount": "Importe cancelado",
|
||||
"Date": "Fecha"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Obligatorio",
|
||||
"Voluntary": "Voluntario",
|
||||
"Write a note": "Escribe una nota",
|
||||
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa."
|
||||
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa.",
|
||||
"Buy Down Fees": "Tarifas de compra"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Tableros",
|
||||
"Home": "Inicio",
|
||||
"Login": "Acceso"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "No se encontraron datos"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Grace sur le principal",
|
||||
"Insert Installment": "Insérer un versement",
|
||||
"Interest Rate": "Taux d'intérêt",
|
||||
"Principal Amount": "Montant principal"
|
||||
"Principal Amount": "Montant principal",
|
||||
"Buy Down Fees": "Frais de rachat",
|
||||
"Fee Amount": "Montant des frais",
|
||||
"Amortized Amount": "Montant amorti",
|
||||
"Not Yet Amortized Amount": "Montant pas encore amorti",
|
||||
"Adjusted Amount": "Montant ajusté",
|
||||
"Charged Off Amount": "Montant radié",
|
||||
"Date": "Date"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3302,12 +3309,16 @@
|
||||
"Mandatory": "Obligatoire",
|
||||
"Voluntary": "Volontaire",
|
||||
"Write a note": "Écrire une note",
|
||||
"“Maker-Checker” principle requires every tasks": "Le principe « Maker-Checker » exige que chaque tâche soit effectuée par deux personnes afin de réduire les risques d'erreurs et de mauvaise utilisation. Une personne lance le processus et la seconde le termine."
|
||||
"“Maker-Checker” principle requires every tasks": "Le principe « Maker-Checker » exige que chaque tâche soit effectuée par deux personnes afin de réduire les risques d'erreurs et de mauvaise utilisation. Une personne lance le processus et la seconde le termine.",
|
||||
"Buy Down Fees": "Frais de rachat"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Tableau de bord",
|
||||
"Home": "Maison",
|
||||
"Login": "Se connecter"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Aucune donnée trouvée"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Grace sul preside",
|
||||
"Insert Installment": "Inserisci rata",
|
||||
"Interest Rate": "Tasso di interesse",
|
||||
"Principal Amount": "Importo principale"
|
||||
"Principal Amount": "Importo principale",
|
||||
"Buy Down Fees": "Commissioni di acquisto",
|
||||
"Fee Amount": "Importo commissione",
|
||||
"Amortized Amount": "Importo ammortizzato",
|
||||
"Not Yet Amortized Amount": "Importo non ancora ammortizzato",
|
||||
"Adjusted Amount": "Importo rettificato",
|
||||
"Charged Off Amount": "Importo stornato",
|
||||
"Date": "Data"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Obbligatorio",
|
||||
"Voluntary": "Volontario",
|
||||
"Write a note": "Scrivi una nota",
|
||||
"“Maker-Checker” principle requires every tasks": "Il principio “Maker-Checker” richiede che ogni attività venga completata da due persone per ridurre la possibilità di errori e usi impropri. Una persona avvia il processo e la seconda lo completa."
|
||||
"“Maker-Checker” principle requires every tasks": "Il principio “Maker-Checker” richiede che ogni attività venga completata da due persone per ridurre la possibilità di errori e usi impropri. Una persona avvia il processo e la seconda lo completa.",
|
||||
"Buy Down Fees": "Commissioni di acquisto"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Pannello di controllo",
|
||||
"Home": "Casa",
|
||||
"Login": "Login"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Nessun dato trovato"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1166,7 +1166,14 @@
|
||||
"Grace On Principal": "그레이스 온 교장",
|
||||
"Insert Installment": "할부 삽입",
|
||||
"Interest Rate": "이자율",
|
||||
"Principal Amount": "원금"
|
||||
"Principal Amount": "원금",
|
||||
"Buy Down Fees": "매입 수수료",
|
||||
"Fee Amount": "수수료 금액",
|
||||
"Amortized Amount": "상각 금액",
|
||||
"Not Yet Amortized Amount": "Not Yet Amortized Amount",
|
||||
"Adjusted Amount": "조정된 금액",
|
||||
"Charged Off Amount": "상각 금액",
|
||||
"Date": "날짜"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "필수적인",
|
||||
"Voluntary": "자발적인",
|
||||
"Write a note": "메모 쓰기",
|
||||
"“Maker-Checker” principle requires every tasks": "\"Maker-Checker\" 원칙은 오류와 오용 가능성을 줄이기 위해 모든 작업을 두 사람이 완료하도록 요구합니다. 한 사람이 프로세스를 시작하고 두 번째 사람이 프로세스를 완료합니다."
|
||||
"“Maker-Checker” principle requires every tasks": "\"Maker-Checker\" 원칙은 오류와 오용 가능성을 줄이기 위해 모든 작업을 두 사람이 완료하도록 요구합니다. 한 사람이 프로세스를 시작하고 두 번째 사람이 프로세스를 완료합니다.",
|
||||
"Buy Down Fees": "매입 수수료"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "계기반",
|
||||
"Home": "집",
|
||||
"Login": "로그인"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "데이터를 찾을 수 없음"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Grace On Principal",
|
||||
"Insert Installment": "Įdėkite įmoką",
|
||||
"Interest Rate": "Palūkanų norma",
|
||||
"Principal Amount": "Pagrindinė suma"
|
||||
"Principal Amount": "Pagrindinė suma",
|
||||
"Buy Down Fees": "Išpirkimo mokesčiai",
|
||||
"Fee Amount": "Mokesčio suma",
|
||||
"Amortized Amount": "Amortizuota suma",
|
||||
"Not Yet Amortized Amount": "Dar neamortizuota suma",
|
||||
"Adjusted Amount": "Koreguota suma",
|
||||
"Charged Off Amount": "Nurašyta suma",
|
||||
"Date": "Data"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Privaloma",
|
||||
"Voluntary": "Savanoriškas",
|
||||
"Write a note": "Parašykite pastabą",
|
||||
"“Maker-Checker” principle requires every tasks": "„Maker-Checker“ principas reikalauja, kad kiekvieną užduotį atliktų du žmonės, kad būtų sumažinta klaidų ir netinkamo naudojimo galimybė. Vienas asmuo pradeda procesą, o antrasis jį užbaigia."
|
||||
"“Maker-Checker” principle requires every tasks": "„Maker-Checker“ principas reikalauja, kad kiekvieną užduotį atliktų du žmonės, kad būtų sumažinta klaidų ir netinkamo naudojimo galimybė. Vienas asmuo pradeda procesą, o antrasis jį užbaigia.",
|
||||
"Buy Down Fees": "Išpirkimo mokesčiai"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Prietaisų skydelis",
|
||||
"Home": "Namai",
|
||||
"Login": "Prisijungti"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Duomenų nerasta"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Grace On Principal",
|
||||
"Insert Installment": "Ievietojiet iemaksu",
|
||||
"Interest Rate": "Procentu likme",
|
||||
"Principal Amount": "Pamatsumma"
|
||||
"Principal Amount": "Pamatsumma",
|
||||
"Buy Down Fees": "Izpirkšanas maksas",
|
||||
"Fee Amount": "Maksas summa",
|
||||
"Amortized Amount": "Amortizētā summa",
|
||||
"Not Yet Amortized Amount": "Vel nav amortizeta summa",
|
||||
"Adjusted Amount": "Koriģētā summa",
|
||||
"Charged Off Amount": "Norakstītā summa",
|
||||
"Date": "Datums"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Obligāts",
|
||||
"Voluntary": "Brīvprātīgi",
|
||||
"Write a note": "Uzrakstiet piezīmi",
|
||||
"“Maker-Checker” principle requires every tasks": "“Maker-Checker” princips paredz, ka katrs uzdevums ir jāveic diviem cilvēkiem, lai samazinātu kļūdu un nepareizas lietošanas iespējamību. Viens cilvēks uzsāk procesu, bet otrs to pabeidz."
|
||||
"“Maker-Checker” principle requires every tasks": "“Maker-Checker” princips paredz, ka katrs uzdevums ir jāveic diviem cilvēkiem, lai samazinātu kļūdu un nepareizas lietošanas iespējamību. Viens cilvēks uzsāk procesu, bet otrs to pabeidz.",
|
||||
"Buy Down Fees": "Izpirkšanas maksas"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Mērinstrumentu panelis",
|
||||
"Home": "Mājas",
|
||||
"Login": "Pieslēgties"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Dati nav atrasti"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "प्रिन्सिपलमा अनुग्रह",
|
||||
"Insert Installment": "किस्ता घुसाउनुहोस्",
|
||||
"Interest Rate": "ब्याज दर",
|
||||
"Principal Amount": "मूल रकम"
|
||||
"Principal Amount": "मूल रकम",
|
||||
"Buy Down Fees": "खरीद शुल्क",
|
||||
"Fee Amount": "शुल्क रकम",
|
||||
"Amortized Amount": "परिशोधित रकम",
|
||||
"Not Yet Amortized Amount": "Not Yet Amortized Amount",
|
||||
"Adjusted Amount": "समायोजित रकम",
|
||||
"Charged Off Amount": "चार्ज गरिएको रकम",
|
||||
"Date": "मिति"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "अनिवार्य",
|
||||
"Voluntary": "स्वैच्छिक",
|
||||
"Write a note": "नोट लेख्नुहोस्",
|
||||
"“Maker-Checker” principle requires every tasks": "\"मेकर-चेकर\" सिद्धान्तले त्रुटि र दुरुपयोगको सम्भावना कम गर्न प्रत्येक कार्यहरू दुई व्यक्तिद्वारा पूरा गर्न आवश्यक छ। एक व्यक्तिले प्रक्रिया सुरु गर्छ र दोस्रोले यसलाई पूरा गर्दछ।"
|
||||
"“Maker-Checker” principle requires every tasks": "\"मेकर-चेकर\" सिद्धान्तले त्रुटि र दुरुपयोगको सम्भावना कम गर्न प्रत्येक कार्यहरू दुई व्यक्तिद्वारा पूरा गर्न आवश्यक छ। एक व्यक्तिले प्रक्रिया सुरु गर्छ र दोस्रोले यसलाई पूरा गर्दछ।",
|
||||
"Buy Down Fees": "खरीद शुल्क"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "ड्यासबोर्ड",
|
||||
"Home": "घर",
|
||||
"Login": "लग - इन"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "कुनै डाटा फेला परेन"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Graça no diretor",
|
||||
"Insert Installment": "Inserir parcela",
|
||||
"Interest Rate": "Taxa de juro",
|
||||
"Principal Amount": "Valor principal"
|
||||
"Principal Amount": "Valor principal",
|
||||
"Buy Down Fees": "Taxas de compra",
|
||||
"Fee Amount": "Valor da taxa",
|
||||
"Amortized Amount": "Valor amortizado",
|
||||
"Not Yet Amortized Amount": "Valor ainda nao amortizado",
|
||||
"Adjusted Amount": "Valor ajustado",
|
||||
"Charged Off Amount": "Valor baixado",
|
||||
"Date": "Data"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Obrigatório",
|
||||
"Voluntary": "Voluntário",
|
||||
"Write a note": "Escreva uma nota",
|
||||
"“Maker-Checker” principle requires every tasks": "O princípio “Maker-Checker” exige que todas as tarefas sejam concluídas por duas pessoas para reduzir a chance de erros e uso indevido. Uma pessoa inicia o processo e a segunda o conclui."
|
||||
"“Maker-Checker” principle requires every tasks": "O princípio “Maker-Checker” exige que todas as tarefas sejam concluídas por duas pessoas para reduzir a chance de erros e uso indevido. Uma pessoa inicia o processo e a segunda o conclui.",
|
||||
"Buy Down Fees": "Taxas de compra"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Painel",
|
||||
"Home": "Lar",
|
||||
"Login": "Conecte-se"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Nenhum dado encontrado"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
@@ -1165,7 +1165,14 @@
|
||||
"Grace On Principal": "Grace On Principal",
|
||||
"Insert Installment": "Weka Ufungaji",
|
||||
"Interest Rate": "Kiwango cha Riba",
|
||||
"Principal Amount": "Kiasi cha Mkuu"
|
||||
"Principal Amount": "Kiasi cha Mkuu",
|
||||
"Buy Down Fees": "Ada za Ununuzi",
|
||||
"Fee Amount": "Kiasi cha Ada",
|
||||
"Amortized Amount": "Kiasi Kilichoondolewa",
|
||||
"Not Yet Amortized Amount": "Kiasi Bado Kijaondolewa",
|
||||
"Adjusted Amount": "Kiasi Kilichorekebishwa",
|
||||
"Charged Off Amount": "Kiasi Kilichofutwa",
|
||||
"Date": "Tarehe"
|
||||
},
|
||||
"inputs": {
|
||||
"accounting": {
|
||||
@@ -3303,12 +3310,16 @@
|
||||
"Mandatory": "Lazima",
|
||||
"Voluntary": "Kwa hiari",
|
||||
"Write a note": "Andika dokezo",
|
||||
"“Maker-Checker” principle requires every tasks": "Kanuni ya \"Mtengenezaji-Kikagua\" inahitaji kila kazi kukamilishwa na watu wawili ili kupunguza uwezekano wa makosa na matumizi mabaya. Mtu mmoja anaanzisha mchakato na wa pili anakamilisha."
|
||||
"“Maker-Checker” principle requires every tasks": "Kanuni ya \"Mtengenezaji-Kikagua\" inahitaji kila kazi kukamilishwa na watu wawili ili kupunguza uwezekano wa makosa na matumizi mabaya. Mtu mmoja anaanzisha mchakato na wa pili anakamilisha.",
|
||||
"Buy Down Fees": "Ada za Ununuzi"
|
||||
},
|
||||
"titles": {
|
||||
"Dashboard": "Dashibodi",
|
||||
"Home": "Nyumbani",
|
||||
"Login": "Ingia"
|
||||
},
|
||||
"messages": {
|
||||
"No Data Found": "Hakuna Data Imepatikana"
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
||||
Reference in New Issue
Block a user