<eg-transfer-items #transferItems></eg-transfer-items>
<eg-transfer-holdings #transferHoldings></eg-transfer-holdings>
<eg-cancel-transit-dialog #cancelTransitDialog></eg-cancel-transit-dialog>
+<eg-mark-items-dialog #markItemsDialog></eg-mark-items-dialog>
<eg-alert-dialog #transferAlert
i18n-dialogTitle i18n-dialogBody
dialogTitle="No Target Selected"
i18n-group group="Edit" (entryClicked)="deleteItems([item])">
</eg-grouped-menu-entry>
+ <!-- Mark -->
+ <eg-grouped-menu-entry i18n-label label="Mark Item as Damaged"
+ i18n-group group="Mark" (entryClicked)="markDamaged([item])">
+ </eg-grouped-menu-entry>
+ <eg-grouped-menu-entry i18n-label label="Mark Item as Discard/Weed"
+ i18n-group group="Mark" (entryClicked)="discardWeed([item])">
+ </eg-grouped-menu-entry>
+
+
<!-- Show -->
<eg-grouped-menu-entry i18n-label label="Show Record Holds"
i18n-group group="Show" [newTab]="true"
import {Component, Input, OnInit, AfterViewInit, ViewChild} from '@angular/core';
import {Router, ActivatedRoute, ParamMap} from '@angular/router';
-import {from, empty} from 'rxjs';
+import {from, of, empty} from 'rxjs';
import {concatMap, tap} from 'rxjs/operators';
import {IdlObject, IdlService} from '@eg/core/idl.service';
import {PcrudService} from '@eg/core/pcrud.service';
import {AnonCacheService} from '@eg/share/util/anon-cache.service';
import {ToastService} from '@eg/share/toast/toast.service';
import {StringService} from '@eg/share/string/string.service';
+import {ConfirmDialogComponent} from '@eg/share/dialog/confirm.component';
+import {MarkItemsDialogComponent
+ } from '@eg/staff/share/holdings/mark-items-dialog.component';
@Component({
templateUrl: 'status.component.html'
noSuchItem = false;
item: IdlObject;
tab: string;
+ discardCount = 0;
@ViewChild('barcodeSelect') private barcodeSelect: BarcodeSelectComponent;
private progressDialog: ProgressDialogComponent;
@ViewChild('cancelTransitDialog')
private cancelTransitDialog: CancelTransitDialogComponent;
+ @ViewChild('markItemsDialog')
+ private markItemsDialog: MarkItemsDialogComponent;
constructor(
private router: Router,
window.open(`/eg/staff/acq/legacy/po/view/${resp.purchase_order()}`);
});
}
+
+ markDamaged(copies: IdlObject[]) {
+ const copyIds = copies
+ .filter(c => c.status() !== 14 /* Damaged */).map(c => c.id());
+
+ if (copyIds.length === 0) { return; }
+
+ let modified = false;
+
+ from(copyIds).pipe(concatMap(copyId => {
+
+ this.markDamagedDialog.copyId = copyId;
+ return this.markDamagedDialog.open({size: 'lg'})
+ .pipe(tap(ok => { if (ok) { modified = true; } }));
+
+ })).toPromise().then(_ => this.load());
+ }
+
+
+ discardWeed(copies: IdlObject[]) {
+ let modified = false;
+
+ this.markItemsDialog.markAs = 'discard';
+ this.markItemsDialog.copies = copies;
+ this.markItemsDialog.open()
+ .subscribe(
+ copyId => {
+ if (copyId !== null) { modified = true; }
+ },
+ null,
+ () => {
+ if (modified) { this.load(); }
+ }
+ );
+ }
}
import {TransferHoldingsComponent} from './transfer-holdings.component';
import {BatchItemAttrComponent} from './batch-item-attr.component';
import {CopyAlertManagerDialogComponent} from './copy-alert-manager.component';
+import {MarkItemsDialogComponent} from './mark-items-dialog.component';
@NgModule({
declarations: [
TransferItemsComponent,
TransferHoldingsComponent,
BatchItemAttrComponent,
+ MarkItemsDialogComponent,
CopyAlertManagerDialogComponent
],
imports: [
TransferItemsComponent,
TransferHoldingsComponent,
BatchItemAttrComponent,
+ MarkItemsDialogComponent,
CopyAlertManagerDialogComponent
],
providers: [