From abf42a61a38796dd6dfaa5fb5163c1e52fd911cf Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Mon, 13 Jan 2025 08:20:06 -0500 Subject: [PATCH] Loan Term variations including Interest Pauses --- src/app/core/utils/dates.ts | 4 ++ src/app/loans/loans-routing.module.ts | 3 +- .../loan-term-variations-tab.component.html | 44 ++++++++++++++----- .../loan-term-variations-tab.component.ts | 23 +++++++--- src/assets/translations/cs-CS.json | 1 + src/assets/translations/de-DE.json | 1 + src/assets/translations/en-US.json | 1 + src/assets/translations/es-MX.json | 1 + src/assets/translations/fr-FR.json | 1 + src/assets/translations/it-IT.json | 1 + src/assets/translations/ko-KO.json | 1 + src/assets/translations/lt-LT.json | 1 + src/assets/translations/lv-LV.json | 1 + src/assets/translations/ne-NE.json | 1 + src/assets/translations/pt-PT.json | 1 + src/assets/translations/sw-SW.json | 1 + 16 files changed, 69 insertions(+), 17 deletions(-) diff --git a/src/app/core/utils/dates.ts b/src/app/core/utils/dates.ts index 01bbfafdb3..7180653b6b 100644 --- a/src/app/core/utils/dates.ts +++ b/src/app/core/utils/dates.ts @@ -48,4 +48,8 @@ export class Dates { return JSON.parse(localStorage.getItem('mifosXLanguage')); } + calculateDiff(date1: Date, date2: Date){ + return Math.floor((Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate()) - Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate()) ) /(1000 * 60 * 60 * 24)); + } + } diff --git a/src/app/loans/loans-routing.module.ts b/src/app/loans/loans-routing.module.ts index fed3072323..f9b8dd60c6 100644 --- a/src/app/loans/loans-routing.module.ts +++ b/src/app/loans/loans-routing.module.ts @@ -172,7 +172,8 @@ const routes: Routes = [ component: LoanTermVariationsTabComponent, data: { title: 'Loan Term Variations', breadcrumb: 'Loan Term Variations', routeParamBreadcrumb: false }, resolve: { - loanTermVariationsData: LoanTermVariationsResolver + loanDetailsData: LoanDetailsResolver, + interestPausesData: LoanTermVariationsResolver }, }, { diff --git a/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.html b/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.html index 4f8e2c7209..eb28313dac 100644 --- a/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.html +++ b/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.html @@ -1,16 +1,35 @@

{{ 'labels.heading.Term Variations' | translate }}

- +
+ + + + + + + + + + + + + + + + + + + + +
{{"labels.inputs.Type" | translate}} {{ item.termType.value | translate }} {{"labels.inputs.Added On" | translate}} {{ item.termVariationApplicableFrom | dateFormat }} {{"labels.inputs.Value" | translate}} {{ item.decimalValue | formatNumber }} {{"labels.inputs.Specific to Installment" | translate}} {{ item.isSpecificToInstallment | yesNo }}
+ +

{{ 'labels.heading.Interest Pauses' | translate }}

+ - - - - - @@ -21,14 +40,19 @@

{{ 'labels.heading.Term Variations' | translate }}

- - + + + + + + +
# {{ idx + 1 }} {{ 'labels.inputs.Id' | translate }}{{ item.id }}{{ 'labels.inputs.Start Date' | translate }} {{ item.startDate | dateFormat }} {{ item.endDate | dateFormat }}
{{ 'labels.inputs.Days' | translate }}{{ item.days | formatNumber }}
-
+
{{ 'labels.text.No data found' | translate }}
-
+
\ No newline at end of file diff --git a/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.ts b/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.ts index 93a5f786cd..4ca650000d 100644 --- a/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.ts +++ b/src/app/loans/loans-view/loan-term-variations-tab/loan-term-variations-tab.component.ts @@ -1,5 +1,6 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; +import { Dates } from 'app/core/utils/dates'; @Component({ selector: 'mifosx-loan-term-variations-tab', @@ -10,12 +11,22 @@ export class LoanTermVariationsTabComponent { /** Loan Term Variation Data */ loanTermVariationsData: any[] = []; - loanTermVariationsColumns: string[] = ['row', 'id', 'startDate', 'endDate']; + loanDTermVariationsColumns: string[] = ['termType', 'applicableFrom', 'value', 'specificToInstallment']; + /** Interest Pauses Data */ + interestPausesData: any[] = []; + interestPausesColumns: string[] = ['row', 'startDate', 'endDate', 'days']; - constructor(private route: ActivatedRoute) { - this.loanTermVariationsData = []; - this.route.data.subscribe((data: { loanTermVariationsData: any, }) => { - this.loanTermVariationsData = data.loanTermVariationsData; + constructor(private route: ActivatedRoute, + private dates: Dates + ) { + this.interestPausesData = []; + this.route.data.subscribe((data: { loanDetailsData: any, interestPausesData: any }) => { + this.loanTermVariationsData = data.loanDetailsData.loanTermVariations; + this.interestPausesData = []; + data.interestPausesData?.forEach((item: any) => { + item.days = dates.calculateDiff(new Date(item.startDate), new Date(item.endDate)); + this.interestPausesData.push(item); + }); }); } } diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index 06c56d67aa..d892236929 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -944,6 +944,7 @@ "Installment Amount Variations": "Variace výše splátek", "Interest Calculations": "Výpočty úroků", "Interest Details": "Podrobnosti o zájmu", + "Interest Pauses": "Úrokové pauzy", "Interest Rate Chart": "Graf úrokových sazeb", "Interest Rate Charts": "Grafy úrokových sazeb", "Interest Recalculation": "Přepočet úroků", diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index 0a8d27f56a..dd04471928 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Variationen der Ratenbeträge", "Interest Calculations": "Zinsberechnungen", "Interest Details": "Interessendetails", + "Interest Pauses": "Zinspausen", "Interest Rate Chart": "Zinsdiagramm", "Interest Rate Charts": "Zinsdiagramme", "Interest Recalculation": "Neuberechnung der Zinsen", diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 56b3ffb995..5f97c008f7 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -947,6 +947,7 @@ "Installment Amount Variations": "Installment Amount Variations", "Interest Calculations": "Interest Calculations", "Interest Details": "Interest Details", + "Interest Pauses": "Interest Pauses", "Interest Rate Chart": "Interest Rate Chart", "Interest Rate Charts": "Interest Rate Charts", "Interest Recalculation": "Interest Recalculation", diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index cf752e502f..4710c94d74 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -944,6 +944,7 @@ "Installment Amount Variations": "Variaciones en el monto de la cuota", "Interest Calculations": "Cálculos de intereses", "Interest Details": "Detalles de interés", + "Interest Pauses": "Pausa de interés", "Interest Rate Chart": "Gráfico de tasas de interés", "Interest Rate Charts": "Gráficos de tasas de interés", "Interest Recalculation": "Recálculo de intereses", diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 9a05ae1301..8602426ed6 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Variations du montant des versements", "Interest Calculations": "Calculs d'intérêts", "Interest Details": "Détails des intérêts", + "Interest Pauses": "Pauses d'intérêt", "Interest Rate Chart": "Graphique des taux d'intérêt", "Interest Rate Charts": "Graphiques des taux d'intérêt", "Interest Recalculation": "Recalcul des intérêts", diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index 6a1d651c26..ad308e852b 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Variazioni dell'importo della rata", "Interest Calculations": "Calcoli degli interessi", "Interest Details": "Dettagli sugli interessi", + "Interest Pauses": "Pause di interesse", "Interest Rate Chart": "Grafico dei tassi di interesse", "Interest Rate Charts": "Grafici dei tassi di interesse", "Interest Recalculation": "Ricalcolo degli interessi", diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index 6da6b44e61..88b07585e7 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "할부금액 변동", "Interest Calculations": "이자 계산", "Interest Details": "이자 세부정보", + "Interest Pauses": "관심 일시중지", "Interest Rate Chart": "금리 차트", "Interest Rate Charts": "금리 차트", "Interest Recalculation": "이자 재계산", diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index d6d396054c..93692a2543 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Įmokos dydžio svyravimai", "Interest Calculations": "Palūkanų skaičiavimas", "Interest Details": "Susidomėjimo detalės", + "Interest Pauses": "Susidomėjimo pauzės", "Interest Rate Chart": "Palūkanų normų diagrama", "Interest Rate Charts": "Palūkanų normų diagramos", "Interest Recalculation": "Palūkanų perskaičiavimas", diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index a1ff256274..8b6631404e 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Iemaksas summas variācijas", "Interest Calculations": "Procentu aprēķini", "Interest Details": "Sīkāka informācija par interesēm", + "Interest Pauses": "Interešu pauzes", "Interest Rate Chart": "Procentu likmju diagramma", "Interest Rate Charts": "Procentu likmju diagrammas", "Interest Recalculation": "Procentu pārrēķins", diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index b09615824d..c40f859506 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "किस्ता रकम भिन्नताहरू", "Interest Calculations": "ब्याज गणना", "Interest Details": "ब्याज विवरण", + "Interest Pauses": "ब्याज रोकिन्छ", "Interest Rate Chart": "ब्याज दर चार्ट", "Interest Rate Charts": "ब्याज दर चार्टहरू", "Interest Recalculation": "ब्याज पुन: गणना", diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index a501988625..dd7b42964b 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Variações no valor da parcela", "Interest Calculations": "Cálculos de juros", "Interest Details": "Detalhes de interesse", + "Interest Pauses": "Pausas de interesse", "Interest Rate Chart": "Gráfico de taxas de juros", "Interest Rate Charts": "Gráficos de taxas de juros", "Interest Recalculation": "Recálculo de juros", diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index d6aeb18b95..bdc3363cf4 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -945,6 +945,7 @@ "Installment Amount Variations": "Tofauti za Kiasi cha Ufungaji", "Interest Calculations": "Mahesabu ya riba", "Interest Details": "Maelezo ya Maslahi", + "Interest Pauses": "Maslahi Yasitisha", "Interest Rate Chart": "Chati ya Kiwango cha Riba", "Interest Rate Charts": "Chati za Kiwango cha Riba", "Interest Recalculation": "Uhesabuji wa Maslahi",