Feature: Added feature to click a name in receive payment to fill in the amount in that column

This commit is contained in:
Amritanshu Agrawal 2021-03-26 07:20:51 +05:30
parent 095f4fe473
commit 47381527c2
3 changed files with 14 additions and 6 deletions

View File

@ -1,14 +1,14 @@
import { DataSource } from '@angular/cdk/collections';
import { Observable, of as observableOf } from 'rxjs';
import { SettleOption } from '../../core/settle-option';
import { ReceivePaymentItem } from '../../core/receive-payment-item';
export class ReceivePaymentDatasource extends DataSource<SettleOption> {
constructor(private data: SettleOption[]) {
export class ReceivePaymentDatasource extends DataSource<ReceivePaymentItem> {
constructor(private data: ReceivePaymentItem[]) {
super();
}
connect(): Observable<SettleOption[]> {
connect(): Observable<ReceivePaymentItem[]> {
return observableOf(this.data);
}

View File

@ -5,7 +5,9 @@
<!-- Name Column -->
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef class="bold">Amount</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.name }}</mat-cell>
<mat-cell *matCellDef="let row; let i = index" (click)="maxAmount(row, i)">{{
row.name
}}</mat-cell>
<mat-footer-cell *matFooterCellDef class="bold">Balance</mat-footer-cell>
</ng-container>

View File

@ -1,5 +1,5 @@
import { Component, ElementRef, Inject, ViewChild } from '@angular/core';
import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { distinctUntilChanged, map, tap } from 'rxjs/operators';
@ -99,4 +99,10 @@ export class ReceivePaymentComponent {
accept(): void {
this.dialogRef.close({ choices: this.choices, reason: this.reason });
}
maxAmount(row: ReceivePaymentItem, index: number) {
const array = this.form.get('amounts') as FormArray;
const ctrl = array.controls[index].get('amount') as FormControl;
ctrl.setValue('' + (row.amount + this.balance));
}
}