selfcheck staff mode : non-transit hold slip
authorBill Erickson <berick@esilibrary.com>
Thu, 7 Feb 2013 14:31:56 +0000 (09:31 -0500)
committerBill Erickson <berick@esilibrary.com>
Thu, 7 Feb 2013 14:31:56 +0000 (09:31 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js

index 51ffd8d..3a40153 100644 (file)
@@ -1232,6 +1232,47 @@ SelfCheckManager.prototype.getUser = function(userId, callback) {
     });
 }
 
+// non-transit hold slip
+SelfCheckManager.prototype.printHoldSlip = function(item, result) {
+    var self = this;
+    var payload = result.payload;
+    var hold = payload.hold;
+
+    // in some cases, payload.patron is null even when there is a hold
+    this.getUser(hold.usr(), function(patron) {
+
+        var routeMsg = dojo.string.substitute(localeStrings.HOLD_SHELF, []);
+
+        var routeMsg = dojo.string.substitute(
+            localeStrings.ROUTE_MSG, [localeStrings.HOLD_SHELF]);
+
+        var holdMsg = dojo.string.substitute(
+            localeStrings.HOLD_SLIP, [
+                // checkin could be for a different user than this.patron
+                openils.User.formalName(payload.patron), 
+                patron.card().barcode(),
+                openils.Util.timeStamp(hold.request_time())
+            ]
+        );
+
+        self.printData(
+            dojo.string.substitute(
+                localeStrings.TRANSIT_SLIP, [
+                    routeMsg,
+                    '', // destination address
+                    item,
+                    result.payload.record.title(),
+                    result.payload.record.author(),
+                    holdMsg,
+                    dojo.date.locale.format(new Date()),
+                    self.staff.usrname(),
+                    fieldmapper.aou.findOrgUnit(self.staff.ws_ou()).shortname()
+                ]
+            ), 1
+        );
+    });
+}
+
 
 // hold transit slip
 SelfCheckManager.prototype.printHoldTransitSlip = function(item, result, dest) {
@@ -1325,13 +1366,19 @@ SelfCheckManager.prototype.handleCheckinResult = function(row, item, result) {
 
         displayText = dojo.string.substitute(
             localeStrings.CHECKIN_SUCCESS, [item]);
+
         this.displayCheckin(row, result);
+        if (payload.hold)
+            this.printHoldSlip(item, result);
 
     } else if (tc == 'NO_CHANGE') {
 
         displayText = dojo.string.substitute(
             localeStrings.CHECKIN_NO_CHANGE, [item]);
+
         this.displayCheckin(row, result);
+        if (payload.hold)
+            this.printHoldSlip(item, result);
 
     } else if (tc == 'ROUTE_ITEM') {