/** Angular Imports */ import { Component , OnInit , ViewChild } from '@angular/core' ; import { MatDialog } from '@angular/material/dialog' ; import { MatTableDataSource , MatTable } from '@angular/material/table' ; import { ActivatedRoute } from '@angular/router' ; /** Custom Services */ import { LoansService } from 'app/loans/loans.service' ; import { AccountTransfersService } from 'app/account-transfers/account-transfers.service' ; import { SettingsService } from 'app/settings/settings.service' ; /** Dialog Components */ import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component' ; /**
 * 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' , { static : true } ) instructionTableRef : MatTable < Element > ; param { ActivatedRoute } route param { SettingsService } settingsService constructor ( private route , private loansService , private dialog , private accountTransfersService , private settingsService ) { this . route . parent . data . subscribe ( ( data ) => { 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 = this . settingsService . language . code ; const dateFormat = this . settingsService . dateFormat ; this . loansService . getStandingInstructions ( clientId , clientName , accountId , locale , dateFormat ) . subscribe ( ( response ) => { this . instructionsData = response . pageItems ; this . dataSource . data = this . instructionsData ; this . instructionTableRef . renderRows ( ) ; } ) ; } deleteStandingInstruction ( instructionId ) { const deleteStandingInstructionDialogRef = this . dialog . open ( DeleteDialogComponent , { data : { deleteContext : `standing instruction id: ${ instructionId }` } } ) ; deleteStandingInstructionDialogRef . afterClosed ( ) . subscribe ( ( response ) => { if ( response . delete ) { this . accountTransfersService . deleteStandingInstrucions ( instructionId ) . subscribe ( ( ) => { } ) ; } } ) ; } }