From 7c01c83610b8685016436f715b9bd306dc5c152a Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Thu, 25 May 2017 13:16:02 -0400 Subject: [PATCH] webstaff: make bind/receive smarter; allow individual item receive/bind selection in modal Signed-off-by: Mike Rylander --- .../templates/staff/serials/t_batch_receive.tt2 | 53 +++++++++++++--------- .../js/ui/default/staff/serials/services/core.js | 24 ++++++---- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/Open-ILS/src/templates/staff/serials/t_batch_receive.tt2 b/Open-ILS/src/templates/staff/serials/t_batch_receive.tt2 index 409f62b868..17559e19d7 100644 --- a/Open-ILS/src/templates/staff/serials/t_batch_receive.tt2 +++ b/Open-ILS/src/templates/staff/serials/t_batch_receive.tt2 @@ -2,7 +2,8 @@
-
+
[% l('Library : Distribution/Stream') %]
[% l('Issuance') %]
-
+
[% l('Copy location') %]
-
+
[% l('Call number') %]
[% l('Circulation modifier') %]
-
+
+ [% l('Barcode') %] +
+
+ [% l('Receive') %] + [% l('Include') %] +
[% l('Routing List') %]
-
-
+
+
-
+
-
+
-
+
+
[% l('Apply') %]
@@ -91,28 +99,28 @@
-
+
{{item.stream().distribution().holding_lib().name()}}: {{item.stream().distribution().label()}}/{{item.stream().routing_label()}}
{{item.issuance().label()}}
-
+
-
- +
+
-
+
- + ng-required="item._receive && !bind_or_none($index)" eg-enter="focus_next_barcode($index)"/> +
+
+
- +
diff --git a/Open-ILS/web/js/ui/default/staff/serials/services/core.js b/Open-ILS/web/js/ui/default/staff/serials/services/core.js index de958beb7f..0a02ffe628 100644 --- a/Open-ILS/web/js/ui/default/staff/serials/services/core.js +++ b/Open-ILS/web/js/ui/default/staff/serials/services/core.js @@ -801,6 +801,8 @@ function(egCore , orderByFilter , $q , $filter , $uibModal , ngToast , egConfirm if ($scope.print_routing_lists && !$scope.cannot_print(index)) i._print_routing_list = true; + + i._receive = true; }); pile_o_promises.push(egCore.pcrud.search( @@ -887,6 +889,19 @@ function(egCore , orderByFilter , $q , $filter , $uibModal , ngToast , egConfirm last_promise.then(function (items) { + var method; + if (mode == 'receive') { + method = 'open-ils.serial.receive_items'; + items = items.filter(function(i){return i._receive}); + } else if ( mode == 'bind') { + method = 'open-ils.serial.bind_items'; + items = items.filter(function(i){return i._receive}); + } else if ( mode == 'reset') { + method = 'open-ils.serial.reset_items'; + } + + if (!items.length) return $q.reject(); + var donor_unit_ids = {}; angular.forEach(items, function(i, index) { if (i.unit()) donor_unit_ids[i.unit().id()] = 1; @@ -899,15 +914,6 @@ function(egCore , orderByFilter , $q , $filter , $uibModal , ngToast , egConfirm if (bind && index > 0) barcodes[i.id()] = items[0]._barcode; }); - var method; - if (mode == 'receive') { - method = 'open-ils.serial.receive_items'; - } else if ( mode == 'bind') { - method = 'open-ils.serial.bind_items'; - } else if ( mode == 'reset') { - method = 'open-ils.serial.reset_items'; - } - return egCore.net.request( 'open-ils.serial', method, egCore.auth.token(), items, barcodes, call_numbers, donor_unit_ids, -- 2.11.0