import {LinkInvoiceDialogComponent} from './link-invoice-dialog.component';
import {ExportAttributesDialogComponent} from './export-attributes-dialog.component';
import {ClaimPolicyDialogComponent} from './claim-policy-dialog.component';
-import {saveAs} from 'file-saver';
const DELETABLE_STATES = [
'new', 'selector-ready', 'order-ready', 'approved', 'pending-order'
this.exportAttributesDialog.open().subscribe(attr => {
if (!attr) { return; }
- const values: string[] = [];
- this.liService.getFleshedLineitems(ids, { fromCache: true }).subscribe(
- li => values.push(this.displayAttr(li.lineitem, attr)),
- err => {},
- () => {
- const filtered = values.filter(x => x !== '');
- saveAs(
- new Blob(
- [ filtered.join('\n') + '\n' ],
- { type: 'text/plain;charset=utf-8' }
- ),
- 'export_attr_list.txt'
- );
- }
- );
+ this.liService.doExportSingleAttributeList(ids, attr);
});
}
import {PcrudService} from '@eg/core/pcrud.service';
import {ComboboxEntry} from '@eg/share/combobox/combobox.component';
import {ItemLocationService} from '@eg/share/item-location-select/item-location-select.service';
+import {saveAs} from 'file-saver';
const COPY_ORDER_DISPOSITIONS:
'canceled' | 'delayed' | 'received' | 'on-order' | 'pre-order' = null;
return li.id();
}
}
+
+ doExportSingleAttributeList(ids: number[], attr: string) {
+ if (!attr) { return; }
+ const values: string[] = [];
+ this.getFleshedLineitems(ids, { fromCache: true }).subscribe(
+ li => values.push(this.getFirstAttributeValue(li.lineitem, attr, 'lineitem_marc_attr_definition')),
+ err => {},
+ () => {
+ const filtered = values.filter(x => x !== '');
+ saveAs(
+ new Blob(
+ [ filtered.join('\n') + '\n' ],
+ { type: 'text/plain;charset=utf-8' }
+ ),
+ 'export_attr_list.txt'
+ );
+ }
+ );
+ }
}
import {PicklistDeleteDialogComponent} from './picklist-delete-dialog.component';
import {PicklistMergeDialogComponent} from './picklist-merge-dialog.component';
import {AcqSearchService} from './acq-search.service';
+import {LineitemModule} from '@eg/staff/acq/lineitem/lineitem.module';
@NgModule({
declarations: [
],
imports: [
StaffCommonModule,
- AcqSearchRoutingModule
+ AcqSearchRoutingModule,
+ LineitemModule
],
providers: [AcqSearchService]
})
i18n-searchTypeLabel searchTypeLabel="Line Item" runImmediatelySetting="eg.acq.search.lineitems.run_immediately"
defaultSearchSetting="eg.acq.search.default.lineitems"></eg-acq-search-form>
+<eg-acq-export-attributes-dialog #exportAttributesDialog></eg-acq-export-attributes-dialog>
+
<ng-template #idTmpl let-lineitem="row">
<ng-container>
import {GridComponent} from '@eg/share/grid/grid.component';
import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid';
import {AcqSearchService, AcqSearchTerm, AcqSearch} from './acq-search.service';
+import {LineitemService} from '../lineitem/lineitem.service';
+import {ExportAttributesDialogComponent} from '../lineitem/export-attributes-dialog.component';
import {AcqSearchFormComponent} from './acq-search-form.component';
@Component({
gridSource: GridDataSource;
@ViewChild('acqSearchForm', { static: true}) acqSearchForm: AcqSearchFormComponent;
@ViewChild('acqSearchLineitemsGrid', { static: true }) lineitemResultsGrid: GridComponent;
+ @ViewChild('exportAttributesDialog') exportAttributesDialog: ExportAttributesDialogComponent;
noSelectedRows: (rows: IdlObject[]) => boolean;
private route: ActivatedRoute,
private net: NetService,
private auth: AuthService,
+ private liService: LineitemService,
private acqSearch: AcqSearchService) {
}
window.open('/eg2/staff/acq/po/' + row.purchase_order().id() +
'/lineitem/' + row.id() + '/worksheet', '_blank');
}
+
+ exportSingleAttributeList(rows: IdlObject[]) {
+ const ids = rows.map(x => Number(x.id()));
+ this.exportAttributesDialog.ids = ids;
+ this.exportAttributesDialog.open().subscribe(attr => {
+ if (!attr) { return; }
+
+ this.liService.doExportSingleAttributeList(ids, attr);
+ });
+ }
}