+
+
+
{{ 'labels.inputs.Number of Installments' | translate }}
diff --git a/src/app/loans/loans-view/loan-account-actions/loan-reaging/loan-reaging.component.ts b/src/app/loans/loans-view/loan-account-actions/loan-reaging/loan-reaging.component.ts
index 24400c706..feec42f4b 100644
--- a/src/app/loans/loans-view/loan-account-actions/loan-reaging/loan-reaging.component.ts
+++ b/src/app/loans/loans-view/loan-account-actions/loan-reaging/loan-reaging.component.ts
@@ -9,13 +9,16 @@ import { SettingsService } from 'app/settings/settings.service';
import { OptionData } from 'app/shared/models/option-data.model';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { ReAgePreviewDialogComponent } from './re-age-preview-dialog/re-age-preview-dialog.component';
+import { InputAmountComponent } from 'app/shared/input-amount/input-amount.component';
+import { LoanTransactionTemplate } from 'app/loans/models/loan-transaction-type.model';
@Component({
selector: 'mifosx-loan-reaging',
templateUrl: './loan-reaging.component.html',
styleUrls: ['./loan-reaging.component.scss'],
imports: [
- ...STANDALONE_SHARED_IMPORTS
+ ...STANDALONE_SHARED_IMPORTS,
+ InputAmountComponent
]
})
export class LoanReagingComponent implements OnInit {
@@ -34,7 +37,7 @@ export class LoanReagingComponent implements OnInit {
/** Maximum Date allowed. */
maxDate = new Date();
- currencyCode: string = '';
+ loanTransactionData: LoanTransactionTemplate | null = null;
constructor(
private formBuilder: UntypedFormBuilder,
@@ -49,17 +52,13 @@ export class LoanReagingComponent implements OnInit {
}
ngOnInit(): void {
+ this.loanTransactionData = this.dataObject;
+
this.maxDate = this.settingsService.maxFutureDate;
this.reAgeReasonOptions = this.dataObject.reAgeReasonOptions;
this.reAgeInterestHandlingOptions = this.dataObject.reAgeInterestHandlingOptions;
this.periodFrequencyOptions = this.dataObject.periodFrequencyOptions;
-
- const loanDetailsData = this.route.parent?.parent?.snapshot.data['loanDetailsData'];
- if (loanDetailsData?.currency?.code) {
- this.currencyCode = loanDetailsData.currency.code;
- }
-
this.createReagingLoanForm();
}
@@ -84,6 +83,10 @@ export class LoanReagingComponent implements OnInit {
reAgeInterestHandling: [
this.reAgeInterestHandlingOptions[0]
],
+ transactionAmount: [
+ this.loanTransactionData.amount,
+ [Validators.max(this.loanTransactionData.amount)]
+ ],
note: '',
externalId: '',
reasonCodeValueId: null
@@ -116,7 +119,7 @@ export class LoanReagingComponent implements OnInit {
this.loanService.getReAgePreview(this.loanId, data).subscribe({
next: (response: RepaymentSchedule) => {
- const currencyCode = response.currency?.code || this.currencyCode;
+ const currencyCode = response.currency?.code || this.loanTransactionData.currency.code;
if (!currencyCode) {
console.error('Currency code is not available in API response or loan details');
diff --git a/src/app/loans/models/loan-transaction-type.model.ts b/src/app/loans/models/loan-transaction-type.model.ts
index a72e3ccac..c656aa639 100644
--- a/src/app/loans/models/loan-transaction-type.model.ts
+++ b/src/app/loans/models/loan-transaction-type.model.ts
@@ -1,3 +1,6 @@
+import { CodeValue, Currency } from 'app/shared/models/general.model';
+import { OptionData } from 'app/shared/models/option-data.model';
+
export interface LoanTransactionType {
id: number;
code: string;
@@ -41,3 +44,17 @@ export interface LoanTransactionType {
buyDownFeeAdjustment: boolean;
buyDownFeeAmortizationAdjustment: boolean;
}
+
+export interface LoanTransactionTemplate {
+ loanId: number;
+ externalLoanId: string;
+ type: LoanTransactionType;
+ date: number[];
+ currency: Currency;
+ amount: number;
+ netDisbursalAmount: number;
+ manuallyReversed: boolean;
+ reAgeReasonOptions: CodeValue[];
+ periodFrequencyOptions: string[];
+ reAgeInterestHandlingOptions: OptionData[];
+}
diff --git a/src/app/shared/input-amount/input-amount.component.html b/src/app/shared/input-amount/input-amount.component.html
index 7e7976002..d379c0b30 100644
--- a/src/app/shared/input-amount/input-amount.component.html
+++ b/src/app/shared/input-amount/input-amount.component.html
@@ -20,6 +20,12 @@
{{
inputFormControl.value | currency: currency.code : currency.displaySymbol : '1.2-2'
}}
+
+ {{ 'labels.inputs.Amount' | translate }} {{ 'labels.commons.Must be at least' | translate }} {{ minVal }}
+
+
+ {{ 'labels.inputs.Amount' | translate }} {{ 'labels.commons.Must be less or equal to' | translate }} {{ maxVal }}
+
{{ 'labels.inputs.' + inputLabel | translate }}
@@ -37,4 +43,10 @@
{{
inputFormControl.value | currency: currency.code : currency.displaySymbol : '1.2-2'
}}
+
+ {{ 'labels.inputs.Amount' | translate }} {{ 'labels.commons.Must be at least' | translate }} {{ minVal }}
+
+
+ {{ 'labels.inputs.Amount' | translate }} {{ 'labels.commons.Must be less or equal to' | translate }} {{ maxVal }}
+
diff --git a/src/app/shared/input-amount/input-amount.component.ts b/src/app/shared/input-amount/input-amount.component.ts
index 3a4eb6881..2dca7613c 100644
--- a/src/app/shared/input-amount/input-amount.component.ts
+++ b/src/app/shared/input-amount/input-amount.component.ts
@@ -1,8 +1,8 @@
import { Component, Input } from '@angular/core';
import { Currency } from '../models/general.model';
-import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
-import { NgIf, CurrencyPipe } from '@angular/common';
-import { MatFormField, MatLabel, MatError, MatHint, MatSuffix } from '@angular/material/form-field';
+import { UntypedFormControl } from '@angular/forms';
+import { CurrencyPipe } from '@angular/common';
+import { MatHint } from '@angular/material/form-field';
import { FormatAmountDirective } from '../../directives/format-amount.directive';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
@@ -22,6 +22,8 @@ export class InputAmountComponent {
@Input() currency: Currency;
@Input() inputLabel: string;
@Input() inputFormControl: UntypedFormControl;
+ @Input() minVal: number;
+ @Input() maxVal: number;
displayHint = false;
@@ -39,12 +41,4 @@ export class InputAmountComponent {
}
return true;
}
-
- inputBlur(): void {
- this.displayHint = false;
- }
-
- inputFocus(): void {
- this.displayHint = true;
- }
}
diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json
index de029aa21..12404af48 100644
--- a/src/assets/translations/cs-CS.json
+++ b/src/assets/translations/cs-CS.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "požadováno a nemůže být záporné",
"should": "by měl",
"on": "na",
- "Password validation": "Heslo by mělo obsahovat minimálně {{minchar}} znaků, které by měly obsahovat 1 velké písmeno, malé písmeno a speciální znak a nemělo by se skládat z opakujících se znaků nebo mezer."
+ "Password validation": "Heslo by mělo obsahovat minimálně {{minchar}} znaků, které by měly obsahovat 1 velké písmeno, malé písmeno a speciální znak a nemělo by se skládat z opakujících se znaků nebo mezer.",
+ "Must be at least": "Musí být alespoň",
+ "Must be less or equal to": "Musí být menší nebo rovno"
},
"heading": {
"Account Linked Financial": "Seznam účtů spojených s různými finančními aktivitami. Chcete-li vědět více, klikněte:",
diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json
index 3b6068a50..993c88b8d 100644
--- a/src/assets/translations/de-DE.json
+++ b/src/assets/translations/de-DE.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "erforderlich und darf nicht negativ sein",
"should": "sollen",
"on": "An",
- "Password validation": "Das Passwort sollte mindestens {{michar}} Zeichen enthalten, aus 1 Großbuchstaben, Kleinbuchstaben und Sonderzeichen bestehen und darf nicht aus wiederholten Zeichen oder Leerzeichen bestehen"
+ "Password validation": "Das Passwort sollte mindestens {{michar}} Zeichen enthalten, aus 1 Großbuchstaben, Kleinbuchstaben und Sonderzeichen bestehen und darf nicht aus wiederholten Zeichen oder Leerzeichen bestehen",
+ "Must be at least": "Muss mindestens",
+ "Must be less or equal to": "Muss kleiner oder gleich sein"
},
"heading": {
"Account Linked Financial": "Liste der Konten, die mit verschiedenen Finanzaktivitäten verknüpft sind. Um mehr zu erfahren, klicken Sie:",
diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json
index e7d7183b7..e4707e146 100644
--- a/src/assets/translations/en-US.json
+++ b/src/assets/translations/en-US.json
@@ -807,7 +807,9 @@
"required and cannot be negative": "required and cannot be negative",
"should": "should",
"on": "on",
- "Password validation": "The password should contain a minimum of {{minchar}} characters, including 1 uppercase, 1 lowercase and a special character and should not include repeated characters or spaces."
+ "Password validation": "The password should contain a minimum of {{minchar}} characters, including 1 uppercase, 1 lowercase and a special character and should not include repeated characters or spaces.",
+ "Must be at least": "Must be at least",
+ "Must be less or equal to": "Must be less or equal to"
},
"heading": {
"Account Linked Financial": "List of accounts linked to different financial activities. To know more click:",
diff --git a/src/assets/translations/es-CL.json b/src/assets/translations/es-CL.json
index 0fe05fd0b..9c5677f2e 100644
--- a/src/assets/translations/es-CL.json
+++ b/src/assets/translations/es-CL.json
@@ -802,7 +802,9 @@
"required and cannot be negative": "requerido y no puede ser negativo",
"should": "debería",
"on": "en",
- "Password validation": "La contraseña debe contener un mínimo de {{minchar}} caracteres, que deben incluir 1 carácter mayúscula, minúscula y especial y no debe constar de caracteres repetidos ni espacios en blanco."
+ "Password validation": "La contraseña debe contener un mínimo de {{minchar}} caracteres, que deben incluir 1 carácter mayúscula, minúscula y especial y no debe constar de caracteres repetidos ni espacios en blanco.",
+ "Must be at least": "Debe ser al menos",
+ "Must be less or equal to": "Debe ser menor o igual a"
},
"heading": {
"Account Linked Financial": "Listado de cuentas vinculadas a diferentes actividades financieras. Para saber más haga clic en:",
diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json
index 39552ee3b..bd52a1b08 100644
--- a/src/assets/translations/es-MX.json
+++ b/src/assets/translations/es-MX.json
@@ -802,7 +802,9 @@
"required and cannot be negative": "requerido y no puede ser negativo",
"should": "debería",
"on": "en",
- "Password validation": "La contraseña debe contener un mínimo de {{minchar}} caracteres, que deben incluir 1 carácter mayúscula, minúscula y especial y no debe constar de caracteres repetidos ni espacios en blanco."
+ "Password validation": "La contraseña debe contener un mínimo de {{minchar}} caracteres, que deben incluir 1 carácter mayúscula, minúscula y especial y no debe constar de caracteres repetidos ni espacios en blanco.",
+ "Must be at least": "Debe ser al menos",
+ "Must be less or equal to": "Debe ser menor o igual a"
},
"heading": {
"Account Linked Financial": "Listado de cuentas vinculadas a diferentes actividades financieras. Para saber más haga clic en:",
diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json
index 50f8fe418..3be4a0118 100644
--- a/src/assets/translations/fr-FR.json
+++ b/src/assets/translations/fr-FR.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "obligatoire et ne peut pas être négatif",
"should": "devrait",
"on": "sur",
- "Password validation": "Le mot de passe doit contenir au minimum {{minchar}} caractères, dont 1 majuscule, 1 minuscule et un caractère spécial et ne doit pas être composé de caractères répétés ou d'espaces blancs."
+ "Password validation": "Le mot de passe doit contenir au minimum {{minchar}} caractères, dont 1 majuscule, 1 minuscule et un caractère spécial et ne doit pas être composé de caractères répétés ou d'espaces blancs.",
+ "Must be at least": "Doit être au moins",
+ "Must be less or equal to": "Doit être inférieur ou égal à"
},
"heading": {
"Account Linked Financial": "Liste des comptes liés aux différentes activités financières. Pour en savoir plus cliquez :",
diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json
index cc0c4345a..8391d91f7 100644
--- a/src/assets/translations/it-IT.json
+++ b/src/assets/translations/it-IT.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "obbligatorio e non può essere negativo",
"should": "Dovrebbe",
"on": "SU",
- "Password validation": "La password deve contenere almeno {{minchar}} caratteri, di cui 1 carattere maiuscolo, minuscolo e speciale e non deve essere composta da caratteri ripetuti o spazi bianchi"
+ "Password validation": "La password deve contenere almeno {{minchar}} caratteri, di cui 1 carattere maiuscolo, minuscolo e speciale e non deve essere composta da caratteri ripetuti o spazi bianchi",
+ "Must be at least": "Deve essere almeno",
+ "Must be less or equal to": "Deve essere minore o uguale a"
},
"heading": {
"Account Linked Financial": "Elenco dei conti collegati a diverse attività finanziarie. Per saperne di più clicca:",
diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json
index f605bdb68..98ac86902 100644
--- a/src/assets/translations/ko-KO.json
+++ b/src/assets/translations/ko-KO.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "필수이며 음수일 수 없습니다.",
"should": "~해야 한다",
"on": "~에",
- "Password validation": "비밀번호는 최소 자여야 하며 대문자, 소문자 및 특수 문자 1개가 포함되어야 하며 반복되는 문자나 공백으로 구성되어서는 안 됩니다."
+ "Password validation": "비밀번호는 최소 자여야 하며 대문자, 소문자 및 특수 문자 1개가 포함되어야 하며 반복되는 문자나 공백으로 구성되어서는 안 됩니다.",
+ "Must be at least": "최소한이어야 합니다",
+ "Must be less or equal to": "이보다 작거나 같아야 합니다."
},
"heading": {
"Account Linked Financial": "다양한 금융 활동과 연결된 계정 목록입니다. 자세한 내용을 보려면 다음을 클릭하세요.",
diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json
index 60b876426..206002cec 100644
--- a/src/assets/translations/lt-LT.json
+++ b/src/assets/translations/lt-LT.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "privaloma ir negali būti neigiama",
"should": "turėtų",
"on": "įjungta",
- "Password validation": "Slaptažodį turi sudaryti ne mažiau kaip {{minchar}} simbolių, iš kurių turi būti 1 didžioji, mažoji raidė ir specialus simbolis, o jį neturėtų sudaryti pasikartojantys simboliai ar tarpai"
+ "Password validation": "Slaptažodį turi sudaryti ne mažiau kaip {{minchar}} simbolių, iš kurių turi būti 1 didžioji, mažoji raidė ir specialus simbolis, o jį neturėtų sudaryti pasikartojantys simboliai ar tarpai",
+ "Must be at least": "Turi būti bent jau",
+ "Must be less or equal to": "Turi būti mažesnis arba lygus"
},
"heading": {
"Account Linked Financial": "Sąskaitų, susietų su įvairia finansine veikla, sąrašas. Norėdami sužinoti daugiau, spustelėkite:",
diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json
index 7a942f993..6874446c1 100644
--- a/src/assets/translations/lv-LV.json
+++ b/src/assets/translations/lv-LV.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "obligāti un nevar būt negatīvs",
"should": "vajadzētu",
"on": "ieslēgts",
- "Password validation": "Parolē jābūt vismaz {{minchar}} rakstzīmēm, tai jābūt 1 lielajam, mazajam un speciālajām rakstzīmēm, un tā nedrīkst sastāvēt no atkārtotām rakstzīmēm vai atstarpēm."
+ "Password validation": "Parolē jābūt vismaz {{minchar}} rakstzīmēm, tai jābūt 1 lielajam, mazajam un speciālajām rakstzīmēm, un tā nedrīkst sastāvēt no atkārtotām rakstzīmēm vai atstarpēm.",
+ "Must be at least": "Jābūt vismaz",
+ "Must be less or equal to": "Jābūt mazākam vai vienādam ar"
},
"heading": {
"Account Linked Financial": "Ar dažādām finanšu darbībām saistīto kontu saraksts. Lai uzzinātu vairāk, noklikšķiniet:",
diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json
index 4d88bba62..cc1961317 100644
--- a/src/assets/translations/ne-NE.json
+++ b/src/assets/translations/ne-NE.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "आवश्यक छ र नकारात्मक हुन सक्दैन",
"should": "गर्नुपर्छ",
"on": "मा",
- "Password validation": "पासवर्डमा कम्तिमा १२ क्यारेक्टरहरू हुनुपर्छ, जसमा १ अपरकेस, लोअरकेस र स्पेशल क्यारेक्टरहरू हुनुपर्छ र दोहोरिएका क्यारेक्टरहरू वा सेतो-स्पेसहरू समावेश हुनु हुँदैन।"
+ "Password validation": "पासवर्डमा कम्तिमा १२ क्यारेक्टरहरू हुनुपर्छ, जसमा १ अपरकेस, लोअरकेस र स्पेशल क्यारेक्टरहरू हुनुपर्छ र दोहोरिएका क्यारेक्टरहरू वा सेतो-स्पेसहरू समावेश हुनु हुँदैन।",
+ "Must be at least": "कम्तिमा हुनुपर्छ",
+ "Must be less or equal to": "कम वा बराबर हुनुपर्छ"
},
"heading": {
"Account Linked Financial": "विभिन्न वित्तीय गतिविधिहरु संग जोडिएको खाताहरु को सूची। थप जान्नको लागि क्लिक गर्नुहोस्:",
diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json
index 6cc8b7fa5..96a093ad1 100644
--- a/src/assets/translations/pt-PT.json
+++ b/src/assets/translations/pt-PT.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "obrigatório e não pode ser negativo",
"should": "deve",
"on": "sobre",
- "Password validation": "A senha deve conter no mínimo {{minchar}} caracteres, que deve conter 1 letra maiúscula, minúscula e caractere especial e não deve consistir em caracteres repetidos ou espaços em branco"
+ "Password validation": "A senha deve conter no mínimo {{minchar}} caracteres, que deve conter 1 letra maiúscula, minúscula e caractere especial e não deve consistir em caracteres repetidos ou espaços em branco",
+ "Must be at least": "Deve ser pelo menos",
+ "Must be less or equal to": "Deve ser menor ou igual a"
},
"heading": {
"Account Linked Financial": "Lista de contas vinculadas a diferentes atividades financeiras. Para saber mais clique:",
diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json
index bf135fa54..16924d671 100644
--- a/src/assets/translations/sw-SW.json
+++ b/src/assets/translations/sw-SW.json
@@ -803,7 +803,9 @@
"required and cannot be negative": "inahitajika na haiwezi kuwa hasi",
"should": "lazima",
"on": "juu",
- "Password validation": "Nenosiri lazima liwe na herufi {{minchar}}, ambazo zinafaa kuingiza herufi 1 kubwa, ndogo na maalum na haipaswi kuwa na herufi zinazorudiwa au nafasi nyeupe."
+ "Password validation": "Nenosiri lazima liwe na herufi {{minchar}}, ambazo zinafaa kuingiza herufi 1 kubwa, ndogo na maalum na haipaswi kuwa na herufi zinazorudiwa au nafasi nyeupe.",
+ "Must be at least": "Lazima iwe angalau",
+ "Must be less or equal to": "Lazima iwe chini au sawa na"
},
"heading": {
"Account Linked Financial": "Orodha ya akaunti zilizounganishwa na shughuli tofauti za kifedha. Kujua zaidi bofya:",