"CHECKIN_NO_CHANGE" : "No change on checkin for ${0}",
"CHECKIN_ROUTE_ITEM" : "Item ${0} should be routed to ${1}",
"CHECKOUT_PROMPT" : "Please an item barcode to check out",
- "CHECKIN_PROMPT" : "Please an item barcode to check in"
+ "CHECKIN_PROMPT" : "Please an item barcode to check in",
+ "TRANSIT_RECEIPT" : "This item needs to be routed to ${0}:<br/>${1}<br/>"+
+ "${2}<br/><br/>Barcode: ${3}<br/>Title: ${4}<br/>Author: ${5}"+
+ "<br/><br/>Slip Date: ${6}<br/>Printed by ${7} at ${8}"
}
// true if we are exposing staff-only features (e.g. checkin)
this.staffMode = false;
+ // maps copy status IDs to status objects
this.copyStatusMap = {};
+ // maps org unit IDs to their mailing addresses
+ this.orgUnitAddrMap = {};
+
// Construct a mock checkout for debugging purposes
if(this.mockCheckouts = this.cgi.param('mock-circ')) {
}
}
+SelfCheckManager.prototype.getOrgMailingAddress = function(orgId, callback) {
+ if (this.orgUnitAddrMap[orgId]) {
+ callback(this.orgUnitAddrMap[orgId]);
+ return;
+ }
+
+ var self = this;
+ var pcrud = new openils.PermaCrud();
+ pcrud.retrieve('aou', orgId, {
+ flesh : 1,
+ flesh_fields : {aou : ['mailing_address', 'billing_address']},
+ async : true,
+ oncomplete : function(r) {
+ var org = openils.Util.readResponse(r);
+ var addr = org.mailing_address() || org.billing_address();
+ self.orgUnitAddrMap[orgId] = addr;
+ callback(self.orgUnitAddrMap[orgId]);
+ }
+ });
+}
+
+SelfCheckManager.prototype.printTransitSlip = function(item, result, dest) {
+ var self = this;
+
+ this.getOrgMailingAddress(dest.id(), function(addr) {
+ self.printData(
+ dojo.string.substitute(
+ localeStrings.TRANSIT_RECEIPT, [
+ dest.shortname(),
+ dest.name(),
+ dojo.string.substitute(localeStrings.ADDRESS, [
+ addr.street1(),
+ addr.street2() || '',
+ addr.city(),
+ addr.state(),
+ addr.post_code()
+ ]),
+ item,
+ result.payload.record.title(),
+ result.payload.record.author(),
+ new Date().toString(),
+ self.staff.usrname(),
+ fieldmapper.aou.findOrgUnit(self.staff.ws_ou()).shortname()
+ ]
+ ), 1
+ );
+ });
+}
+
+
+
+
SelfCheckManager.prototype.handleCheckinResult = function(row, item, result) {
var displayText = '';
var popup = false;
} else if (tc == 'ROUTE_ITEM') {
- var outcomeText;
- if (result.source.org) {
- var sn = fieldmapper.aou.findOrgUnit(result.source.org).shortname();
- displayText = dojo.string.substitute(
- localeStrings.CHECKIN_ROUTE_ITEM, [item, sn]);
- outcomeText = tc + ' => ' + sn;
- }
+ var dest = fieldmapper.aou.findOrgUnit(result.source.org);
+
+ displayText = dojo.string.substitute(
+ localeStrings.CHECKIN_ROUTE_ITEM, [item, dest.shortname()]);
+
+ this.displayCheckin(row, result, tc + ' => ' + dest.shortname());
- this.displayCheckin(row, result, outcomeText);
+ this.printTransitSlip(item, result, dest);
} else if (tc == 'ASSET_COPY_NOT_FOUND') {