Skip to content

Commit 192dd14

Browse files
authored
Revert "WEB-874 Prevent negative values in numeric fields of Group (#3412)"
This reverts commit 547bb91.
1 parent 547bb91 commit 192dd14

4 files changed

Lines changed: 33 additions & 172 deletions

File tree

src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ <h4 class="mat-h4 flex-98">
5555
mifosxPositiveNumber
5656
min="0"
5757
formControlName="repaymentEvery"
58-
min="0"
5958
matTooltip="{{ 'tooltips.Fields are input to calculating the repayment schedule' | translate }}"
6059
/>
6160
@if (loansAccountTermsForm.controls.repaymentEvery.hasError('required')) {
@@ -64,9 +63,6 @@ <h4 class="mat-h4 flex-98">
6463
<strong>{{ 'labels.commons.required' | translate }}</strong>
6564
</mat-error>
6665
}
67-
@if (loansAccountTermsForm.controls.repaymentEvery.hasError('min')) {
68-
<mat-error> {{ 'labels.inputs.Repaid every' | translate }} must be at least <strong>0</strong> </mat-error>
69-
}
7066
</mat-form-field>
7167

7268
<mat-form-field class="flex-23">
@@ -116,16 +112,13 @@ <h4 class="mat-h4 flex-98">
116112
@if (loanProductService.isLoanProduct) {
117113
<mat-form-field class="flex-fill flex-23">
118114
<mat-label>{{ 'labels.inputs.Loan Term' | translate }}</mat-label>
119-
<input type="number" matInput required formControlName="loanTermFrequency" min="0" />
115+
<input type="number" matInput required formControlName="loanTermFrequency" />
120116
@if (loansAccountTermsForm.controls.loanTermFrequency.hasError('required')) {
121117
<mat-error>
122118
{{ 'labels.inputs.Loan Term' | translate }} {{ 'labels.commons.is' | translate }}
123119
<strong>{{ 'labels.commons.required' | translate }}</strong>
124120
</mat-error>
125121
}
126-
@if (loansAccountTermsForm.controls.loanTermFrequency.hasError('min')) {
127-
<mat-error> {{ 'labels.inputs.Loan Term' | translate }} must be at least <strong>0</strong> </mat-error>
128-
}
129122
</mat-form-field>
130123

131124
<mat-form-field class="flex-fill flex-23">
@@ -165,7 +158,6 @@ <h4 class="mat-h4 flex-98">{{ 'labels.inputs.Repayments' | translate }}</h4>
165158
type="number"
166159
matInput
167160
formControlName="numberOfRepayments"
168-
min="0"
169161
matTooltip="{{ 'tooltips.Enter the total count of repayments' | translate }}"
170162
/>
171163
@if (loansAccountTermsForm.controls.numberOfRepayments.hasError('required')) {
@@ -174,11 +166,6 @@ <h4 class="mat-h4 flex-98">{{ 'labels.inputs.Repayments' | translate }}</h4>
174166
<strong>{{ 'labels.commons.required' | translate }}</strong>
175167
</mat-error>
176168
}
177-
@if (loansAccountTermsForm.controls.numberOfRepayments.hasError('min')) {
178-
<mat-error>
179-
{{ 'labels.inputs.Number of repayments' | translate }} must be at least <strong>0</strong>
180-
</mat-error>
181-
}
182169
</mat-form-field>
183170

184171
@if (loansAccountTermsData?.canDefineInstallmentAmount) {
@@ -231,7 +218,6 @@ <h4 class="mat-h4 flex-98">
231218
matInput
232219
required
233220
formControlName="repaymentEvery"
234-
min="0"
235221
matTooltip="{{ 'tooltips.Fields are input to calculating the repayment schedule' | translate }}"
236222
/>
237223
@if (loansAccountTermsForm.controls.repaymentEvery.hasError('required')) {
@@ -240,9 +226,6 @@ <h4 class="mat-h4 flex-98">
240226
<strong>{{ 'labels.commons.required' | translate }}</strong>
241227
</mat-error>
242228
}
243-
@if (loansAccountTermsForm.controls.repaymentEvery.hasError('min')) {
244-
<mat-error> {{ 'labels.inputs.Repaid every' | translate }} must be at least <strong>0</strong> </mat-error>
245-
}
246229
</mat-form-field>
247230

248231
<mat-form-field class="flex-fill flex-23">
@@ -304,12 +287,7 @@ <h4 class="mat-h4 flex-98">{{ 'labels.inputs.Nominal interest rate' | translate
304287
@if (!loansAccountTermsData?.isLoanProductLinkedToFloatingRate) {
305288
<mat-form-field class="flex-fill flex-23">
306289
<mat-label>{{ 'labels.inputs.Nominal interest rate' | translate }} %</mat-label>
307-
<input type="number" matInput formControlName="interestRatePerPeriod" min="0.01" step="0.01" />
308-
@if (loansAccountTermsForm.controls.interestRatePerPeriod.hasError('min')) {
309-
<mat-error>
310-
{{ 'labels.inputs.Nominal interest rate' | translate }} must be at least <strong>0.01</strong>
311-
</mat-error>
312-
}
290+
<input type="number" matInput formControlName="interestRatePerPeriod" />
313291
</mat-form-field>
314292
<mat-form-field class="flex-fill flex-23">
315293
<mat-label>{{ 'labels.inputs.Frequency' | translate }}</mat-label>
@@ -490,30 +468,17 @@ <h4 class="mat-h4 flex-98">{{ 'labels.heading.Interest Calculations' | translate
490468
matInput
491469
type="number"
492470
formControlName="inArrearsTolerance"
493-
min="0"
494471
matTooltip="{{ 'tooltips.With Arrears tolerance' | translate }}"
495472
/>
496-
@if (loansAccountTermsForm.controls.inArrearsTolerance.hasError('min')) {
497-
<mat-error>
498-
{{ 'labels.inputs.Arrears tolerance' | translate }} must be at least <strong>0</strong>
499-
</mat-error>
500-
}
501473
</mat-form-field>
502474

503475
<mat-form-field class="flex-48">
504476
<mat-label>{{ 'labels.inputs.Interest free period' | translate }}</mat-label>
505477
<input
506478
matInput
507-
type="number"
508479
formControlName="graceOnInterestCharged"
509-
min="0"
510480
matTooltip="{{ 'tooltips.If the Interest Free Period' | translate }}"
511481
/>
512-
@if (loansAccountTermsForm.controls.graceOnInterestCharged.hasError('min')) {
513-
<mat-error>
514-
{{ 'labels.inputs.Interest free period' | translate }} must be at least <strong>0</strong>
515-
</mat-error>
516-
}
517482
</mat-form-field>
518483

519484
<h4 class="mat-h4 flex-98">
@@ -523,32 +488,17 @@ <h4 class="mat-h4 flex-98">
523488

524489
<mat-form-field class="flex-fill flex-23">
525490
<mat-label>{{ 'labels.inputs.Grace on principal payment' | translate }}</mat-label>
526-
<input type="number" matInput formControlName="graceOnPrincipalPayment" min="0" />
527-
@if (loansAccountTermsForm.controls.graceOnPrincipalPayment.hasError('min')) {
528-
<mat-error>
529-
{{ 'labels.inputs.Grace on principal payment' | translate }} must be at least <strong>0</strong>
530-
</mat-error>
531-
}
491+
<input type="number" matInput formControlName="graceOnPrincipalPayment" />
532492
</mat-form-field>
533493

534494
<mat-form-field class="flex-fill flex-23">
535495
<mat-label>{{ 'labels.inputs.Grace on interest payment' | translate }}</mat-label>
536-
<input type="number" matInput formControlName="graceOnInterestPayment" min="0" />
537-
@if (loansAccountTermsForm.controls.graceOnInterestPayment.hasError('min')) {
538-
<mat-error>
539-
{{ 'labels.inputs.Grace on interest payment' | translate }} must be at least <strong>0</strong>
540-
</mat-error>
541-
}
496+
<input type="number" matInput formControlName="graceOnInterestPayment" />
542497
</mat-form-field>
543498

544499
<mat-form-field class="flex-48">
545500
<mat-label>{{ 'labels.inputs.On arrears ageing' | translate }}</mat-label>
546-
<input type="number" matInput formControlName="graceOnArrearsAgeing" min="0" />
547-
@if (loansAccountTermsForm.controls.graceOnArrearsAgeing.hasError('min')) {
548-
<mat-error>
549-
{{ 'labels.inputs.On arrears ageing' | translate }} must be at least <strong>0</strong>
550-
</mat-error>
551-
}
501+
<input type="number" matInput formControlName="graceOnArrearsAgeing" />
552502
</mat-form-field>
553503

554504
@if (isDelinquencyEnabled()) {

src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts

Lines changed: 9 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -496,36 +496,6 @@ export class LoansAccountTermsStepComponent extends LoanProductBaseComponent imp
496496
repaymentFrequencyDayOfWeekType.updateValueAndValidity();
497497
});
498498
});
499-
const numericFieldsWithMinZero = [
500-
'graceOnPrincipalPayment',
501-
'graceOnInterestPayment',
502-
'graceOnArrearsAgeing',
503-
'inArrearsTolerance',
504-
'graceOnInterestCharged',
505-
'loanTermFrequency',
506-
'numberOfRepayments',
507-
'repaymentEvery'
508-
];
509-
510-
numericFieldsWithMinZero.forEach((fieldName) => {
511-
const control = this.loansAccountTermsForm.get(fieldName);
512-
if (control) {
513-
control.valueChanges.subscribe((value) => {
514-
if (typeof value === 'number' && value < 0) {
515-
control.setValue(0, { emitEvent: false });
516-
}
517-
});
518-
}
519-
});
520-
521-
const interestRateControl = this.loansAccountTermsForm.get('interestRatePerPeriod');
522-
if (interestRateControl) {
523-
interestRateControl.valueChanges.subscribe((value) => {
524-
if (typeof value === 'number' && value < 0.01) {
525-
interestRateControl.setValue(0.01, { emitEvent: false });
526-
}
527-
});
528-
}
529499
}
530500

531501
/** Custom Listeners for the form to calculate Loan Term */
@@ -599,28 +569,19 @@ export class LoansAccountTermsStepComponent extends LoanProductBaseComponent imp
599569
],
600570
loanTermFrequency: [
601571
{ value: '', disabled: true },
602-
[
603-
Validators.required,
604-
Validators.min(0)
605-
]
572+
Validators.required
606573
],
607574
loanTermFrequencyType: [
608575
'',
609576
Validators.required
610577
],
611578
numberOfRepayments: [
612579
'',
613-
[
614-
Validators.required,
615-
Validators.min(0)
616-
]
580+
Validators.required
617581
],
618582
repaymentEvery: [
619583
'',
620-
[
621-
Validators.required,
622-
Validators.min(0)
623-
]
584+
Validators.required
624585
],
625586
repaymentFrequencyType: [
626587
{ value: '', disabled: true },
@@ -630,10 +591,7 @@ export class LoansAccountTermsStepComponent extends LoanProductBaseComponent imp
630591
repaymentFrequencyDayOfWeekType: [''],
631592
repaymentsStartingFromDate: [''],
632593
interestChargedFromDate: [''],
633-
interestRatePerPeriod: [
634-
'',
635-
Validators.min(0.01)
636-
],
594+
interestRatePerPeriod: [''],
637595
interestType: [''],
638596
isFloatingInterestRate: [null],
639597
isEqualAmortization: [''],
@@ -643,26 +601,11 @@ export class LoansAccountTermsStepComponent extends LoanProductBaseComponent imp
643601
],
644602
interestCalculationPeriodType: [''],
645603
allowPartialPeriodInterestCalculation: [''],
646-
inArrearsTolerance: [
647-
'',
648-
Validators.min(0)
649-
],
650-
graceOnInterestCharged: [
651-
'',
652-
Validators.min(0)
653-
],
654-
graceOnPrincipalPayment: [
655-
'',
656-
Validators.min(0)
657-
],
658-
graceOnInterestPayment: [
659-
'',
660-
Validators.min(0)
661-
],
662-
graceOnArrearsAgeing: [
663-
'',
664-
Validators.min(0)
665-
],
604+
inArrearsTolerance: [''],
605+
graceOnInterestCharged: [''],
606+
graceOnPrincipalPayment: [''],
607+
graceOnInterestPayment: [''],
608+
graceOnArrearsAgeing: [''],
666609
loanIdToClose: [''],
667610
fixedEmiAmount: [''],
668611
isTopup: [''],

src/app/savings/savings-account-stepper/savings-account-terms-step/savings-account-terms-step.component.html

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,11 @@
2020

2121
<mat-form-field class="flex-48">
2222
<mat-label>{{ 'labels.inputs.Nominal Annual Interest' | translate }}</mat-label>
23-
<input type="number" matInput formControlName="nominalAnnualInterestRate" required min="0" step="0.01" />
24-
@if (savingsAccountTermsForm.controls.nominalAnnualInterestRate.hasError('required')) {
25-
<mat-error>
26-
{{ 'labels.inputs.Nominal Annual Interest' | translate }} {{ 'labels.commons.is' | translate }}
27-
<strong>{{ 'labels.commons.required' | translate }}</strong>
28-
</mat-error>
29-
}
30-
@if (savingsAccountTermsForm.controls.nominalAnnualInterestRate.hasError('min')) {
31-
<mat-error> {{ 'labels.inputs.Nominal Annual Interest' | translate }} must be zero or greater </mat-error>
32-
}
23+
<input type="number" matInput formControlName="nominalAnnualInterestRate" required />
24+
<mat-error>
25+
{{ 'labels.inputs.Nominal Annual Interest' | translate }} {{ 'labels.commons.is' | translate }}
26+
<strong>{{ 'labels.commons.required' | translate }}</strong>
27+
</mat-error>
3328
</mat-form-field>
3429

3530
<mat-form-field class="flex-48">
@@ -97,7 +92,7 @@
9792

9893
<mat-form-field class="flex-48">
9994
<mat-label>{{ 'labels.inputs.Minimum Opening Balance' | translate }}</mat-label>
100-
<input type="number" matInput formControlName="minRequiredOpeningBalance" min="0" />
95+
<input type="number" matInput formControlName="minRequiredOpeningBalance" />
10196
</mat-form-field>
10297

10398
<mat-checkbox labelPosition="before" formControlName="withdrawalFeeForTransfers" class="margin-v flex-48">
@@ -108,7 +103,7 @@ <h4 class="mat-h4 flex-98">{{ 'labels.inputs.Lock-in Period' | translate }}</h4>
108103

109104
<mat-form-field class="flex-48">
110105
<mat-label>{{ 'labels.inputs.Frequency' | translate }}</mat-label>
111-
<input type="number" matInput formControlName="lockinPeriodFrequency" min="0" />
106+
<input type="number" matInput formControlName="lockinPeriodFrequency" />
112107
</mat-form-field>
113108

114109
<mat-form-field class="flex-48">
@@ -134,15 +129,15 @@ <h3 class="mat-h3 flex-23">{{ 'labels.inputs.Overdraft' | translate }}</h3>
134129
<div class="flex-fill layout-row-wrap gap-2percent responsive-column">
135130
<mat-form-field class="flex-31">
136131
<mat-label>{{ 'labels.inputs.Minimum Overdraft Required for Interest Calculation' | translate }}</mat-label>
137-
<input type="number" matInput formControlName="minOverdraftForInterestCalculation" min="0" />
132+
<input type="number" matInput formControlName="minOverdraftForInterestCalculation" />
138133
</mat-form-field>
139134
<mat-form-field class="flex-31">
140135
<mat-label>{{ 'labels.inputs.Nominal Annual Interest for Overdraft' | translate }}</mat-label>
141-
<input type="number" matInput formControlName="nominalAnnualInterestRateOverdraft" min="0" />
136+
<input type="number" matInput formControlName="nominalAnnualInterestRateOverdraft" />
142137
</mat-form-field>
143138
<mat-form-field class="flex-31">
144139
<mat-label>{{ 'labels.inputs.Maximum Overdraft Amount Limit' | translate }}</mat-label>
145-
<input type="number" matInput formControlName="overdraftLimit" min="0" />
140+
<input type="number" matInput formControlName="overdraftLimit" />
146141
</mat-form-field>
147142
</div>
148143
}
@@ -155,13 +150,13 @@ <h3 class="mat-h3 flex-23">{{ 'labels.inputs.Overdraft' | translate }}</h3>
155150

156151
<mat-form-field class="flex-48">
157152
<mat-label>{{ 'labels.inputs.Minimum Balance' | translate }}</mat-label>
158-
<input type="number" matInput formControlName="minRequiredBalance" min="0" />
153+
<input type="number" matInput formControlName="minRequiredBalance" />
159154
</mat-form-field>
160155

161156
@if (savingsAccountTermsForm.controls.minBalanceForInterestCalculation.value) {
162157
<mat-form-field class="flex-48">
163158
<mat-label>{{ 'labels.inputs.Balance Required for Interest Calculation' | translate }}</mat-label>
164-
<input type="number" matInput formControlName="minBalanceForInterestCalculation" min="0" />
159+
<input type="number" matInput formControlName="minBalanceForInterestCalculation" />
165160
</mat-form-field>
166161
}
167162
</div>

0 commit comments

Comments
 (0)