diff --git a/src/app/loans/common-resolvers/loan-action-button.resolver.ts b/src/app/loans/common-resolvers/loan-action-button.resolver.ts
index 6d33d085da..b30835e434 100644
--- a/src/app/loans/common-resolvers/loan-action-button.resolver.ts
+++ b/src/app/loans/common-resolvers/loan-action-button.resolver.ts
@@ -99,7 +99,7 @@ export class LoanActionButtonResolver {
return this.loansService.getLoanActionTemplate(loanId, 'reAmortization');
} else if (loanActionButton === 'Attach Loan Originator') {
return this.organizationService.getLoanOriginators();
- } else if (loanActionButton === 'Update discount') {
+ } else if (loanActionButton === 'Discount Fee') {
return this.loansService.getWorkingCapitalLoanDetails(loanId);
} else {
return undefined;
diff --git a/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html b/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html
index a132decfd9..6936a095fb 100644
--- a/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html
+++ b/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html
@@ -91,8 +91,7 @@
{{ 'labels.heading.Terms' | translate }}
{{ 'labels.inputs.Total Payment Volume' | translate }}:
{{
- loansAccount.totalPaymentVolume
- | currency: loansAccountProductTemplate.currency.code : 'symbol-narrow' : '1.2-2'
+ loansAccount.totalPayment | currency: loansAccountProductTemplate.currency.code : 'symbol-narrow' : '1.2-2'
}}
{{ loansAccountProductTemplate.currency.code }}
diff --git a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html
index 7a1f13e079..f301154d07 100644
--- a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html
+++ b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html
@@ -27,16 +27,8 @@
@if (loanProductService.isWorkingCapital) {
{{ 'labels.inputs.Total Payment Volume' | translate }}
-
- @if (loansAccountTermsForm.controls.totalPaymentVolume.hasError('highAmountValue')) {
+
+ @if (loansAccountTermsForm.controls.totalPayment.hasError('highAmountValue')) {
{{ 'labels.inputs.Total Payment' | translate }} {{ 'labels.commons.is' | translate }}
{{ 'labels.commons.higher than allowed' | translate }}
diff --git a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts
index ac26af174d..674a11eb2f 100644
--- a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts
+++ b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts
@@ -355,7 +355,7 @@ export class LoansAccountTermsStepComponent extends LoanProductBaseComponent imp
discount: this.loansAccountTermsData.discountProposed || this.loansAccountTermsData.discount || '',
principalAmount: this.loansAccountTermsData.proposedPrincipal,
periodPaymentRate: this.loansAccountTermsData.periodPaymentRate,
- totalPaymentVolume: this.loansAccountTermsData.totalPaymentVolume,
+ totalPayment: this.loansAccountTermsData.totalPayment,
repaymentEvery: this.loansAccountTermsData.repaymentEvery,
repaymentFrequencyType: this.loansAccountTermsData.repaymentFrequencyType?.id,
delinquencyGraceDays: this.loansAccountTermsData.delinquencyGraceDays,
@@ -723,7 +723,7 @@ export class LoansAccountTermsStepComponent extends LoanProductBaseComponent imp
amountValueValidator()
]
],
- totalPaymentVolume: [
+ totalPayment: [
'',
[
Validators.required,
diff --git a/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.html b/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.html
index d87c5a1a1b..8f950cbdec 100644
--- a/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.html
+++ b/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.html
@@ -117,6 +117,6 @@
@if (actions['Attach Loan Originator']) {
}
-@if (actions['Update discount']) {
+@if (actions['Discount Fee']) {
}
diff --git a/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.ts b/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.ts
index 2ecf36bb4e..fe53b6dc50 100644
--- a/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.ts
+++ b/src/app/loans/loans-view/loan-account-actions/loan-account-actions.component.ts
@@ -137,7 +137,7 @@ export class LoanAccountActionsComponent {
'Buy Down Fee': boolean;
'Undo Write-off': boolean;
'Attach Loan Originator': boolean;
- 'Update discount': boolean;
+ 'Discount Fee': boolean;
} = {
Close: false,
'Undo Approval': false,
@@ -179,7 +179,7 @@ export class LoanAccountActionsComponent {
'Buy Down Fee': false,
'Undo Write-off': false,
'Attach Loan Originator': false,
- 'Update discount': false
+ 'Discount Fee': false
};
actionButtonData: any;
diff --git a/src/app/loans/loans-view/loan-account-actions/update-discount/update-discount.component.ts b/src/app/loans/loans-view/loan-account-actions/update-discount/update-discount.component.ts
index 6d7ca1ecad..435e578b23 100644
--- a/src/app/loans/loans-view/loan-account-actions/update-discount/update-discount.component.ts
+++ b/src/app/loans/loans-view/loan-account-actions/update-discount/update-discount.component.ts
@@ -18,12 +18,12 @@ import { amountValueValidator } from 'app/shared/validators/amount-value.validat
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
import { LoanAccountActionsBaseComponent } from '../loan-account-actions-base.component';
-import { WorkingCapitalLoanDiscountUpdateRequest } from 'app/loans/loans.service';
import { Currency } from 'app/shared/models/general.model';
import { InputAmountComponent } from 'app/shared/input-amount/input-amount.component';
+import { WorkingCapitalLoanDiscountUpdateRequest } from 'app/loans/models/working-capital/working-capital-loan-account.model';
/**
- * Update discount action for Working Capital Loan.
+ * Discount Fee action for Working Capital Loan.
*/
@Component({
selector: 'mifosx-update-discount',
@@ -61,7 +61,7 @@ export class UpdateDiscountComponent extends LoanAccountActionsBaseComponent imp
}
this.updateDiscountForm = this.formBuilder.group({
transactionAmount: [
- this.dataObject?.discount ?? this.dataObject?.discountAmount ?? '',
+ this.dataObject?.discount ?? this.dataObject?.transactionAmount ?? '',
[
Validators.required,
Validators.min(0),
@@ -91,18 +91,20 @@ export class UpdateDiscountComponent extends LoanAccountActionsBaseComponent imp
dateFormat: this.settingsService.dateFormat
};
- this.loanService.applyWorkingCapitalLoanAccountCommand(this.loanId, 'discountfee', payload).subscribe({
- next: () => {
- this.alertService.alert({
- type: 'Success',
- message: this.translateService.instant('labels.messages.workingCapitalDiscountUpdated')
- });
- this.gotoLoanDefaultView();
- },
- error: (error: HttpErrorResponse) => {
- this.submitErrorMessage = this.mapDiscountError(error);
- }
- });
+ this.loanService
+ .executeWorkingCapitalLoanAccountTransactionsCommand(this.loanId, 'discountFee', payload)
+ .subscribe({
+ next: () => {
+ this.alertService.alert({
+ type: 'Success',
+ message: this.translateService.instant('labels.messages.workingCapitalDiscountUpdated')
+ });
+ this.gotoLoanDefaultView();
+ },
+ error: (error: HttpErrorResponse) => {
+ this.submitErrorMessage = this.mapDiscountError(error);
+ }
+ });
}
private mapDiscountError(error: HttpErrorResponse): string {
diff --git a/src/app/loans/loans-view/loans-view.component.ts b/src/app/loans/loans-view/loans-view.component.ts
index 2f520c35c1..4ad2e7c763 100644
--- a/src/app/loans/loans-view/loans-view.component.ts
+++ b/src/app/loans/loans-view/loans-view.component.ts
@@ -260,7 +260,7 @@ export class LoansViewComponent extends LoanProductBaseComponent implements OnIn
this.buttonConfig = new LoansAccountButtonConfiguration(this.status, this.loanSubStatus);
if (this.canShowWorkingCapitalDiscountUpdate()) {
this.buttonConfig.addButton({
- name: 'Update discount',
+ name: 'Discount Fee',
icon: 'edit',
taskPermissionName: 'UPDATEDISCOUNT_WORKINGCAPITALLOAN'
});
diff --git a/src/app/loans/loans-view/working-capital/loan-balances-tab/loan-balances-tab.component.ts b/src/app/loans/loans-view/working-capital/loan-balances-tab/loan-balances-tab.component.ts
index ec323f8f07..708c76f73a 100644
--- a/src/app/loans/loans-view/working-capital/loan-balances-tab/loan-balances-tab.component.ts
+++ b/src/app/loans/loans-view/working-capital/loan-balances-tab/loan-balances-tab.component.ts
@@ -9,7 +9,6 @@
import { CurrencyPipe } from '@angular/common';
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
-import { FormatNumberPipe } from '@pipes/format-number.pipe';
import { WorkingCapitalBalances } from 'app/loans/models/working-capital/working-capital-loan-account.model';
import { LoanProductBaseComponent } from 'app/products/loan-products/common/loan-product-base.component';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
@@ -20,7 +19,6 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
styleUrl: './loan-balances-tab.component.scss',
imports: [
...STANDALONE_SHARED_IMPORTS,
- FormatNumberPipe,
CurrencyPipe
],
changeDetection: ChangeDetectionStrategy.OnPush
diff --git a/src/app/loans/loans.service.ts b/src/app/loans/loans.service.ts
index adf01d36a4..4b98e97e50 100644
--- a/src/app/loans/loans.service.ts
+++ b/src/app/loans/loans.service.ts
@@ -15,14 +15,7 @@ import { Observable } from 'rxjs';
import { Dates } from 'app/core/utils/dates';
import { SettingsService } from 'app/settings/settings.service';
import { DisbursementData } from './models/loan-account.model';
-
-export interface WorkingCapitalLoanDiscountUpdateRequest {
- transactionAmount: number;
- relatedResourceId: number;
- note?: string;
- locale: string;
- dateFormat: string;
-}
+import { WorkingCapitalLoanDiscountUpdateRequest } from './models/working-capital/working-capital-loan-account.model';
/**
* Loans service.
@@ -383,6 +376,21 @@ export class LoansService {
return this.http.post(`/working-capital-loans/${loanId}`, data, { params: httpParams });
}
+ executeWorkingCapitalLoanAccountTransactionsCommand(
+ accountId: string,
+ command: string,
+ data: any,
+ transactionId?: any
+ ): Observable {
+ const httpParams = new HttpParams().set('command', command);
+ if (transactionId !== null && transactionId !== undefined) {
+ return this.http.post(`/working-capital-loans/${accountId}/transactions/${transactionId}`, data, {
+ params: httpParams
+ });
+ }
+ return this.http.post(`/working-capital-loans/${accountId}/transactions`, data, { params: httpParams });
+ }
+
addInterestPauseToLoan(loanId: any, data?: any): Observable {
return this.http.post(`/loans/${loanId}/interest-pauses`, data);
}
diff --git a/src/app/loans/models/working-capital/working-capital-loan-account.model.ts b/src/app/loans/models/working-capital/working-capital-loan-account.model.ts
index 8305ac7e7d..fa08d5ed56 100644
--- a/src/app/loans/models/working-capital/working-capital-loan-account.model.ts
+++ b/src/app/loans/models/working-capital/working-capital-loan-account.model.ts
@@ -55,3 +55,11 @@ export interface WorkingCapitalBalances {
totalDiscountFee?: number;
overpaymentAmount?: number;
}
+
+export interface WorkingCapitalLoanDiscountUpdateRequest {
+ transactionAmount: number;
+ relatedResourceId: number;
+ note?: string;
+ locale: string;
+ dateFormat: string;
+}
diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json
index 8327483e15..30415d8f9e 100644
--- a/src/assets/translations/cs-CS.json
+++ b/src/assets/translations/cs-CS.json
@@ -3137,6 +3137,7 @@
"Deposit": "Vklad",
"Disburse": "Vyplatit",
"Disburse to Savings": "Výplata na Úspory",
+ "Discount Fee": "Poplatek za slevu",
"Edit Repayment Schedule": "Upravit splátkový kalendář",
"Foreclosure": "Exekuce",
"Frequent Postings": "Časté příspěvky",
diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json
index 28fd21987c..d8cdbd3973 100644
--- a/src/assets/translations/de-DE.json
+++ b/src/assets/translations/de-DE.json
@@ -3139,6 +3139,7 @@
"Deposit": "Kaution",
"Disburse": "Auszahlen",
"Disburse to Savings": "An die Ersparnisse auszahlen",
+ "Discount Fee": "Rabattgebühr",
"Edit Repayment Schedule": "Bearbeiten Sie den Rückzahlungsplan",
"Foreclosure": "Zwangsvollstreckung",
"Frequent Postings": "Häufige Beiträge",
diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json
index ba2ad50708..a1b1180ed6 100644
--- a/src/assets/translations/en-US.json
+++ b/src/assets/translations/en-US.json
@@ -3133,6 +3133,7 @@
"Deposit": "Deposit",
"Disburse": "Disburse",
"Disburse to Savings": "Disburse to Savings",
+ "Discount Fee": "Discount Fee",
"Edit Repayment Schedule": "Edit Repayment Schedule",
"Foreclosure": "Foreclosure",
"Frequent Postings": "Frequent Postings",
diff --git a/src/assets/translations/es-CL.json b/src/assets/translations/es-CL.json
index 0cb48cc764..af1784adf7 100644
--- a/src/assets/translations/es-CL.json
+++ b/src/assets/translations/es-CL.json
@@ -3138,6 +3138,7 @@
"Deposit": "Depósito",
"Disburse": "Desembolsar",
"Disburse to Savings": "Desembolsar a Ahorros",
+ "Discount Fee": "Tarifa de Descuento",
"Edit Repayment Schedule": "Editar calendario de pagos",
"Foreclosure": "Juicio hipotecario",
"Frequent Postings": "Publicaciones frecuentes",
diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json
index 1cfecdf0ba..27a9f16360 100644
--- a/src/assets/translations/es-MX.json
+++ b/src/assets/translations/es-MX.json
@@ -3130,6 +3130,7 @@
"Deposit": "Depósito",
"Disburse": "Desembolsar",
"Disburse to Savings": "Desembolsar a Ahorros",
+ "Discount Fee": "Tarifa de Descuento",
"Edit Repayment Schedule": "Editar calendario de pagos",
"Foreclosure": "Juicio hipotecario",
"Frequent Postings": "Publicaciones frecuentes",
diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json
index dfab37f7a5..24cd11023d 100644
--- a/src/assets/translations/fr-FR.json
+++ b/src/assets/translations/fr-FR.json
@@ -3140,6 +3140,7 @@
"Deposit": "Dépôt",
"Disburse": "Débourser",
"Disburse to Savings": "Versement de l'épargne",
+ "Discount Fee": "Frais d'escompte",
"Edit Repayment Schedule": "Modifier le calendrier de remboursement",
"Foreclosure": "Forclusion",
"Frequent Postings": "Publications fréquentes",
diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json
index 196fd10049..9a4cb04a01 100644
--- a/src/assets/translations/it-IT.json
+++ b/src/assets/translations/it-IT.json
@@ -3136,6 +3136,7 @@
"Deposit": "Depositare",
"Disburse": "Sborsare",
"Disburse to Savings": "Versare al risparmio",
+ "Discount Fee": "Commissione di Sconto",
"Edit Repayment Schedule": "Modifica il piano di rimborso",
"Foreclosure": "Pignoramento",
"Frequent Postings": "Pubblicazioni frequenti",
diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json
index d51be6ec76..6b8be52d14 100644
--- a/src/assets/translations/ko-KO.json
+++ b/src/assets/translations/ko-KO.json
@@ -3137,6 +3137,7 @@
"Deposit": "보증금",
"Disburse": "지불",
"Disburse to Savings": "저축으로 지출",
+ "Discount Fee": "할인 수수료",
"Edit Repayment Schedule": "상환 일정 편집",
"Foreclosure": "유질",
"Frequent Postings": "자주 게시되는 게시물",
diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json
index 791b3914c7..31e87bdc83 100644
--- a/src/assets/translations/lt-LT.json
+++ b/src/assets/translations/lt-LT.json
@@ -3136,6 +3136,7 @@
"Deposit": "Užstatas",
"Disburse": "Išmokėti",
"Disburse to Savings": "Išmokėkite santaupoms",
+ "Discount Fee": "Nuolaidų mokestis",
"Edit Repayment Schedule": "Redaguoti grąžinimo grafiką",
"Foreclosure": "Uždarymas",
"Frequent Postings": "Dažni skelbimai",
diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json
index 78a43544c8..438b1f531d 100644
--- a/src/assets/translations/lv-LV.json
+++ b/src/assets/translations/lv-LV.json
@@ -3137,6 +3137,7 @@
"Deposit": "Depozīts",
"Disburse": "Izmaksāt",
"Disburse to Savings": "Izmaksa uzkrājumiem",
+ "Discount Fee": "Atlaides maksa",
"Edit Repayment Schedule": "Rediģēt atmaksas grafiku",
"Foreclosure": "Preces ierobežošana",
"Frequent Postings": "Bieža publicēšana",
diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json
index 6e67c82860..9633953d96 100644
--- a/src/assets/translations/ne-NE.json
+++ b/src/assets/translations/ne-NE.json
@@ -3136,6 +3136,7 @@
"Deposit": "जम्मा",
"Disburse": "वितरण गर्नुहोस्",
"Disburse to Savings": "बचतमा वितरण गर्नुहोस्",
+ "Discount Fee": "छुट शुल्क",
"Edit Repayment Schedule": "पुन: भुक्तानी तालिका सम्पादन गर्नुहोस्",
"Foreclosure": "फोरक्लोजर",
"Frequent Postings": "बारम्बार पोस्टिंगहरू",
diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json
index 8e229766a4..4643c4227a 100644
--- a/src/assets/translations/pt-PT.json
+++ b/src/assets/translations/pt-PT.json
@@ -3136,6 +3136,7 @@
"Deposit": "Depósito",
"Disburse": "Desembolsar",
"Disburse to Savings": "Desembolsar para poupança",
+ "Discount Fee": "Taxa de Desconto",
"Edit Repayment Schedule": "Editar cronograma de reembolso",
"Foreclosure": "Execução hipotecária",
"Frequent Postings": "Postagens frequentes",
diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json
index 81b223d91e..0c59389fe2 100644
--- a/src/assets/translations/sw-SW.json
+++ b/src/assets/translations/sw-SW.json
@@ -3133,6 +3133,7 @@
"Deposit": "Amana",
"Disburse": "Lipa",
"Disburse to Savings": "Lipa kwa Akiba",
+ "Discount Fee": "Ada ya Punguzo",
"Edit Repayment Schedule": "Badilisha Ratiba ya Ulipaji",
"Foreclosure": "Foreclosure",
"Frequent Postings": "Machapisho ya Mara kwa Mara",