<eg-acq-claim-policy-dialog #claimPolicyDialog></eg-acq-claim-policy-dialog>
<eg-acq-cancel-dialog #cancelDialog></eg-acq-cancel-dialog>
<eg-acq-delete-lineitems-dialog #deleteLineitemsDialog></eg-acq-delete-lineitems-dialog>
+<eg-acq-link-invoice-dialog #linkInvoiceDialog></eg-acq-link-invoice-dialog>
<eg-string #claimPolicyAppliedString i18n-text text="Claim Policy Applied to Selected Line Item(s)"></eg-string>
<eg-string #lineItemsReceivedString i18n-text text="Line Item(s) Received"></eg-string>
(onClick)="createInvoiceFromSelected($event)" [disableOnRows]="noSelectedRows">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action label="Link Selected Line Items to Invoice" i18n-label
- (onClick)="linkToInvoice($event)" [disableOnRows]="noSelectedRows">
+ (onClick)="linkInvoiceFromSelected($event)" [disableOnRows]="noSelectedRows">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action label="Cancel Selected" i18n-label
(onClick)="cancelLineitems($event)" [disableOnRows]="noSelectedRows">
import {ClaimPolicyDialogComponent} from '../lineitem/claim-policy-dialog.component';
import {CancelDialogComponent} from '../lineitem/cancel-dialog.component';
import {DeleteLineitemsDialogComponent} from '../lineitem/delete-lineitems-dialog.component';
+import {LinkInvoiceDialogComponent} from '../lineitem/link-invoice-dialog.component';
@Component({
selector: 'eg-lineitem-results',
@ViewChild('claimPolicyDialog') claimPolicyDialog: ClaimPolicyDialogComponent;
@ViewChild('cancelDialog') cancelDialog: CancelDialogComponent;
@ViewChild('deleteLineitemsDialog') deleteLineitemsDialog: DeleteLineitemsDialogComponent;
+ @ViewChild('linkInvoiceDialog') linkInvoiceDialog: LinkInvoiceDialogComponent;
@ViewChild('claimPolicyAppliedString', { static: false }) claimPolicyAppliedString: StringComponent;
@ViewChild('lineItemsReceivedString', { static: false }) lineItemsReceivedString: StringComponent;
@ViewChild('lineItemsUnReceivedString', { static: false }) lineItemsUnReceivedString: StringComponent;
});
}
+ linkInvoiceFromSelected(rows: IdlObject[]) {
+ // must be attached to PO
+ const lis = rows.filter(l => l.purchase_order());
+ if (lis.length === 0) {
+ this.noActionableLIs.open();
+ return;
+ }
+
+ this.linkInvoiceDialog.liIds = lis.map(i => Number(i.id()));
+ this.linkInvoiceDialog.open().subscribe(invId => {
+ if (!invId) { return; }
+
+ const path = '/eg/staff/acq/legacy/invoice/view/' + invId + '?' +
+ lis.map(x => 'attach_li=' + x.id()).join('&');
+ window.location.href = path;
+ });
+ }
+
markReceived(rows: IdlObject[]) {
// must be on-order
const lis = rows.filter(l => l.state() === 'on-order');