fix: Loan transactions refresh after apply Capitalized Income Adjustment transaction

This commit is contained in:
Jose Alberto Hernandez
2025-05-28 20:03:08 -05:00
parent 2508c475b3
commit 140ae09a6c
17 changed files with 138 additions and 69 deletions
@@ -65,7 +65,7 @@
[ngClass]="loanTransactionColor(transaction)" [ngClass]="loanTransactionColor(transaction)"
(click)="showTransactions(transaction)" (click)="showTransactions(transaction)"
> >
{{ transaction.type.value }} {{ transaction.type.value | translateKey: 'catalogs' }}
</td> </td>
</ng-container> </ng-container>
@@ -26,6 +26,7 @@ import { DatepickerBase } from 'app/shared/form-dialog/formfield/model/datepicke
export class TransactionsTabComponent implements OnInit { export class TransactionsTabComponent implements OnInit {
/** Loan Details Data */ /** Loan Details Data */
transactionsData: LoanTransaction[] = []; transactionsData: LoanTransaction[] = [];
loanDetailsData: any;
/** Form control to handle accural parameter */ /** Form control to handle accural parameter */
hideAccrualsParam: UntypedFormControl; hideAccrualsParam: UntypedFormControl;
hideReversedParam: UntypedFormControl; hideReversedParam: UntypedFormControl;
@@ -89,13 +90,14 @@ export class TransactionsTabComponent implements OnInit {
private alertService: AlertService private alertService: AlertService
) { ) {
this.route.parent.parent.data.subscribe((data: { loanDetailsData: any }) => { this.route.parent.parent.data.subscribe((data: { loanDetailsData: any }) => {
this.transactionsData = data.loanDetailsData.transactions; this.loanDetailsData = data.loanDetailsData;
this.status = data.loanDetailsData.status.value; this.status = data.loanDetailsData.status.value;
}); });
this.loanId = this.route.parent.parent.snapshot.params['loanId']; this.loanId = this.route.parent.parent.snapshot.params['loanId'];
} }
ngOnInit() { ngOnInit() {
this.transactionsData = this.loanDetailsData.transactions;
this.hideAccrualsParam = new UntypedFormControl(false); this.hideAccrualsParam = new UntypedFormControl(false);
this.hideReversedParam = new UntypedFormControl(false); this.hideReversedParam = new UntypedFormControl(false);
this.setLoanTransactions(); this.setLoanTransactions();
@@ -179,6 +181,7 @@ export class TransactionsTabComponent implements OnInit {
* REAGE:29 * REAGE:29
* REAMORTIZE:30 * REAMORTIZE:30
* INTEREST REFUND:33 * INTEREST REFUND:33
* CAPITALIZED INCOME:35
* CONTRACT_TERMINATION:90 * CONTRACT_TERMINATION:90
*/ */
showTransactions(transactionsData: LoanTransaction) { showTransactions(transactionsData: LoanTransaction) {
@@ -197,6 +200,7 @@ export class TransactionsTabComponent implements OnInit {
30, 30,
31, 31,
33, 33,
35,
90 90
].includes(transactionsData.type.id)) { ].includes(transactionsData.type.id)) {
this.router.navigate([transactionsData.id], { relativeTo: this.route }); this.router.navigate([transactionsData.id], { relativeTo: this.route });
@@ -355,9 +359,7 @@ export class TransactionsTabComponent implements OnInit {
private reload() { private reload() {
const clientId = this.route.parent.parent.snapshot.params['clientId']; const clientId = this.route.parent.parent.snapshot.params['clientId'];
const url: string = this.router.url; const url: string = this.router.url;
this.router this.router.navigateByUrl(`/clients`, { skipLocationChange: true }).then(() => this.router.navigate([url]));
.navigateByUrl(`/clients/${clientId}/loans-accounts`, { skipLocationChange: true })
.then(() => this.router.navigate([url]));
} }
displaySubMenu(transaction: LoanTransaction): boolean { displaySubMenu(transaction: LoanTransaction): boolean {
@@ -373,65 +375,80 @@ export class TransactionsTabComponent implements OnInit {
.getLoanTransactionActionTemplate(accountId, 'capitalizedIncomeAdjustment', `${transaction.id}`) .getLoanTransactionActionTemplate(accountId, 'capitalizedIncomeAdjustment', `${transaction.id}`)
.subscribe((response: any) => { .subscribe((response: any) => {
const transactionDate = response.date || transaction.date; const transactionDate = response.date || transaction.date;
const transactionAmount = response.amount || transaction.amount; if (response.amount == 0) {
const formfields: FormfieldBase[] = [ this.displayAlertMessage('Capitalized Income amount adjusted already adjusted', transaction.amount);
new DatepickerBase({ } else {
controlName: 'transactionDate', const transactionAmount = response.amount || transaction.amount;
label: 'Date', const formfields: FormfieldBase[] = [
value: this.dateUtils.parseDate(transactionDate), new DatepickerBase({
type: 'datetime-local', controlName: 'transactionDate',
required: true, label: 'Date',
minDate: transaction.date, value: this.dateUtils.parseDate(transactionDate),
order: 1 type: 'datetime-local',
}), required: true,
new InputBase({ minDate: transaction.date,
controlName: 'amount', order: 1
label: 'Amount', }),
value: transactionAmount, new InputBase({
type: 'number', controlName: 'amount',
required: true, label: 'Amount',
max: transactionAmount, value: transactionAmount,
min: 0.001, type: 'number',
order: 2 required: true,
}) max: transactionAmount,
min: 0.001,
order: 2
})
]; ];
const data = { const data = {
title: `Adjustment ${transaction.type.value} Transaction`, title: `Adjustment ${transaction.type.value} Transaction`,
layout: { addButtonText: 'Adjustment' }, layout: { addButtonText: 'Adjustment' },
formfields: formfields formfields: formfields
}; };
const chargebackDialogRef = this.dialog.open(FormDialogComponent, { data }); const chargebackDialogRef = this.dialog.open(FormDialogComponent, { data });
chargebackDialogRef.afterClosed().subscribe((response: { data: any }) => { chargebackDialogRef.afterClosed().subscribe((response: { data: any }) => {
if (response.data) { if (response.data) {
const dateFormat = this.settingsService.dateFormat; const dateFormat = this.settingsService.dateFormat;
if (response.data.value.amount <= transactionAmount) { if (response.data.value.amount <= transactionAmount) {
const locale = this.settingsService.language.code; const locale = this.settingsService.language.code;
const payload = { const payload = {
transactionDate: this.dateUtils.formatDate(response.data.value.transactionDate, dateFormat), transactionDate: this.dateUtils.formatDate(response.data.value.transactionDate, dateFormat),
transactionAmount: response.data.value.amount, transactionAmount: response.data.value.amount,
locale, locale,
dateFormat dateFormat
}; };
this.loansService this.loansService
.executeLoansAccountTransactionsCommand( .executeLoansAccountTransactionsCommand(
accountId, accountId,
'capitalizedIncomeAdjustment', 'capitalizedIncomeAdjustment',
payload, payload,
transaction.id transaction.id
) )
.subscribe(() => { .subscribe(() => {
this.router.navigate(['../'], { relativeTo: this.route }); this.reload();
}); });
} else { } else {
this.alertService.alert({ this.displayAlertMessage(
type: 'BusinessRule', 'Capitalized Income Adjustment amount must be lower or equal to',
message: 'Chargeback amount must be lower or equal to: ' + transaction.amount transactionAmount
}); );
}
} }
} });
}); }
}); });
} }
private displayAlertMessage(label: string, amount: number): void {
let message: string = this.translateService.instant('errors.' + label);
if (amount) {
message = message + ': ' + amount;
}
this.alertService.alert({
type: 'BusinessRule',
message: message
});
}
} }
@@ -13,7 +13,7 @@
<div <div
*ngIf="loanProductAccountingForm.value.accountingRule >= 2 && loanProductAccountingForm.value.accountingRule <= 4" *ngIf="loanProductAccountingForm.value.accountingRule >= 2 && loanProductAccountingForm.value.accountingRule <= 4"
class="flex-fill layout-row-wrap gap-2percent responsive-column" class="flex-100 layout-row-wrap responsive-column"
> >
<mat-checkbox *ngIf="isAccountingAccrualBased" class="flex-73" formControlName="enableAccrualActivityPosting">{{ <mat-checkbox *ngIf="isAccountingAccrualBased" class="flex-73" formControlName="enableAccrualActivityPosting">{{
'labels.inputs.Enable Accrual Activity Posting on Installment Due Date' | translate 'labels.inputs.Enable Accrual Activity Posting on Installment Due Date' | translate
@@ -56,7 +56,7 @@
*ngIf=" *ngIf="
loanProductAccountingForm.value.accountingRule === 3 || loanProductAccountingForm.value.accountingRule === 4 loanProductAccountingForm.value.accountingRule === 3 || loanProductAccountingForm.value.accountingRule === 4
" "
class="flex-fill layout-row-wrap gap-2percent responsive-column" class="flex-100 layout-row-wrap responsive-column"
> >
<mifosx-gl-account-selector <mifosx-gl-account-selector
class="flex-48" class="flex-48"
@@ -195,7 +195,7 @@
<h4 class="mat-h4 flex-98">{{ 'labels.heading.Expenses' | translate }}</h4> <h4 class="mat-h4 flex-98">{{ 'labels.heading.Expenses' | translate }}</h4>
<mifosx-gl-account-selector <mifosx-gl-account-selector
fxFlex="48%" class="flex-48"
[inputFormControl]="loanProductAccountingForm.controls.writeOffAccountId" [inputFormControl]="loanProductAccountingForm.controls.writeOffAccountId"
[glAccountList]="expenseAccountData" [glAccountList]="expenseAccountData"
[required]="true" [required]="true"
@@ -245,7 +245,7 @@
<mifosx-gl-account-selector <mifosx-gl-account-selector
*ngIf="capitalizedIncome?.enableIncomeCapitalization" *ngIf="capitalizedIncome?.enableIncomeCapitalization"
fxFlex="48%" class="flex-48"
[inputFormControl]="loanProductAccountingForm.controls.deferredIncomeLiabilityAccountId" [inputFormControl]="loanProductAccountingForm.controls.deferredIncomeLiabilityAccountId"
[glAccountList]="liabilityAccountData" [glAccountList]="liabilityAccountData"
[required]="true" [required]="true"
@@ -253,7 +253,7 @@
> >
</mifosx-gl-account-selector> </mifosx-gl-account-selector>
<mat-divider fxFlex="98%"></mat-divider> <mat-divider fxFlex="flex-98"></mat-divider>
<mat-checkbox class="flex-73" formControlName="advancedAccountingRules">{{ <mat-checkbox class="flex-73" formControlName="advancedAccountingRules">{{
'labels.heading.Advanced Accounting Rules' | translate 'labels.heading.Advanced Accounting Rules' | translate
@@ -261,7 +261,7 @@
<div <div
*ngIf="loanProductAccountingForm.value.advancedAccountingRules" *ngIf="loanProductAccountingForm.value.advancedAccountingRules"
class="flex-fill layout-row-wrap gap-2percent responsive-column" class="flex-100 layout-row-wrap responsive-column"
> >
<h4 class="mat-h4 flex-33"> <h4 class="mat-h4 flex-33">
{{ 'labels.heading.Configure Fund Sources for Payment Channels' | translate }} {{ 'labels.heading.Configure Fund Sources for Payment Channels' | translate }}
@@ -492,7 +492,7 @@
</div> </div>
</div> </div>
<div class="layout-row align-center gap-2percent margin-t responsive-column"> <div class="layout-row align-center margin-t responsive-column">
<button mat-raised-button matStepperPrevious> <button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Previous' | translate }} {{ 'labels.buttons.Previous' | translate }}
@@ -1,4 +1,4 @@
<div class="layout-column"> <div class="layout-column m-r-10">
<mat-form-field class="flex-100" *ngIf="required"> <mat-form-field class="flex-100" *ngIf="required">
<mat-label>{{ 'labels.inputs.' + inputLabel | translate }}</mat-label> <mat-label>{{ 'labels.inputs.' + inputLabel | translate }}</mat-label>
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Přihlášen jako", "Logged in as": "Přihlášen jako",
"Remember me": "Zapamatuj si mě", "Remember me": "Zapamatuj si mě",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Výše kapitalizovaného příjmu již upravená",
"Capitalized Income Adjustment amount must be lower or equal to": "Částka úpravy kapitalizovaného příjmu musí být nižší nebo rovna",
"Email not valid": "Email není platný", "Email not valid": "Email není platný",
"Filling Details": "Kliknutím začněte vyplňovat podrobnosti. * pole označení jsou nezbytná. Pro více podrobností klikněte na:", "Filling Details": "Kliknutím začněte vyplňovat podrobnosti. * pole označení jsou nezbytná. Pro více podrobností klikněte na:",
"Password is required": "Je vyžadováno heslo", "Password is required": "Je vyžadováno heslo",
@@ -536,6 +538,8 @@
"Inactive": "Inactive", "Inactive": "Inactive",
"Loans": "Loans", "Loans": "Loans",
"CENTER": "CENTRUM", "CENTER": "CENTRUM",
"Capitalized Income": "Kapitalizovaný příjem",
"Capitalized Income Adjustment": "Úprava kapitalizovaného příjmu",
"Client": "Client", "Client": "Client",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "kolekce_list", "collection_sheet": "kolekce_list",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Angemeldet als", "Logged in as": "Angemeldet als",
"Remember me": "Erinnere dich an mich", "Remember me": "Erinnere dich an mich",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Kapitalisiertes Einkommen Betrag angepasst bereits angepasst",
"Capitalized Income Adjustment amount must be lower or equal to": "Der Betrag der kapitalisierten Einkommensanpassung muss kleiner oder gleich sein",
"Email not valid": "E-Mail ungültig", "Email not valid": "E-Mail ungültig",
"Filling Details": "Klicken Sie hier, um mit dem Ausfüllen der Details zu beginnen. * Markierungsfelder sind erforderlich. Für weitere Details klicken Sie:", "Filling Details": "Klicken Sie hier, um mit dem Ausfüllen der Details zu beginnen. * Markierungsfelder sind erforderlich. Für weitere Details klicken Sie:",
"Password is required": "Passwort wird benötigt", "Password is required": "Passwort wird benötigt",
@@ -536,6 +538,8 @@
"Inactive": "Inaktiv", "Inactive": "Inaktiv",
"Loans": "Kredite", "Loans": "Kredite",
"CENTER": "CENTER", "CENTER": "CENTER",
"Capitalized Income": "Kapitalisiertes Einkommen",
"Capitalized Income Adjustment": "Anpassung des kapitalisierten Einkommens",
"Client": "Klient", "Client": "Klient",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "Sammlungsblatt", "collection_sheet": "Sammlungsblatt",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Logged in as", "Logged in as": "Logged in as",
"Remember me": "Remember me", "Remember me": "Remember me",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Capitalized Income amount adjusted already adjusted",
"Capitalized Income Adjustment amount must be lower or equal to": "Capitalized Income Adjustment amount must be lower or equal to",
"Email not valid": "Email not valid", "Email not valid": "Email not valid",
"Filling Details": "Click to start filling the details. * mark fields are necessary. For more details click:", "Filling Details": "Click to start filling the details. * mark fields are necessary. For more details click:",
"Password is required": "Password is required", "Password is required": "Password is required",
@@ -537,6 +539,8 @@
"Inactive": "Inactive", "Inactive": "Inactive",
"Loans": "Loans", "Loans": "Loans",
"CENTER": "CENTER", "CENTER": "CENTER",
"Capitalized Income": "Capitalized Income",
"Capitalized Income Adjustment": "Capitalized Income Adjustment",
"CLIENT": "CLIENT", "CLIENT": "CLIENT",
"Client": "Client", "Client": "Client",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Conectado como", "Logged in as": "Conectado como",
"Remember me": "Recordar me", "Remember me": "Recordar me",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Monto de Ingreso Capitalizado ajustado ya ajustado",
"Capitalized Income Adjustment amount must be lower or equal to": "El monto del Ajuste de Ingreso Capitalizado debe ser menor o igual a",
"Email not valid": "Correo electrónico no válido", "Email not valid": "Correo electrónico no válido",
"Filling Details": "Haga clic para comenzar a completar los detalles. * Los campos de marca son necesarios. Para más detalles haga clic en:", "Filling Details": "Haga clic para comenzar a completar los detalles. * Los campos de marca son necesarios. Para más detalles haga clic en:",
"Password is required": "se requiere contraseña", "Password is required": "se requiere contraseña",
@@ -536,6 +538,8 @@
"Inactive": "Inactivo", "Inactive": "Inactivo",
"Loans": "Préstamos", "Loans": "Préstamos",
"CENTER": "CENTRO", "CENTER": "CENTRO",
"Capitalized Income": "Ingresos capitalizados",
"Capitalized Income Adjustment": "Ajuste de ingresos capitalizados",
"Client": "Cliente", "Client": "Cliente",
"cash_mgmt": "gestión_efectivo", "cash_mgmt": "gestión_efectivo",
"collection_sheet": "hoja_coleccion", "collection_sheet": "hoja_coleccion",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Conectado como", "Logged in as": "Conectado como",
"Remember me": "Recordar me", "Remember me": "Recordar me",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Monto de Ingreso Capitalizado ajustado ya ajustado",
"Capitalized Income Adjustment amount must be lower or equal to": "El monto del Ajuste de Ingreso Capitalizado debe ser menor o igual a",
"Email not valid": "Correo electrónico no válido", "Email not valid": "Correo electrónico no válido",
"Filling Details": "Haga clic para comenzar a completar los detalles. * Los campos de marca son necesarios. Para más detalles haga clic en:", "Filling Details": "Haga clic para comenzar a completar los detalles. * Los campos de marca son necesarios. Para más detalles haga clic en:",
"Password is required": "se requiere contraseña", "Password is required": "se requiere contraseña",
@@ -536,6 +538,8 @@
"Inactive": "Inactivo", "Inactive": "Inactivo",
"Loans": "Préstamos", "Loans": "Préstamos",
"CENTER": "CENTRO", "CENTER": "CENTRO",
"Capitalized Income": "Ingresos capitalizados",
"Capitalized Income Adjustment": "Ajuste de ingresos capitalizados",
"Client": "Cliente", "Client": "Cliente",
"cash_mgmt": "gestión_efectivo", "cash_mgmt": "gestión_efectivo",
"collection_sheet": "hoja_coleccion", "collection_sheet": "hoja_coleccion",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "connecté en tant que", "Logged in as": "connecté en tant que",
"Remember me": "Souviens-toi de moi", "Remember me": "Souviens-toi de moi",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Montant du revenu capitalisé ajusté déjà ajusté",
"Capitalized Income Adjustment amount must be lower or equal to": "Le montant de l'ajustement du revenu capitalisé doit être inférieur ou égal à",
"Email not valid": "E-mail non valide", "Email not valid": "E-mail non valide",
"Filling Details": "Cliquez pour commencer à remplir les détails. * Les champs de marque sont nécessaires. Pour plus de détails, cliquez sur :", "Filling Details": "Cliquez pour commencer à remplir les détails. * Les champs de marque sont nécessaires. Pour plus de détails, cliquez sur :",
"Password is required": "Mot de passe requis", "Password is required": "Mot de passe requis",
@@ -536,6 +538,8 @@
"Inactive": "Inactif", "Inactive": "Inactif",
"Loans": "Prêts", "Loans": "Prêts",
"CENTER": "CENTRE", "CENTER": "CENTRE",
"Capitalized Income": "Revenu capitalisé",
"Capitalized Income Adjustment": "Ajustement du revenu capitalisé",
"Client": "Client", "Client": "Client",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "feuille_collection", "collection_sheet": "feuille_collection",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Collegato come", "Logged in as": "Collegato come",
"Remember me": "Ricordati di me", "Remember me": "Ricordati di me",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Importo del reddito capitalizzato rettificato già rettificato",
"Capitalized Income Adjustment amount must be lower or equal to": "L'importo dell'adeguamento del reddito capitalizzato deve essere inferiore o uguale a",
"Email not valid": "E-mail non valida", "Email not valid": "E-mail non valida",
"Filling Details": "Fare clic per iniziare a compilare i dettagli. *I campi contrassegnati sono obbligatori. Per maggiori dettagli clicca:", "Filling Details": "Fare clic per iniziare a compilare i dettagli. *I campi contrassegnati sono obbligatori. Per maggiori dettagli clicca:",
"Password is required": "E 'richiesta la password", "Password is required": "E 'richiesta la password",
@@ -536,6 +538,8 @@
"Inactive": "Inattivo", "Inactive": "Inattivo",
"Loans": "Prestiti", "Loans": "Prestiti",
"CENTER": "CENTRO", "CENTER": "CENTRO",
"Capitalized Income": "Reddito capitalizzato",
"Capitalized Income Adjustment": "Adeguamento del reddito capitalizzato",
"Client": "Cliente", "Client": "Cliente",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "foglio_raccolta", "collection_sheet": "foglio_raccolta",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "다음 계정으로 로그인됨", "Logged in as": "다음 계정으로 로그인됨",
"Remember me": "날 기억해", "Remember me": "날 기억해",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "자본화된 소득 금액은 이미 조정되었습니다.",
"Capitalized Income Adjustment amount must be lower or equal to": "자본화된 소득 조정 금액은 다음보다 낮거나 같아야 합니다.",
"Email not valid": "이메일이 유효하지 않습니다", "Email not valid": "이메일이 유효하지 않습니다",
"Filling Details": "세부정보 작성을 시작하려면 클릭하세요. * 표시 필드가 필요합니다. 자세한 내용을 보려면 다음을 클릭하세요.", "Filling Details": "세부정보 작성을 시작하려면 클릭하세요. * 표시 필드가 필요합니다. 자세한 내용을 보려면 다음을 클릭하세요.",
"Password is required": "비밀번호가 필요합니다", "Password is required": "비밀번호가 필요합니다",
@@ -536,6 +538,8 @@
"Inactive": "비활성", "Inactive": "비활성",
"Loans": "대출", "Loans": "대출",
"CENTER": "센터", "CENTER": "센터",
"Capitalized Income": "자본화된 소득",
"Capitalized Income Adjustment": "자본화된 소득 조정",
"Client": "고객", "Client": "고객",
"cash_mgmt": "현금_관리", "cash_mgmt": "현금_관리",
"collection_sheet": "collection_sheet", "collection_sheet": "collection_sheet",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "prisijungęs kaip", "Logged in as": "prisijungęs kaip",
"Remember me": "Prisimink mane", "Remember me": "Prisimink mane",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Kapitalizuotų pajamų suma pakoreguota jau pakoreguota",
"Capitalized Income Adjustment amount must be lower or equal to": "Kapitalizuotų pajamų koregavimo suma turi būti mažesnė arba lygi",
"Email not valid": "El. pašto adresas negalioja", "Email not valid": "El. pašto adresas negalioja",
"Filling Details": "Spustelėkite norėdami pradėti pildyti išsamią informaciją. * žymėjimo laukai yra būtini. Norėdami gauti daugiau informacijos, spustelėkite:", "Filling Details": "Spustelėkite norėdami pradėti pildyti išsamią informaciją. * žymėjimo laukai yra būtini. Norėdami gauti daugiau informacijos, spustelėkite:",
"Password is required": "reikalingas slaptazodis", "Password is required": "reikalingas slaptazodis",
@@ -536,6 +538,8 @@
"Inactive": "Neaktyvus", "Inactive": "Neaktyvus",
"Loans": "Paskolos", "Loans": "Paskolos",
"CENTER": "CENTRAS", "CENTER": "CENTRAS",
"Capitalized Income": "Kapitalizuotos pajamos",
"Capitalized Income Adjustment": "Kapitalizuotų pajamų koregavimas",
"Client": "Klientas", "Client": "Klientas",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "kolekcijos_lapas", "collection_sheet": "kolekcijos_lapas",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "ielogojies Kā", "Logged in as": "ielogojies Kā",
"Remember me": "Atceries mani", "Remember me": "Atceries mani",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Kapitalizēto ienākumu summa jau koriģēta",
"Capitalized Income Adjustment amount must be lower or equal to": "Kapitalizēto ienākumu korekcijas summai ir jābūt mazākai vai vienādai ar",
"Email not valid": "E-pasts nav derīgs", "Email not valid": "E-pasts nav derīgs",
"Filling Details": "Noklikšķiniet, lai sāktu aizpildīt informāciju. * ir nepieciešami atzīmju lauki. Lai iegūtu sīkāku informāciju, noklikšķiniet:", "Filling Details": "Noklikšķiniet, lai sāktu aizpildīt informāciju. * ir nepieciešami atzīmju lauki. Lai iegūtu sīkāku informāciju, noklikšķiniet:",
"Password is required": "nepieciešama parole", "Password is required": "nepieciešama parole",
@@ -536,6 +538,8 @@
"Inactive": "Neaktīvs", "Inactive": "Neaktīvs",
"Loans": "Aizdevumi", "Loans": "Aizdevumi",
"CENTER": "CENTRS", "CENTER": "CENTRS",
"Capitalized Income": "Kapitalizētie ienākumi",
"Capitalized Income Adjustment": "Kapitalizēto ienākumu korekcija",
"Client": "Klients", "Client": "Klients",
"cash_mgmt": "naudas_mgmt", "cash_mgmt": "naudas_mgmt",
"collection_sheet": "kolekcijas_lapa", "collection_sheet": "kolekcijas_lapa",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "को रूपमा लग इन गरियो", "Logged in as": "को रूपमा लग इन गरियो",
"Remember me": "मलाई सम्झनुहोस्", "Remember me": "मलाई सम्झनुहोस्",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "क्यापिटलाइज्ड आय रकम पहिले नै समायोजन गरिएको छ",
"Capitalized Income Adjustment amount must be lower or equal to": "पूंजीकृत आय समायोजन रकम कम वा बराबर हुनुपर्छ",
"Email not valid": "इमेल मान्य छैन", "Email not valid": "इमेल मान्य छैन",
"Filling Details": "विवरणहरू भर्न सुरु गर्न क्लिक गर्नुहोस्। * मार्क क्षेत्रहरू आवश्यक छन्। थप विवरणहरूको लागि क्लिक गर्नुहोस्:", "Filling Details": "विवरणहरू भर्न सुरु गर्न क्लिक गर्नुहोस्। * मार्क क्षेत्रहरू आवश्यक छन्। थप विवरणहरूको लागि क्लिक गर्नुहोस्:",
"Password is required": "पासवर्ड आवश्यक छ", "Password is required": "पासवर्ड आवश्यक छ",
@@ -536,6 +538,8 @@
"Inactive": "निष्क्रिय", "Inactive": "निष्क्रिय",
"Loans": "ऋण", "Loans": "ऋण",
"CENTER": "केन्द्र", "CENTER": "केन्द्र",
"Capitalized Income": "पुँजीगत आय",
"Capitalized Income Adjustment": "पूंजीकृत आय समायोजन",
"Client": "ग्राहक", "Client": "ग्राहक",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "संग्रह_पाना", "collection_sheet": "संग्रह_पाना",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "logado como", "Logged in as": "logado como",
"Remember me": "Lembre de mim", "Remember me": "Lembre de mim",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Valor da Renda Capitalizada ajustado já ajustado",
"Capitalized Income Adjustment amount must be lower or equal to": "O valor do ajuste de renda capitalizada deve ser menor ou igual a",
"Email not valid": "E-mail não válido", "Email not valid": "E-mail não válido",
"Filling Details": "Clique para começar a preencher os dados. * os campos de marcação são necessários. Para mais detalhes clique:", "Filling Details": "Clique para começar a preencher os dados. * os campos de marcação são necessários. Para mais detalhes clique:",
"Password is required": "Senha requerida", "Password is required": "Senha requerida",
@@ -536,6 +538,8 @@
"Inactive": "Inativo", "Inactive": "Inativo",
"Loans": "Empréstimos", "Loans": "Empréstimos",
"CENTER": "CENTRO", "CENTER": "CENTRO",
"Capitalized Income": "Renda Capitalizada",
"Capitalized Income Adjustment": "Ajuste de Renda Capitalizada",
"Client": "Cliente", "Client": "Cliente",
"cash_mgmt": "dinheiro_mgmt", "cash_mgmt": "dinheiro_mgmt",
"collection_sheet": "planilha_de_coleção", "collection_sheet": "planilha_de_coleção",
+4
View File
@@ -3,6 +3,8 @@
"Logged in as": "Imeingia kama", "Logged in as": "Imeingia kama",
"Remember me": "Nikumbuke", "Remember me": "Nikumbuke",
"errors": { "errors": {
"Capitalized Income amount adjusted already adjusted": "Kiasi cha Mapato ya Mtaji kilichorekebishwa tayari kimerekebishwa",
"Capitalized Income Adjustment amount must be lower or equal to": "Kiasi cha Marekebisho ya Mapato ya Mtaji lazima kiwe chini au sawa na",
"Email not valid": "Barua pepe si halali", "Email not valid": "Barua pepe si halali",
"Filling Details": "Bofya ili kuanza kujaza maelezo. * maeneo ya alama ni muhimu. Kwa maelezo zaidi bofya:", "Filling Details": "Bofya ili kuanza kujaza maelezo. * maeneo ya alama ni muhimu. Kwa maelezo zaidi bofya:",
"Password is required": "Nenosiri linahitajika", "Password is required": "Nenosiri linahitajika",
@@ -536,6 +538,8 @@
"Inactive": "Isiyotumika", "Inactive": "Isiyotumika",
"Loans": "Mikopo", "Loans": "Mikopo",
"CENTER": "KITUO", "CENTER": "KITUO",
"Capitalized Income": "Mapato ya Mtaji",
"Capitalized Income Adjustment": "Marekebisho ya Mapato ya Mtaji",
"Client": "Mteja", "Client": "Mteja",
"cash_mgmt": "cash_mgmt", "cash_mgmt": "cash_mgmt",
"collection_sheet": "laha_ya_mkusanyo", "collection_sheet": "laha_ya_mkusanyo",