1 <eg-staff-banner *ngIf="!isHoldCapture" i18n-bannerText bannerText="Checkin Items">
4 <eg-staff-banner *ngIf="isHoldCapture" i18n-bannerText bannerText="Capture Holds">
7 <eg-mark-damaged-dialog #markDamagedDialog [handleCheckin]="true"></eg-mark-damaged-dialog>
8 <eg-circ-components></eg-circ-components>
9 <eg-progress-dialog #progressDialog></eg-progress-dialog>
10 <eg-barcode-select #barcodeSelect></eg-barcode-select>
11 <eg-copy-alerts-dialog #copyAlertsDialog></eg-copy-alerts-dialog>
12 <eg-bucket-dialog #bucketDialog></eg-bucket-dialog>
13 <eg-string #itemNeverCircedStr i18n-text
14 text="Item CONC40000598 has never circulated."></eg-string>
15 <eg-backdate-dialog #backdateDialog></eg-backdate-dialog>
16 <eg-cancel-transit-dialog #cancelTransitDialog></eg-cancel-transit-dialog>
17 <eg-worklog-strings-components></eg-worklog-strings-components>
19 <div class="row" *ngIf="hasAlerts()">
20 <div class="col-lg-12 alert alert-danger p-1">
21 <span class="mr-2 pr-2 border-right border-dark"
22 *ngIf="backdate" i18n>Backdated Check In {{backdate | date:'shortDate'}}</span>
23 <span class="mr-2 pr-2 border-right border-dark"
24 *ngIf="backdate && backdateUntilLogout" i18n>Use Effective Date Until Logout</span>
25 <span class="mr-2 pr-2 border-right border-dark"
26 *ngIf="modifiers.no_precat_alert" i18n>Ignore Pre-Cataloged Items</span>
27 <span class="mr-2 pr-2 border-right border-dark"
28 *ngIf="modifiers.noop" i18n>Suppress Holds and Transits</span>
29 <span class="mr-2 pr-2 border-right border-dark"
30 *ngIf="modifiers.void_overdues" i18n>Amnesty Mode</span>
31 <span class="mr-2 pr-2 border-right border-dark"
32 *ngIf="modifiers.auto_print_holds_transits" i18n>Auto-Print Hold and Transit Slips</span>
33 <span class="mr-2 pr-2 border-right border-dark"
34 *ngIf="modifiers.clear_expired" i18n>Clear Holds Shelf</span>
35 <ng-container *ngIf="modifiers.retarget_holds">
36 <span class="mr-2 pr-2 border-right border-dark"
37 *ngIf="modifiers.retarget_holds_all" i18n>Always Retarget Local Holds</span>
38 <span class="mr-2 pr-2 border-right border-dark"
39 *ngIf="!modifiers.retarget_holds_all" i18n>Retarget Local Holds</span>
41 <span class="mr-2 pr-2 border-right border-dark"
42 *ngIf="modifiers.hold_as_transit" i18n>Capture Local Holds As Transits</span>
43 <span class="mr-2 pr-2 border-right border-dark"
44 *ngIf="modifiers.manual_float" i18n>Manual Floating Active</span>
45 <span class="mr-2 pr-2 border-right border-dark"
46 *ngIf="modifiers.do_inventory_update" i18n>Update Inventory</span>
50 <div class="row mb-3 pb-3 border-bottom">
51 <div class="col-lg-12 d-flex">
52 <div class="form-inline">
53 <div class="input-group">
54 <div class="input-group-prepend">
55 <span class="input-group-text" i18n>Barcode</span>
57 <input type="text" class="form-control" id="barcode-input"
58 placeholder="Barcode..." i18n-placeholder [(ngModel)]="barcode"
59 i18n-aria-label aria-label="Barcode Input" (keydown.enter)="checkin()" />
60 <div class="input-group-append">
61 <button class="btn btn-outline-dark" (keydown.enter)="checkin()"
62 (click)="checkin()" i18n>Submit</button>
66 <div class="flex-1"></div>
68 <div class="form-check form-check-inline">
69 <input class="form-check-input" type="checkbox"
70 id="use-date-cbox" [(ngModel)]="backdateUntilLogout"/>
71 <label class="form-check-label"
72 for="use-date-cbox" i18n>Use effective date until logout</label>
75 <div class="mr-2" i18n>Effective Date:</div>
76 <eg-date-select [initialIso]="backdate" [(ngModel)]="backdateDate"
77 (onChangeAsIso)="backdate = $event"></eg-date-select>
78 <button class="btn btn-sm btn-outline-dark ml-1"
79 (click)="backdateDate=null; backdate=null" i18n>Clear</button>
83 <div *ngIf="fineTally > 0">
84 <span class="mr-2" i18n>Fine Tally: </span>
85 <span class="badge badge-danger">{{fineTally | currency}}</span>
88 <!-- doc_id below because checkin returns an MVR -->
89 <ng-template #titleTemplate let-r="row">
90 <ng-container *ngIf="r.record">
91 <a routerLink="/staff/catalog/record/{{r.record.doc_id()}}">{{r.title}}</a>
93 <ng-container *ngIf="!r.record">{{r.title}}</ng-container>
96 <ng-template #barcodeTemplate let-r="row">
97 <ng-container *ngIf="r.copy">
98 <a href="/eg/staff/cat/item/{{r.copy.id()}}">{{r.copy.barcode()}}</a>
103 <div class="col-lg-12">
104 <eg-grid #grid [dataSource]="gridDataSource" [sortable]="true"
105 [useLocalSort]="true" [cellTextGenerator]="cellTextGenerator"
106 [disablePaging]="true" [persistKey]="persistKey">
108 <eg-grid-toolbar-action
109 group="Mark" i18n-group i18n-label label="Mark Item Damaged"
110 (onClick)="markDamaged($event)"></eg-grid-toolbar-action>
112 <eg-grid-toolbar-action
113 group="Mark" i18n-group i18n-label label="Mark Missing Pieces"
114 (onClick)="markMissingPieces($event)"></eg-grid-toolbar-action>
116 <eg-grid-toolbar-action
117 i18n-group group="Edit" i18n-label label="Manage Item Alerts"
118 [disabled]="grid.context.rowSelector.selected().length !== 1"
119 (onClick)="manageItemAlerts($event)">
120 </eg-grid-toolbar-action>
122 <eg-grid-toolbar-action
123 i18n-group group="Edit" i18n-label label="Edit Holdings"
124 (onClick)="editHoldings($event)">
125 </eg-grid-toolbar-action>
127 <eg-grid-toolbar-action
128 i18n-group group="Edit" i18n-label label="Edit Items"
129 (onClick)="editItems($event)">
130 </eg-grid-toolbar-action>
132 <eg-grid-toolbar-action
133 i18n-group group="Print" i18n-label label="Print Labels"
134 (onClick)="openItemPrintLabels($event)">
135 </eg-grid-toolbar-action>
137 <eg-grid-toolbar-action
138 i18n-group group="Add" i18n-label label="Add Item Alerts"
139 (onClick)="addItemAlerts($event)">
140 </eg-grid-toolbar-action>
142 <eg-grid-toolbar-action
143 i18n-group group="Add" i18n-label label="Add Items To Bucket"
144 (onClick)="openBucketDialog($event)">
145 </eg-grid-toolbar-action>
147 <eg-grid-toolbar-action
148 i18n-group group="Circulation" i18n-label label="Backdate Post-Checkin"
149 (onClick)="backdatePostCheckin($event)">
150 </eg-grid-toolbar-action>
152 <eg-grid-toolbar-action
153 i18n-group group="Circulation" i18n-label label="Cancel Transits"
154 (onClick)="cancelTransits($event)">
155 </eg-grid-toolbar-action>
157 <eg-grid-toolbar-action
158 i18n-group group="Show" i18n-label
159 label="Retrieve Last Patron Who Circulated Item"
160 [disabled]="grid.context.rowSelector.selected().length !== 1"
161 (onClick)="retrieveLastPatron($event)">
162 </eg-grid-toolbar-action>
164 <eg-grid-toolbar-action
165 i18n-group group="Show" i18n-label
166 label="Show Record Holds"
167 [disabled]="grid.context.rowSelector.selected().length !== 1"
168 (onClick)="showRecordHolds($event)">
169 </eg-grid-toolbar-action>
171 <eg-grid-toolbar-action
172 i18n-group group="Show" i18n-label
173 label="Show Last Few Circs"
174 [disabled]="grid.context.rowSelector.selected().length !== 1"
175 (onClick)="showRecentCircs($event)">
176 </eg-grid-toolbar-action>
180 <eg-grid-column path="index" [index]="true"
181 label="Row Index" i18n-label [hidden]="true"></eg-grid-column>
183 <eg-grid-column path="copy.alert_message" label="Alert Message"
184 i18n-label></eg-grid-column>
186 <eg-grid-column path="mbts.balance_owed" label="Balance Owed"
187 datatype="money" i18n-label></eg-grid-column>
189 <eg-grid-column path="copy.barcode" label="Barcode"
190 i18n-label [cellTemplate]="barcodeTemplate"></eg-grid-column>
192 <eg-grid-column i18n-label label="Call Number" path="volume.label">
195 <eg-grid-column path="copy.circ_lib.shortname"
196 label="Circulation Library" i18n-label></eg-grid-column>
198 <eg-grid-column path="title" label="Title" i18n-label
199 [cellTemplate]="titleTemplate"></eg-grid-column>
201 <eg-grid-column path="patron.family_name" label="Last Name" i18n-label>
204 <eg-grid-column path="patron.first_given_name" label="First Name" i18n-label>
207 <eg-grid-column path="copy.location.name" label="Location" i18n-label [hidden]="true">
210 <eg-grid-column path="circ.id" label="Bill #" i18n-label [hidden]="true">
213 <eg-grid-column path="circ.checkin_time" label="Checkin Date" i18n-label
214 datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
216 <eg-grid-column name="routeTo" label="Route To" i18n-label>
219 <eg-grid-column path="circ.xact_finish" label="Finish" i18n-label
220 [hidden]="true" datatype="timestamp" [datePlusTime]="true"></eg-grid-column>
222 <eg-grid-column path="circ.xact_start" label="Start" i18n-label [hidden]="true"
223 datatype="timestamp" [datePlusTime]="true"></eg-grid-column>
225 <eg-grid-column path="copy.circ_modifier" [hidden]="true"
226 label="Circulation Modifier" i18n-label></eg-grid-column>
228 <eg-grid-column path="copy.status.name" [hidden]="true"
229 label="Item Status" i18n-label></eg-grid-column>
231 <eg-grid-column path="circ.due_date" label="Due Date" i18n-label
232 timezoneContextOrg="circ.circ_lib" dateOnlyIntervalField="circ.duration"
233 [hidden]="true" datatype="timestamp"></eg-grid-column>
235 <eg-grid-column path="copy.*" idlClass="acp" [hidden]="true"></eg-grid-column>
236 <eg-grid-column path="volume.*" idlClass="acn" [hidden]="true"></eg-grid-column>
237 <eg-grid-column path="circ.*" idlClass="circ" [hidden]="true"></eg-grid-column>
238 <eg-grid-column path="mbts.*" idlClass="mbts" [hidden]="true"></eg-grid-column>
239 <eg-grid-column path="patron.*" idlClass="au" [hidden]="true"></eg-grid-column>
240 <eg-grid-column path="record.*" idlClass="mvr" [hidden]="true"></eg-grid-column>
241 <eg-grid-column path="hold.*" idlClass="ahr" [hidden]="true"></eg-grid-column>
242 <eg-grid-column path="transit.*" idlClass="atc" [hidden]="true"></eg-grid-column>
248 <div class="row mt-3 pt-3">
249 <div class="col-lg-12 d-flex">
250 <div class="flex-1"></div>
252 <button class="btn btn-outline-dark"
253 (click)="printReceipt()" i18n>Print Receipt</button>
256 <div class="form-check form-check-inline">
257 <input class="form-check-input" type="checkbox"
258 id="trim-list-cbox" [(ngModel)]="trimList"/>
259 <label class="form-check-label"
260 for="trim-list-cbox" i18n>Trim List (20)</label>
264 <div class="form-check form-check-inline">
265 <input class="form-check-input" type="checkbox"
266 (ngModelChange)="toggleStrictBarcode($event)"
267 id="strict-barcode-cbox" [(ngModel)]="strictBarcode"/>
268 <label class="form-check-label"
269 for="strict-barcode-cbox" i18n>Strict Barcode</label>
274 <button class="btn btn-outline-dark"
275 ngbDropdownToggle i18n>Checkin Modifiers</button>
276 <div ngbDropdownMenu>
277 <a ngbDropdownItem (click)="toggleMod('no_precat_alert')">
278 <span *ngIf="modifiers.no_precat_alert"
279 class="badge badge-success mr-2">✓</span>
280 <span *ngIf="!modifiers.no_precat_alert"
281 class="badge badge-warning mr-2">✗</span>
282 <span i18n>Ignore Pre-cataloged Items</span>
284 <a ngbDropdownItem *ngIf="!isHoldCapture" (click)="toggleMod('noop')">
285 <span *ngIf="modifiers.noop"
286 class="badge badge-success mr-2">✓</span>
287 <span *ngIf="!modifiers.noop"
288 class="badge badge-warning mr-2">✗</span>
289 <span i18n>Suppress Holds and Transits</span>
291 <a ngbDropdownItem (click)="toggleMod('void_overdues')">
292 <span *ngIf="modifiers.void_overdues"
293 class="badge badge-success mr-2">✓</span>
294 <span *ngIf="!modifiers.void_overdues"
295 class="badge badge-warning mr-2">✗</span>
296 <span i18n>Amnesty Mode</span>
298 <a ngbDropdownItem *ngIf="!isHoldCapture"
299 (click)="toggleMod('auto_print_holds_transits')">
300 <span *ngIf="modifiers.auto_print_holds_transits"
301 class="badge badge-success mr-2">✓</span>
302 <span *ngIf="!modifiers.auto_print_holds_transits"
303 class="badge badge-warning mr-2">✗</span>
304 <span>Auto-Print Hold and Transit Slips</span>
306 <a ngbDropdownItem (click)="toggleMod('clear_expired')">
307 <span *ngIf="modifiers.clear_expired"
308 class="badge badge-success mr-2">✓</span>
309 <span *ngIf="!modifiers.clear_expired"
310 class="badge badge-warning mr-2">✗</span>
311 <span i18n>Clear Holds Shelf</span>
313 <a ngbDropdownItem (click)="toggleMod('retarget_holds')">
314 <span *ngIf="modifiers.retarget_holds"
315 class="badge badge-success mr-2">✓</span>
316 <span *ngIf="!modifiers.retarget_holds"
317 class="badge badge-warning mr-2">✗</span>
318 <span i18n>Retarget Local Holds</span>
320 <a ngbDropdownItem (click)="toggleMod('retarget_holds_all')">
321 <span *ngIf="modifiers.retarget_holds_all"
322 class="badge badge-success mr-2">✓</span>
323 <span *ngIf="!modifiers.retarget_holds_all"
324 class="badge badge-warning mr-2">✗</span>
325 <span i18n>Retarget All Statuses</span>
327 <a ngbDropdownItem (click)="toggleMod('hold_as_transit')">
328 <span *ngIf="modifiers.hold_as_transit"
329 class="badge badge-success mr-2">✓</span>
330 <span *ngIf="!modifiers.hold_as_transit"
331 class="badge badge-warning mr-2">✗</span>
332 <span i18n>Capture Local Holds As Transits</span>
334 <a ngbDropdownItem (click)="toggleMod('manual_float')">
335 <span *ngIf="modifiers.manual_float"
336 class="badge badge-success mr-2">✓</span>
337 <span *ngIf="!modifiers.manual_float"
338 class="badge badge-warning mr-2">✗</span>
339 <span i18n>Manual Floating Active</span>
341 <a ngbDropdownItem *ngIf="!isHoldCapture"
342 (click)="toggleMod('do_inventory_update')">
343 <span *ngIf="modifiers.do_inventory_update"
344 class="badge badge-success mr-2">✓</span>
345 <span *ngIf="!modifiers.do_inventory_update"
346 class="badge badge-warning mr-2">✗</span>
347 <span i18n>Update Inventory</span>