</ng-container>
<ng-container *ngFor="let li of pageOfLineitems">
- <div class="row mt-2 border-bottom pt-2 pb-2 li-state-{{li.state()}}">
+ <div class="row mt-2 border-bottom pt-2 pb-2 li-state-{{lineitemDisposition(li)}}">
<div class="col-lg-12 d-flex">
<div class="jacket-wrapper">
<ng-container *ngIf="jacketIdent(li)">
import {NetService} from '@eg/core/net.service';
import {AuthService} from '@eg/core/auth.service';
import {ServerStoreService} from '@eg/core/server-store.service';
-import {LineitemService} from './lineitem.service';
+import {LineitemService, LINEITEM_DISPOSITION} from './lineitem.service';
import {PoService} from '../po/po.service';
import {ComboboxEntry} from '@eg/share/combobox/combobox.component';
import {HoldingsService} from '@eg/staff/share/holdings/holdings.service';
Boolean(this.poId)
);
}
+
+ lineitemDisposition(li: IdlObject): LINEITEM_DISPOSITION {
+ return this.liService.lineitemDisposition(li);
+ }
}
import {ItemLocationService} from '@eg/share/item-location-select/item-location-select.service';
import {saveAs} from 'file-saver';
+const LINEITEM_DISPOSITIONS:
+ 'new' | 'selector-ready' | 'order-ready' | 'pending-order' | 'on-order' | 'received' | 'delayed' = null;
+export type LINEITEM_DISPOSITION = typeof LINEITEM_DISPOSITIONS;
+
const COPY_ORDER_DISPOSITIONS:
'canceled' | 'delayed' | 'received' | 'on-order' | 'pre-order' = null;
export type COPY_ORDER_DISPOSITION = typeof COPY_ORDER_DISPOSITIONS;
} else { return 'pre-order'; }
}
+ // state/disposition of a single lineitem
+ lineitemDisposition(lineitem: IdlObject): LINEITEM_DISPOSITION {
+ if (lineitem.cancel_reason() && lineitem.cancel_reason().keep_debits() === 't') {
+ return 'delayed';
+ } else {
+ return lineitem.state();
+ }
+ }
+
// convenience function for sorting values
nullableCompare(a_val: any, b_val: any): number {
return a_val === b_val ? 0 :