Skip to content

Commit f1b4ec2

Browse files
authored
Merge pull request #2835 from alberto-art3ch/WEB-446/validation-of-re-age-amount-during-submission_02
WEB-446: Optional transaction amount on re-age submission
2 parents 8253970 + af20184 commit f1b4ec2

File tree

4 files changed

+37
-27
lines changed

4 files changed

+37
-27
lines changed

src/app/loans/loans-view/loan-account-actions/loan-reaging/loan-reaging.component.html

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,6 @@
33
<form [formGroup]="reagingLoanForm" (ngSubmit)="submit()" *ngIf="loanTransactionData !== null">
44
<mat-card-content>
55
<div class="layout-column">
6-
<mifosx-input-amount
7-
[currency]="loanTransactionData.currency"
8-
[isRequired]="false"
9-
[inputFormControl]="reagingLoanForm.controls.transactionAmount"
10-
[inputLabel]="'Transaction Amount'"
11-
[minVal]="0.01"
12-
[maxVal]="loanTransactionData.amount"
13-
>
14-
</mifosx-input-amount>
15-
166
<mat-form-field>
177
<mat-label>{{ 'labels.inputs.Number of Installments' | translate }}</mat-label>
188
<input type="number" matInput required formControlName="numberOfInstallments" />
@@ -80,6 +70,30 @@
8070
<mat-label>{{ 'labels.inputs.Note' | translate }}</mat-label>
8171
<input matInput formControlName="note" />
8272
</mat-form-field>
73+
74+
<div class="flex-fill">
75+
<span
76+
class="expandcollapsebutton m-l-10 m-t-5 m-b-5 flex-75"
77+
(click)="addTransactionAmount = !addTransactionAmount"
78+
>
79+
<mat-slide-toggle>
80+
<div>
81+
<span class="m-l-10">{{ 'labels.inputs.Transaction Amount' | translate }}</span>
82+
</div>
83+
</mat-slide-toggle>
84+
</span>
85+
</div>
86+
87+
<mifosx-input-amount
88+
*ngIf="addTransactionAmount"
89+
[currency]="loanTransactionData.currency"
90+
[isRequired]="false"
91+
[inputFormControl]="reagingLoanForm.controls.transactionAmount"
92+
[inputLabel]="'Transaction Amount'"
93+
[minVal]="0.01"
94+
[maxVal]="loanTransactionData.amount"
95+
>
96+
</mifosx-input-amount>
8397
</div>
8498

8599
<mat-card-actions class="layout-row align-center gap-5px responsive-column">

src/app/loans/loans-view/loan-account-actions/loan-reaging/loan-reaging.component.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
1111
import { ReAgePreviewDialogComponent } from './re-age-preview-dialog/re-age-preview-dialog.component';
1212
import { InputAmountComponent } from 'app/shared/input-amount/input-amount.component';
1313
import { LoanTransactionTemplate } from 'app/loans/models/loan-transaction-type.model';
14+
import { MatSlideToggle } from '@angular/material/slide-toggle';
1415

1516
@Component({
1617
selector: 'mifosx-loan-reaging',
1718
templateUrl: './loan-reaging.component.html',
1819
styleUrls: ['./loan-reaging.component.scss'],
1920
imports: [
2021
...STANDALONE_SHARED_IMPORTS,
21-
InputAmountComponent
22+
InputAmountComponent,
23+
MatSlideToggle
2224
]
2325
})
2426
export class LoanReagingComponent implements OnInit {
@@ -38,6 +40,7 @@ export class LoanReagingComponent implements OnInit {
3840
maxDate = new Date();
3941

4042
loanTransactionData: LoanTransactionTemplate | null = null;
43+
addTransactionAmount = false;
4144

4245
constructor(
4346
private formBuilder: UntypedFormBuilder,
@@ -84,7 +87,7 @@ export class LoanReagingComponent implements OnInit {
8487
this.reAgeInterestHandlingOptions[0]
8588
],
8689
transactionAmount: [
87-
this.loanTransactionData.amount,
90+
,
8891
[Validators.max(this.loanTransactionData.amount)]
8992
],
9093
note: '',
@@ -143,10 +146,10 @@ export class LoanReagingComponent implements OnInit {
143146
}
144147

145148
submit(): void {
146-
if (this.reagingLoanForm.invalid) {
147-
return;
148-
}
149149
const data = this.prepareReagingData();
150+
if (data['transactionAmount'] === null) {
151+
delete data['transactionAmount'];
152+
}
150153
this.loanService.submitLoanActionButton(this.loanId, data, 'reAge').subscribe({
151154
next: (response: any) => {
152155
this.router.navigate(['../../transactions'], { relativeTo: this.route });
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<h1 mat-dialog-title>{{ 'labels.heading.Repayment Schedule Preview' | translate }}</h1>
1+
<h1 class="m-l-30">{{ 'labels.heading.Repayment Schedule Preview' | translate }}</h1>
22

33
<mat-dialog-content class="mat-typography">
44
<mifosx-repayment-schedule-tab
@@ -9,8 +9,8 @@ <h1 mat-dialog-title>{{ 'labels.heading.Repayment Schedule Preview' | translate
99
</mifosx-repayment-schedule-tab>
1010
</mat-dialog-content>
1111

12-
<mat-dialog-actions align="end">
13-
<button mat-raised-button type="button" (click)="close()">
14-
{{ 'labels.buttons.Go back' | translate }}
12+
<mat-dialog-actions align="center">
13+
<button mat-raised-button color="primary" type="button" (click)="close()">
14+
{{ 'labels.buttons.Back' | translate }}
1515
</button>
1616
</mat-dialog-actions>

src/app/loans/loans-view/loan-account-actions/loan-reaging/re-age-preview-dialog/re-age-preview-dialog.component.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
import { Component, Inject } from '@angular/core';
2-
import {
3-
MAT_DIALOG_DATA,
4-
MatDialogRef,
5-
MatDialogTitle,
6-
MatDialogContent,
7-
MatDialogActions
8-
} from '@angular/material/dialog';
2+
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogContent, MatDialogActions } from '@angular/material/dialog';
93
import { MatButton } from '@angular/material/button';
104
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
115
import { RepaymentSchedule } from 'app/loans/models/loan-account.model';
@@ -22,7 +16,6 @@ export interface ReAgePreviewDialogData {
2216
styleUrls: ['./re-age-preview-dialog.component.scss'],
2317
imports: [
2418
...STANDALONE_SHARED_IMPORTS,
25-
MatDialogTitle,
2619
MatDialogContent,
2720
MatDialogActions,
2821
MatButton,

0 commit comments

Comments
 (0)