/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { MatTableDataSource, MatTable } from '@angular/material'; import { ActivatedRoute } from '@angular/router'; /** Custom Services */ import { LoansService } from 'app/loans/loans.service'; /** * Loans Standing Instructions Tab */ @Component({ selector: 'mifosx-standing-instructions-tab', templateUrl: './standing-instructions-tab.component.html', styleUrls: ['./standing-instructions-tab.component.scss'] }) export class StandingInstructionsTabComponent implements OnInit { /** Loans Data */ loanDetailsData: any; /** Instructions Data */ instructionsData: any[]; /** Data source for instructions table. */ dataSource = new MatTableDataSource(); /** Columns to be displayed in instructions table. */ displayedColumns: string[] = ['client', 'fromAccount', 'beneficiary', 'toAccount', 'amount', 'validity', 'actions']; /** Instruction Table Reference */ @ViewChild('instructionsTable') instructionTableRef: MatTable; /** * Retrieves Loans Account Data from `resolve`. * @param {ActivatedRoute} route Activated Route. */ constructor(private route: ActivatedRoute, private loansService: LoansService) { this.route.parent.data.subscribe((data: { loanDetailsData: any }) => { this.loanDetailsData = data.loanDetailsData; }); } ngOnInit() { this.getStandingInstructions(); } /** * Retrieves standing instructions and initializes instructions table. */ getStandingInstructions() { const clientId = this.loanDetailsData.clientId; const clientName = this.loanDetailsData.clientName; const accountId = this.loanDetailsData.id; const locale = 'en'; const dateFormat = 'dd MMMM yyyy'; this.loansService.getStandingInstructions(clientId, clientName, accountId, locale, dateFormat).subscribe((response: any) => { this.instructionsData = response.pageItems; this.dataSource.data = this.instructionsData; this.instructionTableRef.renderRows(); }); } }