From: Galen Charlton Date: Wed, 25 Mar 2020 15:52:23 +0000 (-0400) Subject: provider purchase orders component X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=dfc42e197287bad769e751e406fc4cdd1ef87319;p=working%2FEvergreen.git provider purchase orders component Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html index 4b5403169a..23bce36563 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html @@ -48,7 +48,9 @@ - PROVIDER PURCHASE ORDERS TAB + + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts index 743d3e283e..a8a6925ee7 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts @@ -8,6 +8,7 @@ import {ProviderResultsComponent} from './provider-results.component'; 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'; @@ -21,6 +22,7 @@ import {ProviderRecordService} from './provider-record.service'; ProviderAddressesComponent, ProviderContactsComponent, ProviderInvoicesComponent, + ProviderPurchaseOrdersComponent, AcqProviderSummaryPaneComponent ], imports: [ diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.html b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.html new file mode 100644 index 0000000000..eb5e293afc --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.html @@ -0,0 +1,38 @@ + + + {{purchaseorder.name()}} + + + + + + {{purchaseorder.provider().code()}} + + + + + + + + + + + + + + + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.ts new file mode 100644 index 0000000000..9fac4abe6e --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.ts @@ -0,0 +1,75 @@ +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(); + }); + } + }); + } + +}