From 3bb41dd23d3b9cab6a7f263e4eb156fa26965ca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Soma=20S=C3=B6r=C3=B6s?= Date: Thu, 28 May 2026 11:51:11 +0200 Subject: [PATCH] WEB-657: Working Capital Loan Disbursement and Discount fix --- .../approve-loan/approve-loan.component.ts | 8 +++++++- .../disburse/disburse.component.ts | 8 +++++++- .../transactions-tab.component.ts | 5 +++++ .../view-transaction.component.ts | 18 ++++++++++++------ .../models/loan-transaction-type.model.ts | 1 + 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/app/loans/loans-view/loan-account-actions/approve-loan/approve-loan.component.ts b/src/app/loans/loans-view/loan-account-actions/approve-loan/approve-loan.component.ts index fac43762c2..26ee86a09f 100644 --- a/src/app/loans/loans-view/loan-account-actions/approve-loan/approve-loan.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/approve-loan/approve-loan.component.ts @@ -98,7 +98,13 @@ export class ApproveLoanComponent extends LoanAccountActionsBaseComponent implem note: [''] }); if (this.isWorkingCapital) { - this.approveLoanForm.addControl('discountAmount', new UntypedFormControl()); + this.approveLoanForm.addControl( + 'discountAmount', + new UntypedFormControl({ + value: this.loanData.discountAmount, + disabled: this.loanData.overrideDiscountDisabled + }) + ); } } diff --git a/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts b/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts index 89a24d96bb..792c807d48 100644 --- a/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts @@ -92,7 +92,13 @@ export class DisburseComponent extends LoanAccountActionsBaseComponent implement note: '' }); if (this.isWorkingCapital) { - this.disbursementLoanForm.addControl('discountAmount', new UntypedFormControl()); + this.disbursementLoanForm.addControl( + 'discountAmount', + new UntypedFormControl({ + value: this.dataObject.discountAmount, + disabled: this.dataObject.overrideDiscountDisabled + }) + ); this.disbursementLoanForm.addControl( 'discountExternalId', new UntypedFormControl('', Validators.maxLength(this.maxExternalIdLength)) diff --git a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts index 8c099b865e..0bbfe70e78 100644 --- a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts +++ b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts @@ -347,6 +347,7 @@ export class TransactionsTabComponent extends LoanProductBaseComponent implement transaction.type.chargeoff || this.isReAgoeOrReAmortize(transaction.type) || transaction.type.interestRefund || + this.isDiscountFee(transaction.type) || transaction.type.contractTermination ); } @@ -567,6 +568,10 @@ export class TransactionsTabComponent extends LoanProductBaseComponent implement return this.isReAmortize(transactionType) || this.isReAge(transactionType); } + private isDiscountFee(transactionType: LoanTransactionType): boolean { + return transactionType.discountFee || transactionType.code === 'loanTransactionType.discountFee'; + } + isBuyDownFee(transactionType: LoanTransactionType): boolean { return transactionType.buyDownFee || transactionType.code === 'loanTransactionType.buyDownFee'; } diff --git a/src/app/loans/loans-view/transactions/view-transaction/view-transaction.component.ts b/src/app/loans/loans-view/transactions/view-transaction/view-transaction.component.ts index b5e3fa4257..6bf2c7fda2 100644 --- a/src/app/loans/loans-view/transactions/view-transaction/view-transaction.component.ts +++ b/src/app/loans/loans-view/transactions/view-transaction/view-transaction.component.ts @@ -140,7 +140,8 @@ export class ViewTransactionComponent extends LoanAccountActionsBaseComponent im !this.transactionData.manuallyReversed && !this.allowTransactionEdition(this.transactionData.type.id); this.allowUndo = this.allowUndoTransaction( this.transactionData.manuallyReversed || this.transactionData.reversed, - this.transactionType + this.transactionType, + !!this.transactionData.wcLoanId ); this.allowChargeback = this.allowChargebackTransaction(this.transactionType) && !this.transactionData.manuallyReversed; @@ -209,14 +210,19 @@ export class ViewTransactionComponent extends LoanAccountActionsBaseComponent im ); } - allowUndoTransaction(manuallyReversed: boolean, transactionType: LoanTransactionType): boolean { + allowUndoTransaction( + manuallyReversed: boolean, + transactionType: LoanTransactionType, + isWorkingCapital: boolean + ): boolean { if (manuallyReversed) { return false; } - if (transactionType.interestRefund) { - return false; - } - return true; + return !( + transactionType.interestRefund || + transactionType.id === 44 || + (isWorkingCapital && transactionType.disbursement) + ); } isWriteOff(transactionType: LoanTransactionType): boolean { diff --git a/src/app/loans/models/loan-transaction-type.model.ts b/src/app/loans/models/loan-transaction-type.model.ts index aef99a72d3..93e85831e0 100644 --- a/src/app/loans/models/loan-transaction-type.model.ts +++ b/src/app/loans/models/loan-transaction-type.model.ts @@ -51,6 +51,7 @@ export interface LoanTransactionType { buyDownFee: boolean; buyDownFeeAdjustment: boolean; buyDownFeeAmortizationAdjustment: boolean; + discountFee: boolean; } export interface LoanTransactionTemplate {