From 319ce8057ab77aaa9f3754ccc81ff020a5d5f324 Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Thu, 20 Mar 2025 11:18:05 -0500 Subject: [PATCH] Introduce a new type of ACTUAL during calculation of days in year --- .../edit-repayment-schedule.component.html | 5 +- .../edit-repayment-schedule.component.ts | 2 +- .../repayment-schedule-tab.component.html | 231 +++++++++--------- .../repayment-schedule-tab.component.ts | 109 ++++++++- .../loan-product-summary.component.html | 5 + .../loan-product-summary.component.ts | 7 + .../create-loan-product.component.scss | 2 + .../edit-loan-product.component.scss | 2 + .../loan-product-settings-step.component.html | 15 ++ .../loan-product-settings-step.component.ts | 23 +- .../models/loan-product.model.ts | 1 + .../view-loan-product.component.scss | 2 +- src/app/shared/icons.module.ts | 6 +- src/assets/translations/cs-CS.json | 6 +- src/assets/translations/de-DE.json | 6 +- src/assets/translations/en-US.json | 6 +- src/assets/translations/es-CL.json | 6 +- src/assets/translations/es-MX.json | 6 +- src/assets/translations/fr-FR.json | 6 +- src/assets/translations/it-IT.json | 6 +- src/assets/translations/ko-KO.json | 6 +- src/assets/translations/lt-LT.json | 6 +- src/assets/translations/lv-LV.json | 6 +- src/assets/translations/ne-NE.json | 6 +- src/assets/translations/pt-PT.json | 6 +- src/assets/translations/sw-SW.json | 6 +- src/environments/.env.ts | 4 +- 27 files changed, 345 insertions(+), 147 deletions(-) diff --git a/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.html b/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.html index a9338c54d..5c2ea42e1 100644 --- a/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.html +++ b/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.html @@ -1,8 +1,9 @@
-
+
{{ 'labels.buttons.Cancel' | translate }} - + diff --git a/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.ts b/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.ts index febeab2b4..0e4658876 100644 --- a/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/edit-repayment-schedule/edit-repayment-schedule.component.ts @@ -24,7 +24,7 @@ export class EditRepaymentScheduleComponent implements OnInit { /** Indicates If the Schedule has been validated */ wasValidated = false; /** Stores the Repayment Schedule data */ - repaymentScheduleDetails: any[] = []; + repaymentScheduleDetails: any[] | null = null; /** Stores the Installments changed */ repaymentScheduleChanges: any = {}; diff --git a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html index e77e38e3b..c47bcf534 100644 --- a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html +++ b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html @@ -1,5 +1,5 @@
-
+
@@ -8,52 +8,52 @@ - + - + - - - - - - - - - - - - - - + - + @@ -200,98 +200,95 @@
#{{ ele.period }}{{ item.period }}   {{ 'labels.inputs.Days' | translate }}{{ ele.daysInPeriod }}{{ item.daysInPeriod }} Total {{ 'labels.inputs.Date' | translate }} - {{ ele.dueDate | dateFormat }} + + {{ item.dueDate | dateFormat }} {{ 'labels.inputs.Paid Date' | translate }} - {{ ele.obligationsMetOnDate | dateFormat }} + + {{ item.obligationsMetOnDate | dateFormat }}   - + + {{ 'labels.inputs.Balance Of Loan' | translate }} - {{ ele.principalLoanBalanceOutstanding | formatNumber }} + + {{ item.principalLoanBalanceOutstanding | formatNumber }}   {{ 'labels.inputs.Principal Due' | translate }} - {{ ele.principalDue | formatNumber }} + + {{ item.principalDue | formatNumber }} @@ -64,8 +64,8 @@ {{ 'labels.inputs.Interest' | translate }} - {{ ele.interestOriginalDue | formatNumber }} + + {{ item.interestOriginalDue | formatNumber }} @@ -76,8 +76,8 @@ {{ 'labels.inputs.Fees' | translate }} - {{ ele.feeChargesDue | formatNumber }} + + {{ item.feeChargesDue | formatNumber }} @@ -88,8 +88,8 @@ {{ 'labels.inputs.Penalties' | translate }} - {{ ele.penaltyChargesDue | formatNumber }} + + {{ item.penaltyChargesDue | formatNumber }} @@ -100,8 +100,8 @@ {{ 'labels.inputs.Due' | translate }} - {{ ele.totalDueForPeriod | formatNumber }} + + {{ item.totalDueForPeriod | formatNumber }} @@ -112,8 +112,8 @@ {{ 'labels.inputs.Paid' | translate }} - {{ ele.totalPaidForPeriod | formatNumber }} + + {{ item.totalPaidForPeriod | formatNumber }} {{ repaymentScheduleDetails.totalRepayment | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} @@ -122,8 +122,8 @@ {{ 'labels.inputs.In advance' | translate }} - {{ ele.totalPaidInAdvanceForPeriod | formatNumber }} + + {{ item.totalPaidInAdvanceForPeriod | formatNumber }} {{ repaymentScheduleDetails.totalPaidInAdvance | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} @@ -132,8 +132,8 @@ {{ 'labels.inputs.Late' | translate }} - {{ ele.totalPaidLateForPeriod | formatNumber }} + + {{ item.totalPaidLateForPeriod | formatNumber }} {{ repaymentScheduleDetails.totalPaidLate | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} @@ -143,8 +143,8 @@ {{ 'labels.inputs.Waived' | translate }} - {{ ele.totalWaivedForPeriod | formatNumber }} + + {{ item.totalWaivedForPeriod | formatNumber }} {{ repaymentScheduleDetails.totalWaived | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} @@ -155,14 +155,14 @@ {{ 'labels.inputs.Outstanding' | translate }}{{ ele.totalOutstandingForPeriod | formatNumber }}{{ item.totalOutstandingForPeriod | formatNumber }} {{ repaymentScheduleDetails.totalOutstanding | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}
-
- - - - - - +
#{{ ele.period }} 
+ + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + + - - - -
#{{ item.period }}{{ 'labels.inputs.Date' | translate }}{{ ele.dueDate | dateFormat }}{{ 'labels.inputs.Date' | translate }} + + {{ item.dueDate | dateFormat }} + + {{ 'labels.inputs.Balance Of Loan' | translate }} - {{ ele.principalLoanBalanceOutstanding | formatNumber }} -  {{ 'labels.inputs.Balance Of Loan' | translate }} + {{ item.principalLoanBalanceOutstanding | formatNumber }} + {{ 'labels.inputs.Principal Due' | translate }}{{ ele.principalDue | formatNumber }} - - {{ - repaymentScheduleDetails.totalPrincipalExpected | currency: currencyCode : 'symbol-narrow' : '1.2-2' - }} - {{ 'labels.inputs.Principal Due' | translate }} + + {{ item.principalDue | formatNumber }} + + {{ 'labels.inputs.Interest' | translate }}{{ ele.interestOriginalDue | formatNumber }} - - {{ repaymentScheduleDetails.totalInterestCharged | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} - - {{ 'labels.inputs.Interest' | translate }}{{ item.interestOriginalDue | formatNumber }}{{ 'labels.inputs.Fees' | translate }}{{ ele.feeChargesDue | formatNumber }} - - {{ repaymentScheduleDetails.totalFeeChargesCharged | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} - - {{ 'labels.inputs.Fees' | translate }}{{ item.feeChargesDue | formatNumber }}{{ 'labels.inputs.Installment Amount' | translate }} - - {{ ele.totalDueForPeriod | formatNumber }} - - - {{ ele.totalDueForPeriod | formatNumber }} - - - - {{ repaymentScheduleDetails.totalRepaymentExpected | currency: currencyCode : 'symbol-narrow' : '1.2-2' }} - - {{ 'labels.inputs.Installment Amount' | translate }} + + {{ item.totalDueForPeriod | formatNumber }} + + + {{ item.totalDueForPeriod | formatNumber }} + + {{ 'labels.inputs.Actions' | translate }} - - {{ 'labels.inputs.Actions' | translate }} + + + + + + +
-
+ + +
diff --git a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts index cca237e71..aeeab68ea 100644 --- a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts +++ b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts @@ -1,8 +1,13 @@ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute } from '@angular/router'; import { Dates } from 'app/core/utils/dates'; import { RepaymentSchedulePeriod } from 'app/loans/models/loan-account.model'; import { SettingsService } from 'app/settings/settings.service'; +import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component'; +import { DatepickerBase } from 'app/shared/form-dialog/formfield/model/datepicker-base'; +import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; +import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base'; import { jsPDF, jsPDFOptions } from 'jspdf'; import autoTable from 'jspdf-autotable'; @@ -12,7 +17,7 @@ import autoTable from 'jspdf-autotable'; templateUrl: './repayment-schedule-tab.component.html', styleUrls: ['./repayment-schedule-tab.component.scss'] }) -export class RepaymentScheduleTabComponent implements OnInit { +export class RepaymentScheduleTabComponent implements OnInit, OnChanges { /** Currency Code */ @Input() currencyCode: string; /** Loan Repayment Schedule to be Edited */ @@ -21,6 +26,13 @@ export class RepaymentScheduleTabComponent implements OnInit { @Input() repaymentScheduleDetails: any = null; loanDetailsDataRepaymentSchedule: any = []; + editCache: { [key: string]: any } = {}; + listOfData: any[] = []; + + repaymentSchedulePeriods: RepaymentSchedulePeriod[] = []; + + totalRepaymentExpected: number = 0; + /** Stores if there is any waived amount */ isWaived: boolean; /** Columns to be displayed in original schedule table. */ @@ -50,7 +62,8 @@ export class RepaymentScheduleTabComponent implements OnInit { 'principalDue', 'interest', 'fees', - 'due' + 'due', + 'actions' ]; /** Form functions event */ @@ -65,7 +78,8 @@ export class RepaymentScheduleTabComponent implements OnInit { constructor( private route: ActivatedRoute, private settingsService: SettingsService, - private dates: Dates + private dateUtils: Dates, + private dialog: MatDialog ) { this.route.parent.data.subscribe((data: { loanDetailsData: any }) => { if (data.loanDetailsData) { @@ -81,6 +95,14 @@ export class RepaymentScheduleTabComponent implements OnInit { this.repaymentScheduleDetails = this.loanDetailsDataRepaymentSchedule; } this.isWaived = this.repaymentScheduleDetails.totalWaived > 0; + this.updateEditCache(); + } + + ngOnChanges(changes: SimpleChanges): void { + this.totalRepaymentExpected = 0; + this.listOfData.forEach((item) => { + this.totalRepaymentExpected = this.totalRepaymentExpected + item.totalDueForPeriod; + }); } installmentStyle(installment: RepaymentSchedulePeriod): string { @@ -103,8 +125,8 @@ export class RepaymentScheduleTabComponent implements OnInit { if (!installment.fromDate) { return ''; } else { - const fromDate = this.dates.parseDate(installment.fromDate); - const dueDate = this.dates.parseDate(installment.dueDate); + const fromDate = this.dateUtils.parseDate(installment.fromDate); + const dueDate = this.dateUtils.parseDate(installment.dueDate); if (fromDate <= this.businessDate && this.businessDate < dueDate) { return 'current'; } @@ -116,7 +138,7 @@ export class RepaymentScheduleTabComponent implements OnInit { } exportToPDF() { - const businessDate = this.dates.formatDate(this.settingsService.businessDate, Dates.DEFAULT_DATEFORMAT); + const businessDate = this.dateUtils.formatDate(this.settingsService.businessDate, Dates.DEFAULT_DATEFORMAT); const fileName = `repaymentschedule-${businessDate}.pdf`; const options: jsPDFOptions = { @@ -144,4 +166,77 @@ export class RepaymentScheduleTabComponent implements OnInit { }); pdf.save(fileName); } + + editInstallment(period: RepaymentSchedulePeriod): void { + this.editCache[period.period].edit = true; + const formfields: FormfieldBase[] = [ + new DatepickerBase({ + controlName: 'dueDate', + label: 'Due Date', + value: this.dateUtils.parseDate(period.dueDate), + type: 'date', + required: true + }), + new InputBase({ + controlName: 'principalDue', + label: 'Amount', + value: period.principalDue, + type: 'number', + required: true + }) + + ]; + + const data = { + title: 'Period', + formfields: formfields + }; + const addDialogRef = this.dialog.open(FormDialogComponent, { data, width: '50rem' }); + addDialogRef.afterClosed().subscribe((response: any) => { + if (response.data) { + } + }); + } + + cancelEdit(id: string): void { + const index = this.listOfData.findIndex((item) => item.id === id); + this.editCache[id] = { + data: { ...this.listOfData[index] }, + edit: false + }; + } + + saveEdit(period: string): void { + const index = this.listOfData.findIndex((item) => item.period === period); + Object.assign(this.listOfData[index], this.editCache[period].data); + this.editCache[period].edit = false; + this.editPeriod.emit(period); + } + + updateEditCache(): void { + if (this.repaymentScheduleDetails != null) { + this.listOfData = this.repaymentScheduleDetails.periods; + this.totalRepaymentExpected = 0; + this.listOfData.forEach((item) => { + this.editCache[item.period] = { + edit: false, + data: { ...item } + }; + this.totalRepaymentExpected = this.totalRepaymentExpected + item.totalDueForPeriod; + }); + } + } + + numberOnly(inputFormControl: any, event: any): boolean { + const charCode = event.which ? event.which : event.keyCode; + if (charCode === 46) { + if (!(inputFormControl.value.indexOf('.') > -1)) { + return true; + } + return false; + } else if (charCode > 31 && (charCode < 48 || charCode > 57)) { + return false; + } + return true; + } } 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 053770e4b..e138b7f5b 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 @@ -496,6 +496,11 @@ {{ loanProduct.daysInYearType?.value | translateKey: 'catalogs' }}
+
+ {{ 'labels.inputs.Days in year custom strategy' | translate }}: + {{ loanProduct.daysInYearCustomStrategy.value | translateKey: 'catalogs' }} +
+
{{ 'labels.inputs.Days in month' | translate }}: {{ loanProduct.daysInMonthType?.value | translateKey: 'catalogs' }} 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 ef49733a3..0bf5b638d 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 @@ -275,6 +275,13 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { this.loanProductsTemplate.daysInYearTypeOptions ); this.loanProduct.daysInYearType = optionValue; + if (this.isAdvancedPaymentAllocation && this.loanProduct.daysInYearType.id == 1) { + optionValue = this.optionDataLookUp( + this.loanProduct.daysInYearCustomStrategy, + this.loanProductsTemplate.daysInYearCustomStrategyOptions + ); + } + this.loanProduct.daysInYearCustomStrategy = optionValue; optionValue = this.optionDataLookUp( this.loanProduct.interestRateFrequencyType, this.loanProductsTemplate.interestRateFrequencyTypeOptions diff --git a/src/app/products/loan-products/create-loan-product/create-loan-product.component.scss b/src/app/products/loan-products/create-loan-product/create-loan-product.component.scss index 4826822fb..ea4762e65 100644 --- a/src/app/products/loan-products/create-loan-product/create-loan-product.component.scss +++ b/src/app/products/loan-products/create-loan-product/create-loan-product.component.scss @@ -1,4 +1,6 @@ .container { + max-width: 86rem; + width: 96%; padding-bottom: 30px; } diff --git a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.scss b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.scss index e1b888d16..f141b67b8 100644 --- a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.scss +++ b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.scss @@ -1,3 +1,5 @@ .container { + max-width: 86rem; + width: 96%; padding-bottom: 30px; } diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html index 9047ab7ac..50120bb7e 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html @@ -330,6 +330,21 @@ + + {{ 'labels.inputs.Days in year custom strategy' | translate }} + + + {{ daysInYearCustomStrategy.value | translateKey: 'catalogs' }} + + + + {{ 'labels.inputs.Days in month' | translate }} { + if (this.isAdvancedTransactionProcessingStrategy) { + this.useDaysInYearCustomStrategy = daysInYearType == 1; + if (this.useDaysInYearCustomStrategy) { + const daysInYearCustomStrategy: string = this.loanProductsTemplate.daysInYearCustomStrategy?.id + ? this.loanProductsTemplate.daysInYearCustomStrategy.id + : ''; + this.loanProductSettingsForm.addControl( + 'daysInYearCustomStrategy', + new UntypedFormControl(daysInYearCustomStrategy, Validators.required) + ); + } else { + this.loanProductSettingsForm.removeControl('daysInYearCustomStrategy'); + } + } + }); + this.loanProductSettingsForm .get('interestCalculationPeriodType') .valueChanges.subscribe((interestCalculationPeriodType: any) => { @@ -696,6 +714,7 @@ export class LoanProductSettingsStepComponent implements OnInit { if (productSettings['delinquencyBucketId'] === '') { productSettings['delinquencyBucketId'] = null; } + console.log(productSettings); return productSettings; } diff --git a/src/app/products/loan-products/models/loan-product.model.ts b/src/app/products/loan-products/models/loan-product.model.ts index c07af8388..f54624a05 100644 --- a/src/app/products/loan-products/models/loan-product.model.ts +++ b/src/app/products/loan-products/models/loan-product.model.ts @@ -52,6 +52,7 @@ export interface LoanProduct { paymentAllocation?: PaymentAllocation[]; creditAllocation?: CreditAllocation[]; daysInMonthType: OptionData; + daysInYearCustomStrategy?: OptionData; daysInYearType: OptionData; isInterestRecalculationEnabled: boolean; interestRecalculationData?: InterestRecalculationData; diff --git a/src/app/products/loan-products/view-loan-product/view-loan-product.component.scss b/src/app/products/loan-products/view-loan-product/view-loan-product.component.scss index c8c153b25..6c464af8d 100644 --- a/src/app/products/loan-products/view-loan-product/view-loan-product.component.scss +++ b/src/app/products/loan-products/view-loan-product/view-loan-product.component.scss @@ -1,6 +1,6 @@ .product-card { margin: 0 auto; - max-width: 80rem; + max-width: 90rem; width: 90%; padding: 0; diff --git a/src/app/shared/icons.module.ts b/src/app/shared/icons.module.ts index 55097fee6..3b0707432 100644 --- a/src/app/shared/icons.module.ts +++ b/src/app/shared/icons.module.ts @@ -111,7 +111,8 @@ import { faCalendarCheck, faPause, faReceipt, - faTableCells + faTableCells, + faSave } from '@fortawesome/free-solid-svg-icons'; /** @@ -235,7 +236,8 @@ export class IconsModule { faBars, faUndo, faReceipt, - faTableCells + faTableCells, + faSave ); } } diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index 6b66205bb..a7707d8bd 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Zkontrolujte splatnost půjčky", "Transfer to Savings": "Převod do Úspory", "Zero interest after charge-off": "Nulový úrok po nabití", - "Accelerate maturity to charge-off date": "Urychlete splatnost do data odúčtování" + "Accelerate maturity to charge-off date": "Urychlete splatnost do data odúčtování", + "Full Leap Year": "Úplný přestupný rok", + "Feb 29 Period Only": "Pouze období 29. února" }, "commons": { "50 characters long": "50 znaků dlouhé", @@ -1458,6 +1460,7 @@ "Days From": "Dny od", "Days Till": "Dny do", "Days in Year": "Dny v roce", + "Days in year custom strategy": "Vlastní strategie dnů v roce", "Days in month": "Dny v měsíci", "Days in year": "Dny v roce", "Days to Dormancy": "Dny do dormance", @@ -2498,6 +2501,7 @@ "Deposit": "Vklad", "Disburse": "Vyplatit", "Disburse to Savings": "Výplata na Úspory", + "Edit Repayment Schedule": "Upravit splátkový kalendář", "Foreclosure": "Exekuce", "Frequent Postings": "Časté příspěvky", "Frequently Accessed": "Často používané", diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index 9520169a8..e770b8afd 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Prüfen Sie, ob die Kreditrückzahlung fällig ist", "Transfer to Savings": "Übertragen auf Ersparnisse", "Zero interest after charge-off": "Null Zinsen nach Abschreibung", - "Accelerate maturity to charge-off date": "Fälligkeit bis zum Abschreibungsdatum beschleunigen" + "Accelerate maturity to charge-off date": "Fälligkeit bis zum Abschreibungsdatum beschleunigen", + "Full Leap Year": "Volles Schaltjahr", + "Feb 29 Period Only": "Nur für den Zeitraum vom 29. Februar" }, "commons": { "50 characters long": "50 Zeichen lang", @@ -1458,6 +1460,7 @@ "Days From": "Tage ab", "Days Till": "Tage bis", "Days in Year": "Tage im Jahr", + "Days in year custom strategy": "Tage im Jahr, individuelle Strategie", "Days in month": "Tage im Monat", "Days in year": "Tage im Jahr", "Days to Dormancy": "Tage bis zur Ruhephase", @@ -2498,6 +2501,7 @@ "Deposit": "Kaution", "Disburse": "Auszahlen", "Disburse to Savings": "An die Ersparnisse auszahlen", + "Edit Repayment Schedule": "Bearbeiten Sie den Rückzahlungsplan", "Foreclosure": "Zwangsvollstreckung", "Frequent Postings": "Häufige Beiträge", "Frequently Accessed": "Häufig aufgerufen", diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 6554fbc89..447623497 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -744,7 +744,9 @@ "Check loan repayment due": "Check loan repayment due", "Transfer to Savings": "Transfer to Savings", "Zero interest after charge-off": "Zero interest after charge-off", - "Accelerate maturity to charge-off date": "Accelerate maturity to charge-off date" + "Accelerate maturity to charge-off date": "Accelerate maturity to charge-off date", + "Full Leap Year": "Full Leap Year", + "Feb 29 Period Only": "Feb 29 Period Only" }, "commons": { "50 characters long": "50 characters long", @@ -1461,6 +1463,7 @@ "Days From": "Days From", "Days Till": "Days Till", "Days in Year": "Days in Year", + "Days in year custom strategy": "Days in year custom strategy", "Days in month": "Days in month", "Days in year": "Days in year", "Days to Dormancy": "Days to Dormancy", @@ -2504,6 +2507,7 @@ "Deposit": "Deposit", "Disburse": "Disburse", "Disburse to Savings": "Disburse to Savings", + "Edit Repayment Schedule": "Edit Repayment Schedule", "Foreclosure": "Foreclosure", "Frequent Postings": "Frequent Postings", "Frequently Accessed": "Frequently Accessed", diff --git a/src/assets/translations/es-CL.json b/src/assets/translations/es-CL.json index 347f29a1b..94667c43e 100644 --- a/src/assets/translations/es-CL.json +++ b/src/assets/translations/es-CL.json @@ -740,7 +740,9 @@ "Check loan repayment due": "Verificar pagos a vencer de préstamos", "Transfer to Savings": "Transferir a Ahorros", "Zero interest after charge-off": "Cero intereses después de la cancelación", - "Accelerate maturity to charge-off date": "Acelerar el vencimiento hasta la fecha de amortización" + "Accelerate maturity to charge-off date": "Acelerar el vencimiento hasta la fecha de amortización", + "Full Leap Year": "Año bisiesto completo", + "Feb 29 Period Only": "Solo periodo del 29 de febrero" }, "commons": { "50 characters long": "50 caracteres de largo", @@ -1457,6 +1459,7 @@ "Days From": "Días desde", "Days Till": "Días hasta", "Days in Year": "Días en el año", + "Days in year custom strategy": "Estrategia personalizada de días en el año", "Days in month": "Dias en el mes", "Days in year": "Dias en el año", "Days to Dormancy": "Días hasta la Inactividad", @@ -2498,6 +2501,7 @@ "Deposit": "Depósito", "Disburse": "Desembolsar", "Disburse to Savings": "Desembolsar a Ahorros", + "Edit Repayment Schedule": "Editar calendario de pagos", "Foreclosure": "Juicio hipotecario", "Frequent Postings": "Publicaciones frecuentes", "Frequently Accessed": "Acceso frecuente", diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index 04e8ab197..eb29b0d53 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -740,7 +740,9 @@ "Check loan repayment due": "Verificar pagos a vencer de préstamos", "Transfer to Savings": "Transferir a Ahorros", "Zero interest after charge-off": "Cero intereses después de la cancelación", - "Accelerate maturity to charge-off date": "Acelerar el vencimiento hasta la fecha de amortización" + "Accelerate maturity to charge-off date": "Acelerar el vencimiento hasta la fecha de amortización", + "Full Leap Year": "Año bisiesto completo", + "Feb 29 Period Only": "Solo periodo del 29 de febrero" }, "commons": { "50 characters long": "50 caracteres de largo", @@ -1457,6 +1459,7 @@ "Days From": "Días desde", "Days Till": "Días hasta", "Days in Year": "Días en el año", + "Days in year custom strategy": "Estrategia personalizada de días en el año", "Days in month": "Dias en el mes", "Days in year": "Dias en el año", "Days to Dormancy": "Días hasta la Inactividad", @@ -2498,6 +2501,7 @@ "Deposit": "Depósito", "Disburse": "Desembolsar", "Disburse to Savings": "Desembolsar a Ahorros", + "Edit Repayment Schedule": "Editar calendario de pagos", "Foreclosure": "Juicio hipotecario", "Frequent Postings": "Publicaciones frecuentes", "Frequently Accessed": "Acceso frecuente", diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 0222753bf..746c371be 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Vérifier le remboursement du prêt dû", "Transfer to Savings": "Transfert vers l'épargne", "Zero interest after charge-off": "Zéro intérêt après radiation", - "Accelerate maturity to charge-off date": "Accélérer la maturité jusqu'à la date de radiation" + "Accelerate maturity to charge-off date": "Accélérer la maturité jusqu'à la date de radiation", + "Full Leap Year": "Année bissextile complète", + "Feb 29 Period Only": "Période du 29 février seulement" }, "commons": { "50 characters long": "50 caractères", @@ -1458,6 +1460,7 @@ "Days From": "Jours à partir de", "Days Till": "Jours jusqu'à", "Days in Year": "Jours dans l'année", + "Days in year custom strategy": "Stratégie personnalisée jours par an", "Days in month": "Jours dans le mois", "Days in year": "Jours dans l'année", "Days to Dormancy": "Jours avant la dormance", @@ -2498,6 +2501,7 @@ "Deposit": "Dépôt", "Disburse": "Débourser", "Disburse to Savings": "Versement de l'épargne", + "Edit Repayment Schedule": "Modifier le calendrier de remboursement", "Foreclosure": "Forclusion", "Frequent Postings": "Publications fréquentes", "Frequently Accessed": "Fréquemment consulté", diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index 2906f876a..75aa0c9cc 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Controllare il rimborso del prestito in scadenza", "Transfer to Savings": "Trasferimento al risparmio", "Zero interest after charge-off": "Zero interessi dopo la cancellazione", - "Accelerate maturity to charge-off date": "Accelerare la scadenza alla data di cancellazione" + "Accelerate maturity to charge-off date": "Accelerare la scadenza alla data di cancellazione", + "Full Leap Year": "Anno bisestile completo", + "Feb 29 Period Only": "Solo periodo del 29 febbraio" }, "commons": { "50 characters long": "50 caratteri di lunghezza", @@ -1458,6 +1460,7 @@ "Days From": "Giorni da", "Days Till": "Giorni fino", "Days in Year": "Giorni nell'anno", + "Days in year custom strategy": "Strategia personalizzata per i giorni dell'anno", "Days in month": "Giorni nel mese", "Days in year": "Giorni nell'anno", "Days to Dormancy": "Giorni di dormienza", @@ -2498,6 +2501,7 @@ "Deposit": "Depositare", "Disburse": "Sborsare", "Disburse to Savings": "Versare al risparmio", + "Edit Repayment Schedule": "Modifica il piano di rimborso", "Foreclosure": "Pignoramento", "Frequent Postings": "Pubblicazioni frequenti", "Frequently Accessed": "Accesso frequente", diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index c71b46170..9a59ea341 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -741,7 +741,9 @@ "Check loan repayment due": "대출 상환 기한 확인", "Transfer to Savings": "저축으로 이체", "Zero interest after charge-off": "대손충당 후 이자 없음", - "Accelerate maturity to charge-off date": "만기일을 대금상환일로 앞당기세요" + "Accelerate maturity to charge-off date": "만기일을 대금상환일로 앞당기세요", + "Full Leap Year": "전체 윤년", + "Feb 29 Period Only": "2월 29일 기간만" }, "commons": { "50 characters long": "50자(영문 기준)", @@ -1459,6 +1461,7 @@ "Days From": "일수:", "Days Till": "남은 일수", "Days in Year": "연간 일수", + "Days in year custom strategy": "연간 맞춤형 전략", "Days in month": "월별 일수", "Days in year": "연간 일수", "Days to Dormancy": "휴면까지의 일수", @@ -2499,6 +2502,7 @@ "Deposit": "보증금", "Disburse": "지불", "Disburse to Savings": "저축으로 지출", + "Edit Repayment Schedule": "상환 일정 편집", "Foreclosure": "유질", "Frequent Postings": "자주 게시되는 게시물", "Frequently Accessed": "자주 액세스됨", diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index 4b03f9ed9..b70d9dc43 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Patikrinkite paskolos grąžinimo terminą", "Transfer to Savings": "Perkėlimas į santaupas", "Zero interest after charge-off": "Nulinės palūkanos po apmokestinimo", - "Accelerate maturity to charge-off date": "Paspartinkite terminą iki nurašymo datos" + "Accelerate maturity to charge-off date": "Paspartinkite terminą iki nurašymo datos", + "Full Leap Year": "Visi keliamieji metai", + "Feb 29 Period Only": "Tik vasario 29 d" }, "commons": { "50 characters long": "50 simbolių ilgio", @@ -1458,6 +1460,7 @@ "Days From": "Dienos nuo", "Days Till": "Dienos Iki", "Days in Year": "Dienos per metus", + "Days in year custom strategy": "Dienų per metus pritaikyta strategija", "Days in month": "Dienos per mėnesį", "Days in year": "Dienos metuose", "Days to Dormancy": "Dienos iki ramybės", @@ -2498,6 +2501,7 @@ "Deposit": "Užstatas", "Disburse": "Išmokėti", "Disburse to Savings": "Išmokėkite santaupoms", + "Edit Repayment Schedule": "Redaguoti grąžinimo grafiką", "Foreclosure": "Uždarymas", "Frequent Postings": "Dažni skelbimai", "Frequently Accessed": "Dažnai prieinama", diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index 781c97e24..52d0374eb 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Pārbaudiet aizdevuma atmaksas termiņu", "Transfer to Savings": "Pārskaitījums uz uzkrājumiem", "Zero interest after charge-off": "Nulle procenti pēc atskaitīšanas", - "Accelerate maturity to charge-off date": "Paātriniet dzēšanas termiņu līdz izņemšanas datumam" + "Accelerate maturity to charge-off date": "Paātriniet dzēšanas termiņu līdz izņemšanas datumam", + "Full Leap Year": "Pilns lēciens gads", + "Feb 29 Period Only": "Tikai 29. februāris" }, "commons": { "50 characters long": "50 rakstzīmes garš", @@ -1458,6 +1460,7 @@ "Days From": "Dienas No", "Days Till": "Dienas Līdz", "Days in Year": "Dienas gadā", + "Days in year custom strategy": "Dienu gadā pielāgotā stratēģija", "Days in month": "Dienas mēnesī", "Days in year": "Dienas gadā", "Days to Dormancy": "Dienas līdz miegainībai", @@ -2498,6 +2501,7 @@ "Deposit": "Depozīts", "Disburse": "Izmaksāt", "Disburse to Savings": "Izmaksa uzkrājumiem", + "Edit Repayment Schedule": "Rediģēt atmaksas grafiku", "Foreclosure": "Preces ierobežošana", "Frequent Postings": "Bieža publicēšana", "Frequently Accessed": "Bieži piekļūts", diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index 87393de61..68fc167df 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -741,7 +741,9 @@ "Check loan repayment due": "ऋण तिर्न बाँकी जाँच गर्नुहोस्", "Transfer to Savings": "बचतमा स्थानान्तरण गर्नुहोस्", "Zero interest after charge-off": "चार्ज अफ पछि शून्य ब्याज", - "Accelerate maturity to charge-off date": "चार्ज अफ मितिमा परिपक्वतालाई गति दिनुहोस्" + "Accelerate maturity to charge-off date": "चार्ज अफ मितिमा परिपक्वतालाई गति दिनुहोस्", + "Full Leap Year": "पूर्ण छलांग वर्ष", + "Feb 29 Period Only": "फेब्रुअरी 29 अवधि मात्र" }, "commons": { "50 characters long": "५० वर्ण लामो", @@ -1458,6 +1460,7 @@ "Days From": "दिनहरू देखि", "Days Till": "दिन सम्म", "Days in Year": "वर्षमा दिनहरू", + "Days in year custom strategy": "वर्ष अनुकूलन रणनीति मा दिन", "Days in month": "महिनामा दिनहरू", "Days in year": "वर्षमा दिनहरू", "Days to Dormancy": "सुप्तावस्थाका दिनहरू", @@ -2498,6 +2501,7 @@ "Deposit": "जम्मा", "Disburse": "वितरण गर्नुहोस्", "Disburse to Savings": "बचतमा वितरण गर्नुहोस्", + "Edit Repayment Schedule": "पुन: भुक्तानी तालिका सम्पादन गर्नुहोस्", "Foreclosure": "फोरक्लोजर", "Frequent Postings": "बारम्बार पोस्टिंगहरू", "Frequently Accessed": "बारम्बार पहुँच", diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index 788ddbb8e..d9e239d85 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Verifique o vencimento do empréstimo", "Transfer to Savings": "Transferência para Poupança", "Zero interest after charge-off": "Juros zero após baixa", - "Accelerate maturity to charge-off date": "Acelerar o vencimento até à data de baixa" + "Accelerate maturity to charge-off date": "Acelerar o vencimento até à data de baixa", + "Full Leap Year": "Ano bissexto completo", + "Feb 29 Period Only": "Somente período de 29 de fevereiro" }, "commons": { "50 characters long": "50 caracteres", @@ -1458,6 +1460,7 @@ "Days From": "Dias a partir de", "Days Till": "Dias até", "Days in Year": "Dias no ano", + "Days in year custom strategy": "Estratégia personalizada para dias do ano", "Days in month": "Dias no mês", "Days in year": "Dias no ano", "Days to Dormancy": "Dias para Dormência", @@ -2498,6 +2501,7 @@ "Deposit": "Depósito", "Disburse": "Desembolsar", "Disburse to Savings": "Desembolsar para poupança", + "Edit Repayment Schedule": "Editar cronograma de reembolso", "Foreclosure": "Execução hipotecária", "Frequent Postings": "Postagens frequentes", "Frequently Accessed": "Acessado com frequência", diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index 9a4badcd4..a5255bf64 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -741,7 +741,9 @@ "Check loan repayment due": "Angalia ulipaji wa mkopo unaodaiwa", "Transfer to Savings": "Hamisha kwa Akiba", "Zero interest after charge-off": "Riba sifuri baada ya kutozwa", - "Accelerate maturity to charge-off date": "Kuharakisha ukomavu hadi tarehe ya kukomesha malipo" + "Accelerate maturity to charge-off date": "Kuharakisha ukomavu hadi tarehe ya kukomesha malipo", + "Full Leap Year": "Mwaka Kamili wa Kurukaruka", + "Feb 29 Period Only": "Feb 29 Kipindi Pekee" }, "commons": { "50 characters long": "Urefu wa herufi 50", @@ -1458,6 +1460,7 @@ "Days From": "Siku Kutoka", "Days Till": "Siku Hadi", "Days in Year": "Siku katika Mwaka", + "Days in year custom strategy": "Mkakati maalum wa siku kwa mwaka", "Days in month": "Siku katika mwezi", "Days in year": "Siku katika mwaka", "Days to Dormancy": "Siku za kulala", @@ -2498,6 +2501,7 @@ "Deposit": "Amana", "Disburse": "Lipa", "Disburse to Savings": "Lipa kwa Akiba", + "Edit Repayment Schedule": "Badilisha Ratiba ya Ulipaji", "Foreclosure": "Foreclosure", "Frequent Postings": "Machapisho ya Mara kwa Mara", "Frequently Accessed": "Zinazofikiwa mara kwa mara", diff --git a/src/environments/.env.ts b/src/environments/.env.ts index 22be9dd17..f59521fda 100644 --- a/src/environments/.env.ts +++ b/src/environments/.env.ts @@ -2,8 +2,8 @@ /* tslint:disable */ export default { 'mifos_x': { - 'version': '250226', - 'hash': 'ea15eecf' + 'version': '250320', + 'hash': 'ea493973' }, 'allow_switching_backend_instance': true };