* Parent scope for list and detail views
*/
.controller('SearchCtrl',
- ['$scope','$location','$timeout','egCore','egGridDataProvider','egItem',
-function($scope , $location , $timeout , egCore , egGridDataProvider , itemSvc) {
+ ['$scope','$q','$window','$location','$timeout','egCore','egNet','egGridDataProvider','egItem',
+function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridDataProvider , itemSvc) {
$scope.args = {}; // search args
// sub-scopes (search / detail-view) apply their version
}]);
}
+ $scope.findAcquisition = function() {
+ var acqData;
+ var promises = [];
+ $scope.openAcquisitionLineItem([$scope.args.copyId]);
+ }
+
+ $scope.openAcquisitionLineItem = function (cp_list) {
+ var hasResults = false;
+ var promises = [];
+
+ angular.forEach(cp_list, function (copyId) {
+ promises.push(
+ egNet.request(
+ 'open-ils.acq',
+ 'open-ils.acq.lineitem.retrieve.by_copy_id',
+ egCore.auth.token(),
+ copyId
+ ).then(function (acqData) {
+ if (acqData) {
+ if (acqData.a) {
+ acqData = egCore.idl.toHash(acqData);
+ var url = '/eg/acq/po/view/' + acqData.purchase_order + '/' + acqData.id;
+ $timeout(function () { $window.open(url, '_blank') });
+ hasResults = true;
+ }
+ }
+ })
+ )
+ });
+
+ $q.all(promises).then(function () {
+ !hasResults ? alert('There is no corresponding purchase order for this item.') : false;
+ });
+ }
+
$scope.requestItems = function() {
itemSvc.requestItems([$scope.args.copyId]);
}
+ $scope.update_inventory = function() {
+ itemSvc.updateInventory([$scope.args.copyId], null)
+ .then(function(res) {
+ $timeout(function() { location.href = location.href; }, 1000);
+ });
+ }
+
$scope.attach_to_peer_bib = function() {
itemSvc.attach_to_peer_bib([{
id : $scope.args.copyId,
.controller('ListCtrl',
['$scope','$q','$routeParams','$location','$timeout','$window','egCore',
'egGridDataProvider','egItem','egUser','$uibModal','egCirc','egConfirmDialog',
- 'egProgressDialog',
-function($scope , $q , $routeParams , $location , $timeout , $window , egCore ,
- egGridDataProvider , itemSvc , egUser , $uibModal , egCirc , egConfirmDialog,
- egProgressDialog) {
-
+ 'egProgressDialog', 'ngToast',
+// function($scope , $q , $routeParams , $location , $timeout , $window , egCore ,
+// egGridDataProvider , itemSvc , egUser , $uibModal , egCirc , egConfirmDialog,
+// egProgressDialog, ngToast) {
+ function($scope , $q , $routeParams , $location , $timeout , $window , egCore , egGridDataProvider , itemSvc , egUser , $uibModal , egCirc , egConfirmDialog,
+ egProgressDialog, ngToast) {
var copyId = [];
var cp_list = $routeParams.idList;
if (cp_list) {
itemSvc.add_copies_to_bucket(copy_list);
}
+ $scope.locateAcquisition = function() {
+ if (gatherSelectedHoldingsIds) {
+ var cp_list = gatherSelectedHoldingsIds();
+ if (cp_list) {
+ if (cp_list.length > 0) {
+ $scope.openAcquisitionLineItem(cp_list);
+ }
+ }
+ }
+ }
+
+ $scope.update_inventory = function() {
+ var copy_list = gatherSelectedHoldingsIds();
+ itemSvc.updateInventory(copy_list, $scope.gridControls.allItems()).then(function(res) {
+ if (res) {
+ $scope.gridControls.allItems(res);
+ ngToast.create(egCore.strings.SUCCESS_UPDATE_INVENTORY);
+ } else {
+ ngToast.warning(egCore.strings.FAIL_UPDATE_INVENTORY);
+ }
+ });
+ }
+
$scope.need_one_selected = function() {
var items = $scope.gridControls.selectedItems();
if (items.length == 1) return false;
});
}
+ $scope.show_in_catalog = function(){
+ itemSvc.show_in_catalog(copyGrid.selectedItems());
+ }
+
if (copyId.length > 0) {
itemSvc.fetch(null,copyId).then(
function() {
// regardless of whether it matches the current item.
if (!barcode && itemSvc.copy && itemSvc.copy.id() == copyId) {
$scope.copy = itemSvc.copy;
+ if (itemSvc.latest_inventory && itemSvc.latest_inventory.copy() == copyId) {
+ $scope.latest_inventory = itemSvc.latest_inventory;
+ }
$scope.copy_alert_count = itemSvc.copy.copy_alerts().filter(function(aca) {
return !aca.ack_time();
}).length;
var copy = res.copy;
itemSvc.copy = copy;
+ if (res.latest_inventory) itemSvc.latest_inventory = res.latest_inventory;
$scope.copy = copy;
+ $scope.latest_inventory = res.latest_inventory;
$scope.copy_alert_count = copy.copy_alerts().filter(function(aca) {
return !aca.ack_time();
}).length;
return c.year() == new Date().getFullYear();
});
- $scope.total_circs_this_year =
- this_year.length ? this_year[0].count() : 0;
+ $scope.total_circs_this_year = (function() {
+ total = 0;
+ if (this_year.length == 2) {
+ total = (Number(this_year[0].count()) + Number(this_year[1].count()));
+ } else if (this_year.length == 1) {
+ total = Number(this_year[0].count());
+ }
+ return total;
+ })();
var prev_year = counts.filter(function(c) {
return c.year() == new Date().getFullYear() - 1;
});
- $scope.total_circs_prev_year =
- prev_year.length ? prev_year[0].count() : 0;
+ $scope.total_circs_prev_year = (function() {
+ total = 0;
+ if (prev_year.length == 2) {
+ total = (Number(prev_year[0].count()) + Number(prev_year[1].count()));
+ } else if (prev_year.length == 1) {
+ total = Number(prev_year[0].count());
+ }
+ return total;
+ })();
});
}