From f076433f39eef914347f264cfa56fc25c78d1c6a Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Mon, 25 Nov 2024 16:44:30 +0100 Subject: [PATCH] Add new Advanced accounting mapping: Charge-off reason --- .../loan-product-summary.component.html | 28 ++++++++++++ .../loan-product-summary.component.ts | 20 ++++++++- ...oan-product-accounting-step.component.html | 43 +++++++++++++++++++ .../loan-product-accounting-step.component.ts | 38 +++++++++++++++- .../models/loan-product.model.ts | 3 +- src/app/shared/models/general.model.ts | 7 +++ src/assets/translations/cs-CS.json | 6 ++- src/assets/translations/de-DE.json | 6 ++- src/assets/translations/en-US.json | 6 ++- src/assets/translations/es-MX.json | 6 ++- src/assets/translations/fr-FR.json | 6 ++- src/assets/translations/it-IT.json | 6 ++- src/assets/translations/ko-KO.json | 6 ++- src/assets/translations/lt-LT.json | 6 ++- src/assets/translations/lv-LV.json | 6 ++- src/assets/translations/ne-NE.json | 6 ++- src/assets/translations/pt-PT.json | 6 ++- src/assets/translations/sw-SW.json | 6 ++- 18 files changed, 183 insertions(+), 28 deletions(-) diff --git a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html index b712920bbc..f627c9f23e 100644 --- a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html +++ b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html @@ -914,6 +914,34 @@

{{'labels.heading.Map Penalties to Specific Income +
+ +

{{'labels.heading.Map Charge-off reasons to Expense accounts' | translate}}

+ + + + + + + + + + + + + + + + +
{{'labels.inputs.Charge-off reason' | translate}} + {{ chargeOffReasonsToExpenseMapping.chargeOffReason.name }} + {{'labels.inputs.Expense Account' | translate}} + {{ chargeOffReasonsToExpenseMapping.expenseGLAccount.name }} +
+ +
+ diff --git a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts index 7922abb327..6cf47424c2 100644 --- a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts +++ b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts @@ -1,6 +1,6 @@ import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { DelinquencyBucket, LoanProduct } from '../../models/loan-product.model'; -import { AccountingMapping, Charge, ChargeToIncomeAccountMapping, GLAccount, PaymentChannelToFundSourceMapping, PaymentType, PaymentTypeOption } from '../../../../shared/models/general.model'; +import {AccountingMapping, Charge, ChargeOffReasonsToExpenseMapping, ChargeToIncomeAccountMapping, GLAccount, PaymentChannelToFundSourceMapping, PaymentType, PaymentTypeOption} from '../../../../shared/models/general.model'; import { AdvancePaymentAllocationData, CreditAllocation, PaymentAllocation } from '../../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; import { LoanProducts } from '../../loan-products'; import { CodeName, OptionData, StringEnumOptionData } from '../../../../shared/models/option-data.model'; @@ -25,6 +25,7 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { chargesDisplayedColumns: string[] = ['name', 'chargeCalculationType', 'amount', 'chargeTimeType']; paymentFundSourceDisplayedColumns: string[] = ['paymentTypeId', 'fundSourceAccountId']; feesPenaltyIncomeDisplayedColumns: string[] = ['chargeId', 'incomeAccountId']; + chargeOffReasonExpenseDisplayedColumns: string[] = ['chargeOffReasonCodeValueId', 'expenseGLAccountId']; accountingRuleData: string[] = []; isAdvancedPaymentAllocation = false; @@ -35,6 +36,7 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { paymentChannelToFundSourceMappings: PaymentChannelToFundSourceMapping[] = []; feeToIncomeAccountMappings: ChargeToIncomeAccountMapping[] = []; penaltyToIncomeAccountMappings: ChargeToIncomeAccountMapping[] = []; + chargeOffReasonsToExpenseMappings: ChargeOffReasonsToExpenseMapping[] = []; constructor(private accounting: Accounting) { } @@ -63,6 +65,7 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { this.paymentChannelToFundSourceMappings = this.loanProduct.paymentChannelToFundSourceMappings || []; this.feeToIncomeAccountMappings = this.loanProduct.feeToIncomeAccountMappings || []; this.penaltyToIncomeAccountMappings = this.loanProduct.penaltyToIncomeAccountMappings || []; + this.chargeOffReasonsToExpenseMappings = this.loanProduct.chargeOffReasonsToExpenseMappings || []; } else { this.accountingMappings = {}; @@ -128,6 +131,18 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { }); }); } + + this.chargeOffReasonsToExpenseMappings = []; + if (this.loanProduct.chargeOffReasonsToExpenseMappings?.length > 0) { + this.loanProduct.chargeOffReasonsToExpenseMappings.forEach((m: ChargeOffReasonsToExpenseMapping) => { + this.chargeOffReasonsToExpenseMappings.push({ + chargeOffReasonCodeValueId: m.chargeOffReasonCodeValueId, + chargeOffReason: this.optionDataLookUp(m.chargeOffReasonCodeValueId, this.loanProductsTemplate.chargeOffReasonOptions), + expenseGLAccountId: m.expenseGLAccountId, + expenseGLAccount: this.glAccountLookUp(m.expenseGLAccountId, expenseAccountData) + }); + }); + } } if (this.loanProduct.isInterestRecalculationEnabled) { @@ -326,7 +341,8 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { isAdvancedAccountingEnabled(): boolean { return (this.loanProduct.paymentChannelToFundSourceMappings?.length > 0 || this.loanProduct.feeToIncomeAccountMappings?.length > 0 - || this.loanProduct.penaltyToIncomeAccountMappings?.length > 0); + || this.loanProduct.penaltyToIncomeAccountMappings?.length > 0 + || this.loanProduct.chargeOffReasonsToExpenseMappings?.length > 0); } getAccountingRuleName(value: string): string { diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html index 526f4b4c55..6b0513378a 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html @@ -334,6 +334,49 @@

{{'labels.heading.Map Penalties to Specific Inco +

{{'labels.heading.Map Charge-off reasons to Expense accounts' | translate}}

+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
{{'labels.inputs.Charge-off reason' | translate}} + {{ chargeOffReasonsToExpenseMapping.chargeOffReasonCodeValueId | find:chargeOffReasonOptions:'id':'name' }} + {{'labels.inputs.Expense Account' | translate}} + {{ chargeOffReasonsToExpenseMapping.expenseGLAccountId | find:expenseAccountData:'id':'name' }} + {{'labels.inputs.Actions' | translate}} + + +
+ diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.ts index 104879e6d0..b6e74f7bcc 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.ts +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.ts @@ -8,6 +8,7 @@ import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.componen import { TranslateService } from '@ngx-translate/core'; import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base'; +import {ChargeOffReasonsToExpenseMapping} from '../../../../shared/models/general.model'; @Component({ selector: 'mifosx-loan-product-accounting-step', @@ -31,9 +32,11 @@ export class LoanProductAccountingStepComponent implements OnInit { liabilityAccountData: any; incomeAndLiabilityAccountData: any; assetAndLiabilityAccountData: any; + chargeOffReasonOptions: any; paymentFundSourceDisplayedColumns: string[] = ['paymentTypeId', 'fundSourceAccountId', 'actions']; feesPenaltyIncomeDisplayedColumns: string[] = ['chargeId', 'incomeAccountId', 'actions']; + chargeOffReasonExpenseDisplayedColumns: string[] = ['chargeOffReasonCodeValueId', 'expenseGLAccountId', 'actions']; constructor(private formBuilder: UntypedFormBuilder, public dialog: MatDialog, @@ -52,6 +55,7 @@ export class LoanProductAccountingStepComponent implements OnInit { this.liabilityAccountData = this.loanProductsTemplate.accountingMappingOptions.liabilityAccountOptions || []; this.incomeAndLiabilityAccountData = this.incomeAccountData.concat(this.liabilityAccountData); this.assetAndLiabilityAccountData = this.loanProductsTemplate.accountingMappingOptions.assetAndLiabilityAccountOptions || []; + this.chargeOffReasonOptions = this.loanProductsTemplate.chargeOffReasonOptions || []; this.loanProductAccountingForm.patchValue({ 'accountingRule': this.loanProductsTemplate.accountingRule.id @@ -90,7 +94,7 @@ export class LoanProductAccountingStepComponent implements OnInit { 'incomeFromGoodwillCreditInterestAccountId': accountingMappings.incomeFromGoodwillCreditInterestAccount ? accountingMappings.incomeFromGoodwillCreditInterestAccount.id : '', 'incomeFromGoodwillCreditFeesAccountId': accountingMappings.incomeFromGoodwillCreditFeesAccount ? accountingMappings.incomeFromGoodwillCreditFeesAccount.id : '', 'incomeFromGoodwillCreditPenaltyAccountId': accountingMappings.incomeFromGoodwillCreditPenaltyAccount ? accountingMappings.incomeFromGoodwillCreditPenaltyAccount.id : '', - 'advancedAccountingRules': (this.loanProductsTemplate.paymentChannelToFundSourceMappings || this.loanProductsTemplate.feeToIncomeAccountMappings || this.loanProductsTemplate.penaltyToIncomeAccountMappings) ? true : false + 'advancedAccountingRules': (this.loanProductsTemplate.paymentChannelToFundSourceMappings || this.loanProductsTemplate.feeToIncomeAccountMappings || this.loanProductsTemplate.penaltyToIncomeAccountMappings || this.loanProductsTemplate.chargeOffReasonsToExpenseMappings) ? true : false }); this.loanProductAccountingForm.setControl('paymentChannelToFundSourceMappings', @@ -102,6 +106,9 @@ export class LoanProductAccountingStepComponent implements OnInit { this.loanProductAccountingForm.setControl('penaltyToIncomeAccountMappings', this.formBuilder.array((this.loanProductsTemplate.penaltyToIncomeAccountMappings || []).map((penaltyIncome: any) => ({ chargeId: penaltyIncome.charge.id, incomeAccountId: penaltyIncome.incomeAccount.id })))); + this.loanProductAccountingForm.setControl('chargeOffReasonsToExpenseMappings', + this.formBuilder.array((this.loanProductsTemplate.chargeOffReasonsToExpenseMappings || []).map((m: ChargeOffReasonsToExpenseMapping) => + ({ chargeOffReasonCodeValueId: m.chargeOffReasonCodeValueId, expenseGLAccountId: m.expenseGLAccountId })))); } } @@ -141,10 +148,12 @@ export class LoanProductAccountingStepComponent implements OnInit { this.loanProductAccountingForm.addControl('paymentChannelToFundSourceMappings', this.formBuilder.array([])); this.loanProductAccountingForm.addControl('feeToIncomeAccountMappings', this.formBuilder.array([])); this.loanProductAccountingForm.addControl('penaltyToIncomeAccountMappings', this.formBuilder.array([])); + this.loanProductAccountingForm.addControl('chargeOffReasonsToExpenseMappings', this.formBuilder.array([])); } else { this.loanProductAccountingForm.removeControl('paymentChannelToFundSourceMappings'); this.loanProductAccountingForm.removeControl('feeToIncomeAccountMappings'); this.loanProductAccountingForm.removeControl('penaltyToIncomeAccountMappings'); + this.loanProductAccountingForm.removeControl('chargeOffReasonsToExpenseMappings'); } }); } else { @@ -195,6 +204,10 @@ export class LoanProductAccountingStepComponent implements OnInit { return this.loanProductAccountingForm.get('penaltyToIncomeAccountMappings') as UntypedFormArray; } + get chargeOffReasonsToExpenseMappings(): UntypedFormArray { + return this.loanProductAccountingForm.get('chargeOffReasonsToExpenseMappings') as UntypedFormArray; + } + setLoanProductAccountingFormDirty() { if (this.loanProductAccountingForm.pristine) { this.loanProductAccountingForm.markAsDirty(); @@ -240,6 +253,7 @@ export class LoanProductAccountingStepComponent implements OnInit { case 'PaymentFundSource': return { title: 'Configure Fund Sources for Payment Channels', formfields: this.getPaymentFundSourceFormfields(values) }; case 'FeesIncome': return { title: 'Map Fees to Income Accounts', formfields: this.getFeesIncomeFormfields(values) }; case 'PenaltyIncome': return { title: 'Map Penalties to Specific Income Accounts', formfields: this.getPenaltyIncomeFormfields(values) }; + case 'ChargeOffReasonExpense': return { title: 'Map Charge-off reasons to Expense accounts', formfields: this.getChargeOffReasonExpenseFormfields(values) }; } } @@ -309,6 +323,28 @@ export class LoanProductAccountingStepComponent implements OnInit { return formfields; } + getChargeOffReasonExpenseFormfields(values?: any) { + const formfields: FormfieldBase[] = [ + new SelectBase({ + controlName: 'chargeOffReasonCodeValueId', + label: 'Charge-off reason', + value: values ? values.chargeOffReasonCodeValueId : this.chargeOffReasonOptions[0].id, + options: { label: 'name', value: 'id', data: this.chargeOffReasonOptions }, + required: true, + order: 1 + }), + new SelectBase({ + controlName: 'expenseGLAccountId', + label: 'Expense Account', + value: values ? values.expenseGLAccountId : this.expenseAccountData[0].id, + options: { label: 'name', value: 'id', data: this.expenseAccountData }, + required: true, + order: 2 + }) + ]; + return formfields; + } + get isAccountingAccrualBased() { const accountingRule = this.loanProductAccountingForm.value.accountingRule; return accountingRule === 3 || accountingRule === 4; diff --git a/src/app/products/loan-products/models/loan-product.model.ts b/src/app/products/loan-products/models/loan-product.model.ts index 094ed0a11f..b72d8b99e8 100644 --- a/src/app/products/loan-products/models/loan-product.model.ts +++ b/src/app/products/loan-products/models/loan-product.model.ts @@ -1,4 +1,4 @@ -import { AccountingMapping, ChargeToIncomeAccountMapping, Currency, PaymentChannelToFundSourceMapping } from 'app/shared/models/general.model'; +import {AccountingMapping, ChargeOffReasonsToExpenseMapping, ChargeToIncomeAccountMapping, Currency, PaymentChannelToFundSourceMapping} from 'app/shared/models/general.model'; import { OptionData, StringEnumOptionData } from 'app/shared/models/option-data.model'; import { CreditAllocation, PaymentAllocation } from '../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; @@ -124,6 +124,7 @@ export interface LoanProduct { paymentChannelToFundSourceMappings?: PaymentChannelToFundSourceMapping[]; feeToIncomeAccountMappings?: ChargeToIncomeAccountMapping[]; penaltyToIncomeAccountMappings?: ChargeToIncomeAccountMapping[]; + chargeOffReasonsToExpenseMappings?: ChargeOffReasonsToExpenseMapping[]; enableAccrualActivityPosting?: boolean; supportedInterestRefundTypes?: StringEnumOptionData[]; } diff --git a/src/app/shared/models/general.model.ts b/src/app/shared/models/general.model.ts index e3052c9499..9fafcde84a 100644 --- a/src/app/shared/models/general.model.ts +++ b/src/app/shared/models/general.model.ts @@ -39,6 +39,13 @@ export interface PaymentChannelToFundSourceMapping { fundSourceAccount: AccountingMapping; } +export interface ChargeOffReasonsToExpenseMapping { + chargeOffReasonCodeValueId: number; + expenseGLAccountId: number; + chargeOffReason?: OptionData; + expenseGLAccount?: AccountingMapping; +} + export interface PaymentType { id: number; name: string; diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index 324dd62add..7666493499 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -1132,7 +1132,8 @@ "Working Days": "Pracovní dny", "You have created": "Vytvořili jste", "You can drag and drop the rows to set a Payment Allocations order": "Řádky můžete přetáhnout a nastavit tak příkaz přidělení plateb", - "successfully select option": "úspěšně. Chcete-li pokračovat dále, vyberte si z níže uvedených možností." + "successfully select option": "úspěšně. Chcete-li pokračovat dále, vyberte si z níže uvedených možností.", + "Map Charge-off reasons to Expense accounts": "Mapujte důvody pro zúčtování na výdajové účty" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "platný", "INTEREST REFUND": "VRÁCENÍ ÚROKU", "Supported Interest Refund Types": "Unterstützte Zinsrückerstattungsarten", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Podporované typy vrácení úroků" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Podporované typy vrácení úroků", + "Charge-off reason": "Důvod vyúčtování" }, "links": { "Community": "Společenství", diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index 14e501a7cd..a51e819ab4 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -1133,7 +1133,8 @@ "Working Days": "Arbeitstage", "You have created": "Du hast erstellt", "You can drag and drop the rows to set a Payment Allocations order": "Sie können die Zeilen per Drag-and-Drop verschieben, um eine Zahlungszuordnungsreihenfolge festzulegen", - "successfully select option": "erfolgreich. Bitte wählen Sie eine der folgenden Optionen aus, um fortzufahren." + "successfully select option": "erfolgreich. Bitte wählen Sie eine der folgenden Optionen aus, um fortzufahren.", + "Map Charge-off reasons to Expense accounts": "Abschreibungsgründe Aufwandskonten zuordnen" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "gültig", "INTEREST REFUND": "ZINSRÜCKERSTATTUNG", "Supported Interest Refund Types": "Unterstützte Zinsrückerstattungsarten", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Unterstützte Zinsrückerstattungsarten" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Unterstützte Zinsrückerstattungsarten", + "Charge-off reason": "Abschreibungsgrund" }, "links": { "Community": "Gemeinschaft", diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 3f24bd0e4d..b009717aec 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -1134,7 +1134,8 @@ "Working Days": "Working Days", "You have created": "You have created", "You can drag and drop the rows to set a Payment Allocations order": "You can drag and drop the rows to set a Payment Allocations order", - "successfully select option": "successfully. Please select from the options below to proceed furthur." + "successfully select option": "successfully. Please select from the options below to proceed further.", + "Map Charge-off reasons to Expense accounts": "Map Charge-off reasons to Expense accounts" }, "inputs": { "accounting": { @@ -2423,7 +2424,8 @@ "valid": "valid", "INTEREST REFUND": "INTEREST REFUND", "Supported Interest Refund Types": "Supported Interest Refund Types", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Supported interest refund types" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Supported interest refund types", + "Charge-off reason": "Charge-off reason" }, "links": { "Community": "Community", diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index 7c8b92bf63..9aad75ddde 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -1131,7 +1131,8 @@ "Working Days": "Días laborables", "You have created": "tu has creado", "You can drag and drop the rows to set a Payment Allocations order": "Puede arrastrar y soltar las filas para establecer un orden de asignaciones de pago", - "successfully select option": "exitosamente. Seleccione una de las opciones siguientes para continuar." + "successfully select option": "exitosamente. Seleccione una de las opciones siguientes para continuar.", + "Map Charge-off reasons to Expense accounts": "Asignar motivos de cancelación a cuentas de gastos" }, "inputs": { "accounting": { @@ -2421,7 +2422,8 @@ "valid": "válido", "INTEREST REFUND": "REEMBOLSO DE INTERESES", "Supported Interest Refund Types": "Tipos de reembolso de intereses admitidos", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipos de reembolso de intereses admitidos" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipos de reembolso de intereses admitidos", + "Charge-off reason": "Motivo de la cancelación" }, "links": { "Community": "Comunidad", diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 641e9cd340..7ddfd7b6ed 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -1133,7 +1133,8 @@ "Working Days": "Jours de travail", "You have created": "Vous avez créé", "You can drag and drop the rows to set a Payment Allocations order": "Vous pouvez faire glisser et déposer les lignes pour définir un ordre de répartition des paiements", - "successfully select option": "avec succès. Veuillez sélectionner parmi les options ci-dessous pour continuer." + "successfully select option": "avec succès. Veuillez sélectionner parmi les options ci-dessous pour continuer.", + "Map Charge-off reasons to Expense accounts": "Cartographier les motifs de radiation sur les comptes de dépenses" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "valide", "INTEREST REFUND": "REMBOURSEMENT DES INTÉRÊTS", "Supported Interest Refund Types": "Types de remboursement d'intérêts pris en charge", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Types de remboursement d'intérêts pris en charge" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Types de remboursement d'intérêts pris en charge", + "Charge-off reason": "Motif de la radiation" }, "links": { "Community": "Communauté", diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index 97b3baf78f..2d9da1f57e 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -1133,7 +1133,8 @@ "Working Days": "Giorni lavorativi", "You have created": "Hai creato", "You can drag and drop the rows to set a Payment Allocations order": "Vous pouvez faire glisser et déposer les lignes pour définir un ordre de répartition des paiements", - "successfully select option": "con successo. Seleziona una delle opzioni seguenti per procedere ulteriormente." + "successfully select option": "con successo. Seleziona una delle opzioni seguenti per procedere ulteriormente.", + "Map Charge-off reasons to Expense accounts": "Associa i motivi di addebito ai conti spese" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "valido", "INTEREST REFUND": "RIMBORSO DEGLI INTERESSI", "Supported Interest Refund Types": "Tipi di rimborso degli interessi supportati", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipi di rimborso degli interessi supportati" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipi di rimborso degli interessi supportati", + "Charge-off reason": "Motivo dell'addebito" }, "links": { "Community": "Comunità", diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index cc974aaace..2b35bc6931 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -1134,7 +1134,8 @@ "Working Days": "일하는 날", "You have created": "당신이 창조했습니다", "You can drag and drop the rows to set a Payment Allocations order": "행을 끌어서 놓아 지불 할당 순서를 설정할 수 있습니다.", - "successfully select option": "성공적으로. 계속 진행하려면 아래 옵션 중에서 선택하세요." + "successfully select option": "성공적으로. 계속 진행하려면 아래 옵션 중에서 선택하세요.", + "Map Charge-off reasons to Expense accounts": "비용 계정에 대한 청구 취소 사유 매핑" }, "inputs": { "accounting": { @@ -2423,7 +2424,8 @@ "valid": "유효한", "INTEREST REFUND": "이자환급", "Supported Interest Refund Types": "지원되는 이자 환불 유형", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "지원되는 이자 환불 유형" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "지원되는 이자 환불 유형", + "Charge-off reason": "청구 취소 사유" }, "links": { "Community": "지역 사회", diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index 03b4ce04cd..e2915927ab 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -1133,7 +1133,8 @@ "Working Days": "Darbo dienos", "You have created": "Jūs sukūrėte", "You can drag and drop the rows to set a Payment Allocations order": "Galite nuvilkti eilutes, kad nustatytumėte mokėjimo paskirstymo tvarką", - "successfully select option": "sėkmingai. Jei norite tęsti, pasirinkite iš toliau pateiktų parinkčių." + "successfully select option": "sėkmingai. Jei norite tęsti, pasirinkite iš toliau pateiktų parinkčių.", + "Map Charge-off reasons to Expense accounts": "Nurodykite nurašymo priežastis išlaidų sąskaitoms" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "galioja", "INTEREST REFUND": "PALŪKANŲ GRĄŽINIMAS", "Supported Interest Refund Types": "Palaikomi palūkanų grąžinimo tipai", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Palaikomi palūkanų grąžinimo tipai" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Palaikomi palūkanų grąžinimo tipai", + "Charge-off reason": "Apmokestinimo priežastis" }, "links": { "Community": "bendruomenė", diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index cdf0e67783..5f677f2048 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -1133,7 +1133,8 @@ "Working Days": "Darba dienas", "You have created": "Jūs esat izveidojis", "You can drag and drop the rows to set a Payment Allocations order": "Varat vilkt un nomest rindas, lai iestatītu maksājumu piešķiršanas pasūtījumu", - "successfully select option": "veiksmīgi. Lūdzu, atlasiet kādu no tālāk norādītajām opcijām, lai turpinātu." + "successfully select option": "veiksmīgi. Lūdzu, atlasiet kādu no tālāk norādītajām opcijām, lai turpinātu.", + "Map Charge-off reasons to Expense accounts": "Izmaksas iemeslu kartēšana izdevumu kontiem" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "derīgs", "INTEREST REFUND": "PROCENTU ATMAKSĀŠANA", "Supported Interest Refund Types": "Atbalstītie procentu atmaksas veidi", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Atbalstītie procentu atmaksas veidi" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Atbalstītie procentu atmaksas veidi", + "Charge-off reason": "Izmaksas iemesls" }, "links": { "Community": "kopiena", diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index ab9ee46388..97e57f0550 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -1133,7 +1133,8 @@ "Working Days": "काम गर्ने दिनहरू", "You have created": "तपाईंले सिर्जना गर्नुभयो", "You can drag and drop the rows to set a Payment Allocations order": "तपाईंले भुक्तानी आवंटन आदेश सेट गर्न पङ्क्तिहरू तान्नुहोस् र छोड्न सक्नुहुन्छ", - "successfully select option": "सफलतापूर्वक। अगाडि बढ्नको लागि कृपया तलका विकल्पहरूबाट चयन गर्नुहोस्।" + "successfully select option": "सफलतापूर्वक। अगाडि बढ्नको लागि कृपया तलका विकल्पहरूबाट चयन गर्नुहोस्।", + "Map Charge-off reasons to Expense accounts": "खर्च खाताहरूमा चार्ज-अफ कारणहरू नक्सा गर्नुहोस्" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "मान्य", "INTEREST REFUND": "व्याज परतावा", "Supported Interest Refund Types": "समर्थित ब्याज फिर्ता प्रकारहरू", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "समर्थित व्याज परतावा प्रकार" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "समर्थित व्याज परतावा प्रकार", + "Charge-off reason": "चार्ज अफ कारण" }, "links": { "Community": "समुदाय", diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index b02485f4e6..5522d97b0c 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -1133,7 +1133,8 @@ "Working Days": "Dias úteis", "You have created": "Você criou", "You can drag and drop the rows to set a Payment Allocations order": "Você pode arrastar e soltar as linhas para definir um pedido de alocações de pagamento", - "successfully select option": "com sucesso. Selecione uma das opções abaixo para prosseguir." + "successfully select option": "com sucesso. Selecione uma das opções abaixo para prosseguir.", + "Map Charge-off reasons to Expense accounts": "Mapear os motivos de baixa para as contas de despesas" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "válido", "INTEREST REFUND": "REEMBOLSO DE JUROS", "Supported Interest Refund Types": "Tipos de reembolso de juros suportados", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipos de reembolso de juros suportados" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipos de reembolso de juros suportados", + "Charge-off reason": "Motivo da cobrança" }, "links": { "Community": "Comunidade", diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index e9c607ff17..a65b9e101a 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -1133,7 +1133,8 @@ "Working Days": "Siku za kazi", "You have created": "Umeunda", "You can drag and drop the rows to set a Payment Allocations order": "Unaweza kuburuta na kudondosha safu mlalo ili kuweka agizo la Ugawaji wa Malipo", - "successfully select option": "kwa mafanikio. Tafadhali chagua kutoka kwa chaguo zilizo hapa chini ili kuendelea zaidi." + "successfully select option": "kwa mafanikio. Tafadhali chagua kutoka kwa chaguo zilizo hapa chini ili kuendelea zaidi.", + "Map Charge-off reasons to Expense accounts": "Sababu za Kutozwa kwa Ramani kwa akaunti za Gharama" }, "inputs": { "accounting": { @@ -2422,7 +2423,8 @@ "valid": "halali", "INTEREST REFUND": "MAREJESHO YA RIBA", "Supported Interest Refund Types": "Aina za Urejeshaji wa Riba Zinazotumika", - "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Aina za kurejesha riba zinazotumika" + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Aina za kurejesha riba zinazotumika", + "Charge-off reason": "Sababu ya malipo" }, "links": { "Community": "Jumuiya",