WEB-213: Loan product config - buy down fees accounting

This commit is contained in:
adam.magyari
2025-06-24 17:55:46 +02:00
parent 6dc42838a6
commit 0fff471a21
18 changed files with 101 additions and 13 deletions
@@ -1042,6 +1042,14 @@
[withTitle]="'47%'"
>
</mifosx-gl-account-display>
<mifosx-gl-account-display
class="flex-100"
*ngIf="accountingMappings.incomeFromBuyDownAccount"
[accountTitle]="'Income from Buy down fees'"
[glAccount]="accountingMappings.incomeFromBuyDownAccount"
[withTitle]="'47%'"
>
</mifosx-gl-account-display>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Expenses' | translate }}</h4>
@@ -1076,6 +1084,14 @@
[withTitle]="'47%'"
>
</mifosx-gl-account-display>
<mifosx-gl-account-display
class="flex-100"
*ngIf="accountingMappings.buyDownExpenseAccount"
[accountTitle]="'Buy down fee Expense'"
[glAccount]="accountingMappings.buyDownExpenseAccount"
[withTitle]="'47%'"
>
</mifosx-gl-account-display>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Liabilities' | translate }}</h4>
<mifosx-gl-account-display
@@ -202,11 +202,16 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges {
this.loanProduct.incomeFromCapitalizationAccountId,
incomeAccountData
),
incomeFromBuyDownAccount: this.glAccountLookUp(
this.loanProduct.incomeFromBuyDownAccountId,
incomeAccountData
),
writeOffAccount: this.glAccountLookUp(this.loanProduct.writeOffAccountId, expenseAccountData),
goodwillCreditAccount: this.glAccountLookUp(this.loanProduct.goodwillCreditAccountId, expenseAccountData),
chargeOffExpenseAccount: this.glAccountLookUp(this.loanProduct.writeOffAccountId, expenseAccountData),
chargeOffFraudExpenseAccount: this.glAccountLookUp(this.loanProduct.writeOffAccountId, expenseAccountData),
buyDownExpenseAccount: this.glAccountLookUp(this.loanProduct.buyDownExpenseAccountId, expenseAccountData),
overpaymentLiabilityAccount: this.glAccountLookUp(
this.loanProduct.overpaymentLiabilityAccountId,
@@ -190,6 +190,16 @@
>
</mifosx-gl-account-selector>
<mifosx-gl-account-selector
class="flex-48"
*ngIf="deferredIncomeRecognition?.buyDownFee?.enableBuyDownFee"
[inputFormControl]="loanProductAccountingForm.controls.incomeFromBuyDownAccountId"
[glAccountList]="incomeAccountData"
[required]="true"
[inputLabel]="'Income from Buy down fees'"
>
</mifosx-gl-account-selector>
<mat-divider class="flex-98"></mat-divider>
<h4 class="mat-h4 flex-98">{{ 'labels.heading.Expenses' | translate }}</h4>
@@ -230,6 +240,16 @@
>
</mifosx-gl-account-selector>
<mifosx-gl-account-selector
class="flex-48"
*ngIf="deferredIncomeRecognition?.buyDownFee?.enableBuyDownFee"
[inputFormControl]="loanProductAccountingForm.controls.buyDownExpenseAccountId"
[glAccountList]="expenseAccountData"
[required]="true"
[inputLabel]="'Buy down fee Expense'"
>
</mifosx-gl-account-selector>
<mat-divider class="flex-98"></mat-divider>
<h4 class="mat-h4 flex-98">{{ 'labels.heading.Liabilities' | translate }}</h4>
@@ -155,6 +155,12 @@ export class LoanProductAccountingStepComponent implements OnInit, OnChanges {
incomeFromCapitalizationAccountId: accountingMappings.incomeFromCapitalizationAccount.id
});
}
if (this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee) {
this.loanProductAccountingForm.patchValue({
buyDownExpenseAccountId: accountingMappings.buyDownExpenseAccount.id,
incomeFromBuyDownAccountId: accountingMappings.incomeFromBuyDownAccount.id
});
}
}
/* falls through */
case 2:
@@ -607,6 +613,19 @@ export class LoanProductAccountingStepComponent implements OnInit, OnChanges {
this.loanProductAccountingForm.removeControl('deferredIncomeLiabilityAccountId');
this.loanProductAccountingForm.removeControl('incomeFromCapitalizationAccountId');
}
if (this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee) {
this.loanProductAccountingForm.addControl(
'buyDownExpenseAccountId',
new UntypedFormControl('', Validators.required)
);
this.loanProductAccountingForm.addControl(
'incomeFromBuyDownAccountId',
new UntypedFormControl('', Validators.required)
);
} else {
this.loanProductAccountingForm.removeControl('buyDownExpenseAccountId');
this.loanProductAccountingForm.removeControl('incomeFromBuyDownAccountId');
}
}
}
}
@@ -121,8 +121,10 @@ export interface LoanProduct {
// Accounting
accountingRule: any;
accountingMappings?: { [key: string]: AccountingMapping };
buyDownExpenseAccountId?: number;
fundSourceAccountId?: number;
goodwillCreditAccountId?: number;
incomeFromBuyDownAccountId?: number;
incomeFromCapitalizationAccountId?: number;
incomeFromChargeOffFeesAccountId?: number;
incomeFromChargeOffInterestAccountId?: number;
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Typ výpočtu poplatku za odkup",
"Buy down fee strategy": "Strategie poplatku za odkup",
"Buy down fee income type": "Typ příjmu z poplatku za odkup",
"Buy down fees": "Poplatky za odkup"
"Buy down fees": "Poplatky za odkup",
"Income from Buy down fees": "Příjmy z poplatků za odkup",
"Buy down fee Expense": "Náklady na poplatek za odkup"
},
"links": {
"Community": "Společenství",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Berechnungsart der Buy-Down-Gebühr",
"Buy down fee strategy": "Strategie für Buy-Down-Gebühr",
"Buy down fee income type": "Einnahmeart der Buy-Down-Gebühr",
"Buy down fees": "Buy-Down-Gebühren"
"Buy down fees": "Buy-Down-Gebühren",
"Income from Buy down fees": "Einnahmen aus Buy-Down-Gebühren",
"Buy down fee Expense": "Aufwendungen aus Buy-Down-Gebühren"
},
"links": {
"Community": "Gemeinschaft",
+3 -1
View File
@@ -2484,7 +2484,9 @@
"Buy down fee calculation type": "Buy down fee calculation type",
"Buy down fee strategy": "Buy down fee strategy",
"Buy down fee income type": "Buy down fee income type",
"Buy down fees": "Buy down fees"
"Buy down fees": "Buy down fees",
"Income from Buy down fees": "Income from Buy down fees",
"Buy down fee Expense": "Buy down fee Expense"
},
"links": {
"Community": "Community",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Tipo de cálculo de comisión de compra anticipada",
"Buy down fee strategy": "Estrategia de comisión de compra anticipada",
"Buy down fee income type": "Tipo de ingreso de comisión de compra anticipada",
"Buy down fees": "Tarifas de compra anticipada"
"Buy down fees": "Tarifas de compra anticipada",
"Income from Buy down fees": "Ingresos por comisiones de compra inicial",
"Buy down fee Expense": "Gastos por comisiones de compra inicial"
},
"links": {
"Community": "Comunidad",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Tipo de cálculo de comisión de compra anticipada",
"Buy down fee strategy": "Estrategia de comisión de compra anticipada",
"Buy down fee income type": "Tipo de ingreso de comisión de compra anticipada",
"Buy down fees": "Tarifas de compra anticipada"
"Buy down fees": "Tarifas de compra anticipada",
"Income from Buy down fees": "Ingresos por comisiones de compra inicial",
"Buy down fee Expense": "Gastos por comisiones de compra inicial"
},
"links": {
"Community": "Comunidad",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Type de calcul des frais de rachat",
"Buy down fee strategy": "Stratégie des frais de rachat",
"Buy down fee income type": "Type de revenu des frais de rachat",
"Buy down fees": "Frais d'achat"
"Buy down fees": "Frais d'achat",
"Income from Buy down fees": "Revenus des commissions de rachat",
"Buy down fee Expense": "Charges des commissions de rachat"
},
"links": {
"Community": "Communauté",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Tipo di calcolo della commissione di buy down",
"Buy down fee strategy": "Strategia per la commissione di buy down",
"Buy down fee income type": "Tipo di ricavo da commissione di buy down",
"Buy down fees": "Commissioni di acquisto"
"Buy down fees": "Commissioni di acquisto",
"Income from Buy down fees": "Proventi da commissioni di buy down",
"Buy down fee Expense": "Spese da commissioni di buy down"
},
"links": {
"Community": "Comunità",
+3 -1
View File
@@ -2478,7 +2478,9 @@
"Buy down fee calculation type": "매수 수수료 계산 유형",
"Buy down fee strategy": "매수 수수료 전략",
"Buy down fee income type": "매수 수수료 수익 유형",
"Buy down fees": "매수 수수료"
"Buy down fees": "매수 수수료",
"Income from Buy down fees": "매입 수수료 수입",
"Buy down fee Expense": "매입 수수료 비용"
},
"links": {
"Community": "지역 사회",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Supirkimo mokesčio skaičiavimo tipas",
"Buy down fee strategy": "Supirkimo mokesčio strategija",
"Buy down fee income type": "Supirkimo mokesčio pajamų tipas",
"Buy down fees": "Išpirkimo mokesčiai"
"Buy down fees": "Išpirkimo mokesčiai",
"Income from Buy down fees": "Pajamos iš supirkimo mokesčių",
"Buy down fee Expense": "Supirkimo mokesčio išlaidos"
},
"links": {
"Community": "bendruomenė",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Atpirkšanas maksas aprēķina veids",
"Buy down fee strategy": "Atpirkšanas maksas stratēģija",
"Buy down fee income type": "Atpirkšanas maksas ienākumu veids",
"Buy down fees": "Iepirkuma maksas"
"Buy down fees": "Iepirkuma maksas",
"Income from Buy down fees": "Ienākumi no akciju izpirkšanas komisijas maksām",
"Buy down fee Expense": "Akciju izpirkšanas komisijas izdevumi"
},
"links": {
"Community": "kopiena",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "बाइ डाउन शुल्क गणना प्रकार",
"Buy down fee strategy": "बाइ डाउन शुल्क रणनीति",
"Buy down fee income type": "बाइ डाउन शुल्क आय प्रकार",
"Buy down fees": "खरिद शुल्क"
"Buy down fees": "खरिद शुल्क",
"Income from Buy down fees": "खरिद शुल्कबाट हुने आम्दानी",
"Buy down fee Expense": "खरीद शुल्क खर्च"
},
"links": {
"Community": "समुदाय",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Tipo de cálculo de taxa de aquisição",
"Buy down fee strategy": "Estratégia de taxa de aquisição",
"Buy down fee income type": "Tipo de receita de taxa de aquisição",
"Buy down fees": "Taxas de compra antecipada"
"Buy down fees": "Taxas de compra antecipada",
"Income from Buy down fees": "Receita com taxas de recompra",
"Buy down fee Expense": "Despesa com taxas de recompra"
},
"links": {
"Community": "Comunidade",
+3 -1
View File
@@ -2477,7 +2477,9 @@
"Buy down fee calculation type": "Nunua aina ya hesabu ya ada ya chini",
"Buy down fee strategy": "Nunua mkakati wa ada ya chini",
"Buy down fee income type": "Nunua aina ya mapato ya chini",
"Buy down fees": "Nunua ada za chini"
"Buy down fees": "Nunua ada za chini",
"Income from Buy down fees": "Mapato kutoka kwa ada ya Kununua",
"Buy down fee Expense": "Kununua ada ya chini Gharama"
},
"links": {
"Community": "Jumuiya",