From 2cb554ea0032800e374565ad2e88d072c7a57f91 Mon Sep 17 00:00:00 2001 From: JaySoni1 Date: Mon, 9 Feb 2026 07:07:31 +0530 Subject: [PATCH] WEB-680 Fix: Provisioning Criteria dialog allows negative values in age, percentage fields --- .../create-loan-provisioning-criteria.component.ts | 3 +++ .../edit-loan-provisioning-criteria.component.ts | 3 +++ src/app/shared/form-dialog/form-group.service.ts | 6 ++++++ .../shared/form-dialog/formfield/formfield.component.html | 2 ++ 4 files changed, 14 insertions(+) diff --git a/src/app/organization/loan-provisioning-criteria/create-loan-provisioning-criteria/create-loan-provisioning-criteria.component.ts b/src/app/organization/loan-provisioning-criteria/create-loan-provisioning-criteria/create-loan-provisioning-criteria.component.ts index e4a1618f4..db80ce3eb 100644 --- a/src/app/organization/loan-provisioning-criteria/create-loan-provisioning-criteria/create-loan-provisioning-criteria.component.ts +++ b/src/app/organization/loan-provisioning-criteria/create-loan-provisioning-criteria/create-loan-provisioning-criteria.component.ts @@ -187,6 +187,7 @@ export class CreateLoanProvisioningCriteriaComponent implements OnInit { value: definition ? definition.minAge : '', type: 'number', required: true, + min: 0, order: 1 }) ); @@ -197,6 +198,7 @@ export class CreateLoanProvisioningCriteriaComponent implements OnInit { value: definition ? definition.maxAge : '', type: 'number', required: true, + min: 0, order: 2 }) ); @@ -207,6 +209,7 @@ export class CreateLoanProvisioningCriteriaComponent implements OnInit { value: definition ? definition.provisioningPercentage : '', type: 'number', required: true, + min: 0, order: 3 }) ); diff --git a/src/app/organization/loan-provisioning-criteria/edit-loan-provisioning-criteria/edit-loan-provisioning-criteria.component.ts b/src/app/organization/loan-provisioning-criteria/edit-loan-provisioning-criteria/edit-loan-provisioning-criteria.component.ts index 5920d8f5e..b2541cc74 100644 --- a/src/app/organization/loan-provisioning-criteria/edit-loan-provisioning-criteria/edit-loan-provisioning-criteria.component.ts +++ b/src/app/organization/loan-provisioning-criteria/edit-loan-provisioning-criteria/edit-loan-provisioning-criteria.component.ts @@ -195,6 +195,7 @@ export class EditLoanProvisioningCriteriaComponent implements OnInit { value: definition ? definition.minAge : '', type: 'number', required: true, + min: 0, order: 1 }) ); @@ -205,6 +206,7 @@ export class EditLoanProvisioningCriteriaComponent implements OnInit { value: definition ? definition.maxAge : '', type: 'number', required: true, + min: 0, order: 2 }) ); @@ -215,6 +217,7 @@ export class EditLoanProvisioningCriteriaComponent implements OnInit { value: definition ? definition.provisioningPercentage : '', type: 'number', required: true, + min: 0, order: 3 }) ); diff --git a/src/app/shared/form-dialog/form-group.service.ts b/src/app/shared/form-dialog/form-group.service.ts index 8404315d0..8fd4cb60b 100644 --- a/src/app/shared/form-dialog/form-group.service.ts +++ b/src/app/shared/form-dialog/form-group.service.ts @@ -34,6 +34,12 @@ export class FormGroupService { if (formfield.required) { validators.push(Validators.required); } + if (formfield.min !== null && formfield.min !== undefined) { + validators.push(Validators.min(formfield.min)); + } + if (formfield.max !== null && formfield.max !== undefined) { + validators.push(Validators.max(formfield.max)); + } if (formfield.validators) { formfield.validators.forEach((validator: ValidatorFn) => validators.push(validator)); } diff --git a/src/app/shared/form-dialog/formfield/formfield.component.html b/src/app/shared/form-dialog/formfield/formfield.component.html index 553a8ad54..ef7acb113 100644 --- a/src/app/shared/form-dialog/formfield/formfield.component.html +++ b/src/app/shared/form-dialog/formfield/formfield.component.html @@ -17,6 +17,8 @@ matInput [formControlName]="formfield.controlName" [required]="formfield.required" + [attr.min]="formfield.min" + [attr.max]="formfield.max" /> } @if (form.controls[formfield.controlName].hasError('max')) {