From bf1d99f494495a82ed9897dd5e95faf2fb4bc7ae Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Thu, 19 Dec 2024 18:14:47 +0100 Subject: [PATCH] Advanced accounting - Charge-off reason mapping fix --- .../loan-product-summary.component.html | 12 +++++----- .../loan-product-summary.component.ts | 24 ++++++++++++++++--- ...oan-product-accounting-step.component.html | 15 +++++------- .../loan-product-accounting-step.component.ts | 12 +++++----- src/app/shared/models/general.model.ts | 4 ++-- 5 files changed, 41 insertions(+), 26 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 93b49b138..bca902b21 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 @@ -1117,16 +1117,16 @@ - - + - 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 19ab1dcf5..a13a7e481 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,16 @@ import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { DelinquencyBucket, LoanProduct } from '../../models/loan-product.model'; -import {AccountingMapping, Charge, ChargeOffReasonToExpenseAccountMapping, ChargeToIncomeAccountMapping, GLAccount, PaymentChannelToFundSourceMapping, PaymentType, PaymentTypeOption} from '../../../../shared/models/general.model'; +import { + AccountingMapping, + Charge, + ChargeOffReasonCodeValue, + ChargeOffReasonToExpenseAccountMapping, + 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,7 +35,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']; + chargeOffReasonExpenseDisplayedColumns: string[] = ['chargeOffReasonCodeValueId', 'expenseAccountId']; accountingRuleData: string[] = []; isAdvancedPaymentAllocation = false; @@ -76,6 +86,7 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { const expenseAccountData = this.loanProductsTemplate.accountingMappingOptions.expenseAccountOptions || []; const liabilityAccountData = this.loanProductsTemplate.accountingMappingOptions.liabilityAccountOptions || []; const assetAndLiabilityAccountData = this.loanProductsTemplate.accountingMappingOptions.assetAndLiabilityAccountOptions || []; + const chargeOffReasonOptions: any = this.loanProductsTemplate.chargeOffReasonOptions || []; this.accountingMappings = { 'fundSourceAccount': this.glAccountLookUp(this.loanProduct.fundSourceAccountId, assetAndLiabilityAccountData), @@ -135,7 +146,14 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { this.chargeOffReasonToExpenseAccountMappings = []; if (this.loanProduct.chargeOffReasonToExpenseAccountMappings?.length > 0) { this.loanProduct.chargeOffReasonToExpenseAccountMappings.forEach((m: ChargeOffReasonToExpenseAccountMapping) => { - this.chargeOffReasonToExpenseAccountMappings.push(m); + let optionData = this.optionDataLookUp(m.chargeOffReasonCodeValueId, chargeOffReasonOptions); + this.chargeOffReasonToExpenseAccountMappings.push({ + expenseAccount: this.glAccountLookUp(m.expenseAccountId, expenseAccountData), + chargeOffReasonCodeValue: { + id: optionData.id, + name: optionData.value + } as ChargeOffReasonCodeValue + }); }); } } 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 c020660cf..99a75e0ec 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 @@ -444,24 +444,21 @@ > - - + - -
{{ 'labels.inputs.Charge-off reason' | translate }} - {{ chargeOffReasonsToExpenseMapping.chargeOffReasonCodeValue.name }} + + {{ chargeOffReasonToExpenseAccountMapping.chargeOffReasonCodeValue.name }} {{ 'labels.inputs.Expense Account' | translate }} - ({{ chargeOffReasonsToExpenseMapping.chargeOffExpenseAccount.glCode }}) - {{ chargeOffReasonsToExpenseMapping.chargeOffExpenseAccount.name }} + + ({{ chargeOffReasonToExpenseAccountMapping.expenseAccount.glCode }}) + {{ chargeOffReasonToExpenseAccountMapping.expenseAccount.name }} {{ 'labels.inputs.Charge-off reason' | translate }} - {{ - chargeOffReasonsToExpenseMapping.chargeOffReasonCodeValueId - | find: chargeOffReasonOptions : 'id' : 'name' - }} + + {{ chargeOffReasonExpense.chargeOffReasonCodeValueId | find: chargeOffReasonOptions : 'id' : 'name' }} {{ 'labels.inputs.Expense Account' | translate }} - {{ chargeOffReasonsToExpenseMapping.expenseGLAccountId | find: expenseAccountData : 'id' : 'name' }} + + {{ chargeOffReasonExpense.expenseAccountId | find: expenseAccountData : 'id' : 'name' }} {{ 'labels.inputs.Actions' | translate }} +