import {ProviderAddressesComponent} from './provider-addresses.component';
import {ProviderContactsComponent} from './provider-contacts.component';
import {ProviderInvoicesComponent} from './provider-invoices.component';
+import {ProviderPurchaseOrdersComponent} from './provider-purchase-orders.component';
import {OrgFamilySelectModule} from '@eg/share/org-family-select/org-family-select.module';
import {FmRecordEditorModule} from '@eg/share/fm-editor/fm-editor.module';
import {ProviderRecordService} from './provider-record.service';
ProviderAddressesComponent,
ProviderContactsComponent,
ProviderInvoicesComponent,
+ ProviderPurchaseOrdersComponent,
AcqProviderSummaryPaneComponent
],
imports: [
--- /dev/null
+<ng-template #nameTmpl let-purchaseorder="row">
+ <a href="/eg/staff/acq/legacy/po/view/{{purchaseorder.id()}}"
+ target="_blank">
+ {{purchaseorder.name()}}
+ </a>
+</ng-template>
+
+<ng-template #providerTmpl let-purchaseorder="row">
+ <a href="/eg/staff/admin/acq/conify/provider/{{purchaseorder.provider().id()}}"
+ target="_blank">
+ {{purchaseorder.provider().code()}}
+ </a>
+</ng-template>
+
+<eg-grid #acqProviderPurchaseOrdersGrid
+ persistKey="acq.provider.purchaseorders"
+ [stickyHeader]="true"
+ [filterable]="true"
+ [sortable]="true"
+ [cellTextGenerator]="cellTextGenerator"
+ idlClass="acqpo" [dataSource]="gridSource">
+
+ <eg-grid-column path="name" [cellTemplate]="nameTmpl"></eg-grid-column>
+ <eg-grid-column path="id"></eg-grid-column>
+ <eg-grid-column path="provider" [hidden]="true" [filterable]="false" [cellTemplate]="providerTmpl"></eg-grid-column>
+ <eg-grid-column path="ordering_agency"></eg-grid-column>
+ <eg-grid-column path="create_time"></eg-grid-column>
+ <eg-grid-column path="edit_time"></eg-grid-column>
+ <eg-grid-column path="order_date"></eg-grid-column>
+
+ <eg-grid-column path="creator" [hidden]="true"></eg-grid-column>
+ <eg-grid-column path="editor" [hidden]="true"></eg-grid-column>
+ <eg-grid-column path="owner" [hidden]="true"></eg-grid-column>
+ <eg-grid-column [asyncSupportsEmptyTermClick]="true" i18n-label label="Status" path="state" [disableTooltip]="true"></eg-grid-column>
+ <eg-grid-column [asyncSupportsEmptyTermClick]="true" path="cancel_reason"></eg-grid-column>
+ <eg-grid-column path="prepayment_required" [sortable]="false"></eg-grid-column>
+
+</eg-grid>
--- /dev/null
+import {Component, OnInit, AfterViewInit, Input, ViewChild} from '@angular/core';
+import {Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
+import {Router, ActivatedRoute, ParamMap} from '@angular/router';
+import {Pager} from '@eg/share/util/pager';
+import {IdlObject} from '@eg/core/idl.service';
+import {EventService} from '@eg/core/event.service';
+import {AlertDialogComponent} from '@eg/share/dialog/alert.component';
+import {PrintService} from '@eg/share/print/print.service';
+import {NetService} from '@eg/core/net.service';
+import {AuthService} from '@eg/core/auth.service';
+import {GridComponent} from '@eg/share/grid/grid.component';
+import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid';
+import {AcqSearchService, AcqSearchTerm, AcqSearch} from '../search/acq-search.service';
+import {ProviderRecord, ProviderRecordService} from './provider-record.service';
+
+@Component({
+ selector: 'eg-provider-purchase-orders',
+ templateUrl: 'provider-purchase-orders.component.html',
+ providers: [AcqSearchService]
+})
+export class ProviderPurchaseOrdersComponent implements OnInit {
+
+ @Input() initialSearchTerms: AcqSearchTerm[] = [];
+
+ gridSource: GridDataSource;
+ @ViewChild('acqProviderPurchaseOrdersGrid', { static: true }) providerPurchaseOrdersGrid: GridComponent;
+ @ViewChild('printfail', { static: true }) private printfail: AlertDialogComponent;
+
+ noSelectedRows: (rows: IdlObject[]) => boolean;
+
+ cellTextGenerator: GridCellTextGenerator;
+
+ constructor(
+ private router: Router,
+ private route: ActivatedRoute,
+ private printer: PrintService,
+ private evt: EventService,
+ private net: NetService,
+ private auth: AuthService,
+ private providerRecord: ProviderRecordService,
+ private acqSearch: AcqSearchService) {
+ }
+
+ ngOnInit() {
+ this.gridSource = this.acqSearch.getAcqSearchDataSource('purchase_order');
+ this.noSelectedRows = (rows: IdlObject[]) => (rows.length === 0);
+ this.cellTextGenerator = {
+ inv_ident: row => row.inv_ident(),
+ provider: row => row.provider().code(),
+ shipper: row => row.shipper().code(),
+ };
+ }
+
+ ngAfterViewInit() {
+ this.providerRecord.refreshCurrent().then(() => {
+ const provider = this.providerRecord.current();
+ if (provider) {
+ setTimeout(() => {
+ this.acqSearch.setSearch({
+ terms: [{
+ field: 'acqpo:provider',
+ op: '',
+ value1: provider.id(),
+ value2: '',
+ }],
+ conjunction: 'all',
+ });
+ this.providerPurchaseOrdersGrid.reload();
+ });
+ }
+ });
+ }
+
+}