<div class="col-md-12">
-
- <div class="flex-row">
- <div class="flex-cell flex-2 header-label-big">
- [% l('Previous Circ Group') %]
- </div>
- <div class="flex-cell flex-2 header-label-big">
- [% l('Most Recent Circ Group') %]
- </div>
+ <div class="flex-row">
+ <div class="flex-cell flex-2 header-label-big">
+ [% l('Previous Circ Group') %]
</div>
-
- <div class="flex-row">
- <div class="flex-cell">[% l('Patron') %]</div>
- <div class="flex-cell flex-cell-well">
- <a href="./circ/patron/{{prev_circ_usr.id()}}/checkout"
- ng-if="prev_circ_summary" target="_self">
- [% l('[_1], [_2] [_3] : [_4]',
- '{{prev_circ_usr.family_name()}}'
- '{{prev_circ_usr.first_given_name()}}'
- '{{prev_circ_usr.second_given_name()}}'
- '{{prev_circ_usr.card().barcode()}}') %]
- </a>
- </div>
- <div class="flex-cell">[% l('Patron') %]</div>
- <div class="flex-cell flex-cell-well">
- <a href="./circ/patron/{{circ.usr().id()}}/checkout"
- ng-if="circ" target="_self">
- [% l('[_1], [_2] [_3] : [_4]',
- '{{circ.usr().family_name()}}'
- '{{circ.usr().first_given_name()}}'
- '{{circ.usr().second_given_name()}}'
- '{{circ.usr().card().barcode()}}') %]
- </a>
- </div>
+ <div class="flex-cell flex-2 header-label-big">
+ [% l('Most Recent Circ Group') %]
</div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Total Circs') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.num_circs()}}
- </div>
- <div class="flex-cell">[% l('Total Circs') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ_summary.num_circs()}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Patron') %]</div>
+ <div class="flex-cell flex-cell-well">
+ <a href="./circ/patron/{{prev_circ_usr.id()}}/checkout"
+ ng-if="prev_circ_summary" target="_self">
+ [% l('[_1], [_2] [_3] : [_4]',
+ '{{prev_circ_usr.family_name()}}'
+ '{{prev_circ_usr.first_given_name()}}'
+ '{{prev_circ_usr.second_given_name()}}'
+ '{{prev_circ_usr.card().barcode()}}') %]
+ </a>
</div>
-
- <div class="flex-row">
- <div class="flex-cell">[% l('Checkout Date') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.start_time() | date:'short'}}
- </div>
- <div class="flex-cell">[% l('Checkout Date') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.xact_start() | date:'short'}}
- </div>
+ <div class="flex-cell">[% l('Patron') %]</div>
+ <div class="flex-cell flex-cell-well">
+ <a href="./circ/patron/{{circ.usr().id()}}/checkout"
+ ng-if="circ" target="_self">
+ [% l('[_1], [_2] [_3] : [_4]',
+ '{{circ.usr().family_name()}}'
+ '{{circ.usr().first_given_name()}}'
+ '{{circ.usr().second_given_name()}}'
+ '{{circ.usr().card().barcode()}}') %]
+ </a>
</div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Checkout Workstation') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.checkout_workstation()}}
- </div>
- <div class="flex-cell">[% l('Checkout Workstation') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.workstation().name()}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Total Circs') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.num_circs()}}
+ </div>
+ <div class="flex-cell">[% l('Total Circs') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ_summary.num_circs()}}
</div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Last Renewed On') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_renewal_time() | date:'short'}}
- </div>
- <div class="flex-cell">[% l('Last Renewed On') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ_summary.last_renewal_time() | date:'short'}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Checkout Date') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.start_time() | date:'short'}}
</div>
+ <div class="flex-cell">[% l('Checkout Date') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.xact_start() | date:'short'}}
+ </div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Renewal Workstation') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_renewal_workstation()}}
- </div>
- <div class="flex-cell">[% l('Renewal Workstation') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ_summary.last_renewal_workstation()}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Checkout Workstation') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.checkout_workstation()}}
+ </div>
+ <div class="flex-cell">[% l('Checkout Workstation') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.workstation().name()}}
</div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Stop Fines Reason') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_stop_fines()}}
- </div>
- <div class="flex-cell">[% l('Stop Fines Reason') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.stop_fines()}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Last Renewed On') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_renewal_time() | date:'short'}}
</div>
+ <div class="flex-cell">[% l('Last Renewed On') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ_summary.last_renewal_time() | date:'short'}}
+ </div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Stop Fines Time') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_stop_fines_time() | date:'short'}}
- </div>
- <div class="flex-cell">[% l('Stop Fines Time') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.stop_fines_time() | date:'short'}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Renewal Workstation') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_renewal_workstation()}}
+ </div>
+ <div class="flex-cell">[% l('Renewal Workstation') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ_summary.last_renewal_workstation()}}
</div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Checkin Time') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_checkin_time() | date:'short'}}
- </div>
- <div class="flex-cell">[% l('Checkin Time') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.checkin_time() | date:'short'}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Stop Fines Reason') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_stop_fines()}}
</div>
+ <div class="flex-cell">[% l('Stop Fines Reason') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.stop_fines()}}
+ </div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Checkin Scan Time') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_checkin_scan_time() | date:'short'}}
- </div>
- <div class="flex-cell">[% l('Checkin Scan Time') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.checkin_scan_time() | date:'short'}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Stop Fines Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_stop_fines_time() | date:'short'}}
+ </div>
+ <div class="flex-cell">[% l('Stop Fines Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.stop_fines_time() | date:'short'}}
</div>
+ </div>
- <div class="flex-row">
- <div class="flex-cell">[% l('Checkin Workstation') %]</div>
- <div class="flex-cell flex-cell-well">
- {{prev_circ_summary.last_checkin_workstation()}}
- </div>
- <div class="flex-cell">[% l('Checkin Workstation') %]</div>
- <div class="flex-cell flex-cell-well">
- {{circ.checkin_workstation.name()}}
- </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Checkin Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_checkin_time() | date:'short'}}
</div>
+ <div class="flex-cell">[% l('Checkin Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.checkin_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Checkin Scan Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_checkin_scan_time() | date:'short'}}
+ </div>
+ <div class="flex-cell">[% l('Checkin Scan Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.checkin_scan_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Checkin Workstation') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{prev_circ_summary.last_checkin_workstation()}}
+ </div>
+ <div class="flex-cell">[% l('Checkin Workstation') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{circ.checkin_workstation.name()}}
+ </div>
+ </div>
</div>
-<h1>summary</h1>
+<div class="col-md-6" ng-show="!hold">
+ <div class="alert alert-info">
+ [% l('Item is not captured for a hold') %]
+ </div>
+</div>
+<div class="col-md-6" ng-show="hold">
+ <div class="flex-row">
+ <div class="flex-cell flex-2 header-label-big">
+ [% l('Captured Hold Info') %]
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Patron') %]</div>
+ <div class="flex-cell flex-cell-well">
+ <a href="./circ/patron/{{hold.usr().id()}}/checkout"
+ ng-if="hold" target="_self">
+ [% l('[_1], [_2] [_3] : [_4]',
+ '{{hold.usr().family_name()}}'
+ '{{hold.usr().first_given_name()}}'
+ '{{hold.usr().second_given_name()}}'
+ '{{hold.usr().card().barcode()}}') %]
+ </a>
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Requestor') %]</div>
+ <div class="flex-cell flex-cell-well">
+ <a href="./circ/patron/{{hold.requestor().id()}}/checkout"
+ ng-if="hold" target="_self">
+ [% l('[_1], [_2] [_3] : [_4]',
+ '{{hold.requestor().family_name()}}'
+ '{{hold.requestor().first_given_name()}}'
+ '{{hold.requestor().second_given_name()}}'
+ '{{hold.requestor().card().barcode()}}') %]
+ </a>
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Pickup Lib') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.pickup_lib().shortname()}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Current Shelf Lib') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.current_shelf_lib().shortname()}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Request Date') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.request_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Capture Date') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.capture_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Shelf Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.shelf_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Shelf Expire Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.shelf_expire_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Hold Expire Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.expire_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Behind Desk') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{hold.behind_desk()}}
+ </div>
+ </div>
+</div>
+
+<div class="col-md-6" ng-show="!transit">
+ <div class="alert alert-info">
+ [% l('Item has not transited') %]
+ </div>
+</div>
+
+<div class="col-md-6" ng-show="transit">
+ <div class="flex-row">
+ <div class="flex-cell flex-2 header-label-big">
+ [% l('Most Recent Transit') %]
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Transit Source') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{transit.source().shortname()}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Transit Destination') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{transit.dest().shortname()}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Transit Send Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{transit.source_send_time() | date:'short'}}
+ </div>
+ </div>
+ <div class="flex-row">
+ <div class="flex-cell">[% l('Transit Receive Time') %]</div>
+ <div class="flex-cell flex-cell-well">
+ {{transit.source_recv_time() | date:'short'}}
+ </div>
+ </div>
+</div>
+
limit : 1
}
- ).then(function(circ) {
- if (!circ) return;
-
+ ).then(null, null, function(circ) {
$scope.circ = circ;
// load the chain for this circ
'open-ils.circ',
'open-ils.circ.prev_renewal_chain.retrieve_by_circ.summary',
egCore.auth.token(), $scope.circ.id()
- ).then(function(summary) {
+
+ ).then(null, null, function(summary) {
$scope.prev_circ_summary = summary.summary;
- return summary.usr;
- }).then(function(user_id) {
- return egCore.pcrud.retrieve('au', user_id,
- {flesh : 1, flesh_fields : {au : ['card']}});
- }).then(function(user) {
- $scope.prev_circ_usr = user;
+
+ egCore.pcrud.retrieve('au', summary.usr,
+ {flesh : 1, flesh_fields : {au : ['card']}})
+
+ .then(function(user) {
+ $scope.prev_circ_usr = user;
+ });
});
});
}
});
}
+ function loadHolds() {
+ delete $scope.hold;
+
+ egCore.pcrud.search('ahr',
+ { current_copy : copyId,
+ cancel_time : null,
+ fulfillment_time : null,
+ capture_time : {'<>' : null}
+ }, {
+ flesh : 2,
+ flesh_fields : {
+ ahr : ['requestor', 'usr'],
+ au : ['card']
+ }
+ }
+ ).then(null, null, function(hold) {
+ $scope.hold = hold;
+ hold.pickup_lib(egCore.org.get(hold.pickup_lib()));
+ if (hold.current_shelf_lib()) {
+ hold.current_shelf_lib(
+ egCore.org.get(hold.current_shelf_lib()));
+ }
+ hold.behind_desk(Boolean(hold.behind_desk() == 't'));
+ });
+ }
+
+ function loadTransits() {
+ delete $scope.transit;
+ delete $scope.hold_transit;
+
+ egCore.pcrud.search('atc',
+ {target_copy : copyId},
+ {order_by : {atc : 'source_send_time DESC'}}
+
+ ).then(null, null, function(transit) {
+ $scope.transit = transit;
+ transit.source(egCore.org.get(transit.source()));
+ transit.dest(egCore.org.get(transit.dest()));
+ })
+ }
+
// we don't need all data on all tabs, so fetch what's needed when needed.
function loadTabData() {
case 'circs':
loadCurrentCirc(true);
break;
+
+ case 'holds':
+ loadHolds()
+ loadTransits();
+ break;
}
}