Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, Inject, Injectable, ViewChild, ChangeDetectorRef }   from '@angular/core';
  2. import { MatTable, MatPaginator, MatTableDataSource } from '@angular/material';
  3. import { DataSource }                                 from '@angular/cdk/collections';
  4. import { Observable }                                 from 'rxjs/Observable';
  5. import { IPocoContract }                              from '../../interfaces/poco/contract';
  6. import { ODataPocoProxy }                             from '../../services/odata.proxy.poco.service';
  7. import 'rxjs/add/observable/of';
  8.  
  9. @Component({
  10.   selector    : 'app-pagination-table',
  11.   templateUrl : './pagination-table.component.html',
  12.   styleUrls   : ['../../Css/ReestrTableCommon.css']
  13. })
  14.  
  15. export class PaginationTableComponent {
  16.   private readonly defaultDelay : number = 1000;
  17.   private readonly defaultSkip  : number = 1000;
  18.   private readonly defaultTake  : number = 1000;
  19.  
  20.   public displayedColumns: string[] = [
  21.     'registryNumber',
  22.     'investObject',
  23.     'investor',
  24.     'dateRange',
  25.     'sum',
  26.     'status',
  27.     'district',
  28.     'type'
  29.   ];
  30.  
  31.   public dataSource: MatTableDataSource<any>;
  32.   @ViewChild(MatPaginator) paginator: MatPaginator;
  33.  
  34.   constructor(private proxy: ODataPocoProxy, private changeDetectorRefs: ChangeDetectorRef) {
  35.     this.initData();
  36.   }
  37.  
  38.   private async initData() : Promise<void> {
  39.     const queries = {
  40.       contracts : `docContracts?$filter=PK_Contract gt 0 and DocumentNumber ne '' and startswith(DocumentNumber, '11')&$expand=docSupplier,docContractSuppliers,vocDistrict,vocContractTypeInv,vocOrganization&$inlinecount=allpages`,
  41.       suppliers : `docSuppliers?$filter=PK_Supplier eq %value%`
  42.     };
  43.  
  44.     const contracts = await this.proxy.fetchRawData(queries.contracts) as Array<any>;
  45.  
  46.     for (let i = 0; i < contracts.length; i++) {
  47.       const x = contracts[i];
  48.       console.log(x.docContractSuppliers[0]['FK_Supplier']);
  49.  
  50.       if (x.docContractSuppliers !== undefined && x.docContractSuppliers[0] !== undefined) {
  51.         const supplierQuery = queries.suppliers.replace('%value%', x.docContractSuppliers[0]['FK_Supplier']);
  52.         const suppliers     = await this.proxy.fetchRawData(supplierQuery);
  53.         x.supplier          = suppliers[0];
  54.       }
  55.     }
  56.  
  57.     this.dataSource = new MatTableDataSource(contracts);
  58.     this.changeDetectorRefs.detectChanges();
  59.   }
  60.  
  61.   applyFilter(filterValue: string) {
  62.     filterValue = filterValue.trim();
  63.     filterValue = filterValue.toLowerCase();
  64.     this.dataSource.filter = filterValue;
  65.   }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement