From: Mike Rylander Date: Tue, 1 Sep 2015 19:17:01 +0000 (-0400) Subject: webstaff: Track and update part info X-Git-Tag: sprint4-merge-nov22~1007 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ee918900a91d239d0b58f190c5b3984408326982;p=working%2FEvergreen.git webstaff: Track and update part info Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Jason Stephenson --- diff --git a/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 b/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 index b067b1943a..2d071d9e4d 100644 --- a/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 @@ -121,7 +121,7 @@ - diff --git a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js index 3dc59fcfae..cfe93f9d9f 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js @@ -212,21 +212,26 @@ function(egCore , $q) { $scope.updateBarcode = function () { $scope.copy.barcode($scope.barcode); $scope.copy.ischanged(1); }; $scope.updateCopyNo = function () { $scope.copy.copy_number($scope.copy_number); $scope.copy.ischanged(1); }; $scope.updatePart = function () { - var p = $scope.part_list.filter(function (x) { - return x.label() == $scope.part - }); - if (p.length > 0) { // preexisting part - $scope.copy.parts(p) - } else { // create one... - var part = new egCore.idl.bmp(); - part.id( --$scope.new_part_id ); - part.isnew( true ); - part.label( $scope.part ); - part.record( $scope.callNumber.owning_lib() ); - $scope.copy.parts([part]); - $scope.copy.ischanged(1); + if ($scope.part) { + var p = $scope.part_list.filter(function (x) { + return x.label() == $scope.part + }); + if (p.length > 0) { // preexisting part + $scope.copy.parts(p) + } else { // create one... + var part = new egCore.idl.bmp(); + part.id( --$scope.new_part_id ); + part.isnew( true ); + part.label( $scope.part ); + part.record( $scope.callNumber.owning_lib() ); + $scope.copy.parts([part]); + $scope.copy.ischanged(1); + } + } else { + $scope.copy.parts([]); } } + $scope.$watch('part', $scope.updatePart); $scope.barcode = $scope.copy.barcode(); $scope.copy_number = $scope.copy.copy_number(); @@ -242,6 +247,7 @@ function(egCore , $q) { itemSvc.get_parts($scope.callNumber.record()).then(function(list){ $scope.part_list = list; angular.forEach(list, function(p){ $scope.parts.push(p.label()) }); + $scope.parts = angluar.copy($scope.parts); }); } @@ -984,6 +990,35 @@ function($scope , $q , $routeParams , $location , $timeout , egCore , egNet , eg createSimpleUpdateWatcher('opac_visible'); createSimpleUpdateWatcher('ref'); + $scope.saveCompletedCopies = function () { + var cnHash = {}; + var perCnCopies = {}; + angular.forEach( $scope.completed_copies, function (cp) { + var cn_id = cp.call_number().id(); + if (!cnHash[cn_id]) { + cnHash[cn_id] = cp.call_number(); + perCnCopies[cn_id] = [cp]; + } else { + perCnCopies[cn_id].push(cp); + } + }); + + angular.forEach(perCnCopies, function (v, k) { + cnHash[k].copies(v); + }); + + cnList = []; + angular.forEach(cnHash, function (v, k) { + cnList.push(v); + }); + + egCore.net.request( + 'open-ils.cat', + 'open-ils.cat.asset.volume.fleshed.batch.update.override', + cnList, 1, { auto_merge_vols : 1, create_parts : 1 } + ); + } + } }])