From d11be0e1d0c454e37adfd23ab9df309066aa64dd Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Tue, 8 Mar 2011 12:43:51 -0500 Subject: [PATCH] change result sent back from open-ils.cat.call_number.find_or_create to include whether the call number was created or already existed. this may be useful down the line for cleaning up vivicated call numbers --- Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm | 2 +- Open-ILS/xul/staff_client/chrome/content/cat/opac.js | 8 ++++---- Open-ILS/xul/staff_client/server/cat/copy_editor.js | 8 ++++---- Open-ILS/xul/staff_client/server/cat/util.js | 8 ++++---- Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js | 11 +++++++---- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm index 746ce78a55..31261947a5 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm @@ -1124,7 +1124,7 @@ sub find_or_create_volume { return $evt if $evt; $e->rollback if $exists; $e->commit if $vol; - return $vol->id; + return { 'acn_id' => $vol->id, 'existed' => $exists }; } diff --git a/Open-ILS/xul/staff_client/chrome/content/cat/opac.js b/Open-ILS/xul/staff_client/chrome/content/cat/opac.js index b5b15aba55..f8155943d0 100644 --- a/Open-ILS/xul/staff_client/chrome/content/cat/opac.js +++ b/Open-ILS/xul/staff_client/chrome/content/cat/opac.js @@ -172,13 +172,13 @@ function set_marc_edit() { JSAN.use('util.error'); error = new util.error(); JSAN.use('util.network'); var network = new util.network(); - var acn_id = network.simple_request( + var acn_blob = network.simple_request( 'FM_ACN_FIND_OR_CREATE', [ ses(), cn_label, doc_id, ses('ws_ou') ] ); - if (typeof acn_id.ilsevent != 'undefined') { - error.standard_unexpected_error_alert('Error in chrome/content/cat/opac.js, cat.util.fast_item_add', acn_id); + if (typeof acn_blob.ilsevent != 'undefined') { + error.standard_unexpected_error_alert('Error in chrome/content/cat/opac.js, cat.util.fast_item_add', acn_blob); return; } @@ -186,7 +186,7 @@ function set_marc_edit() { copy_obj.id( -1 ); copy_obj.isnew('1'); copy_obj.barcode( cp_barcode ); - copy_obj.call_number( acn_id ); + copy_obj.call_number( acn_blob.acn_id ); copy_obj.circ_lib( ses('ws_ou') ); /* FIXME -- use constants */ copy_obj.deposit(0); diff --git a/Open-ILS/xul/staff_client/server/cat/copy_editor.js b/Open-ILS/xul/staff_client/server/cat/copy_editor.js index b7b6d7e30e..116a21c99d 100644 --- a/Open-ILS/xul/staff_client/server/cat/copy_editor.js +++ b/Open-ILS/xul/staff_client/server/cat/copy_editor.js @@ -533,15 +533,15 @@ g.apply_owning_lib = function(ou_id) { g.map_acn[copy.call_number()] = volume; } var old_volume = g.map_acn[copy.call_number()]; - var acn_id = g.network.simple_request( + var acn_blob = g.network.simple_request( 'FM_ACN_FIND_OR_CREATE', [ses(),old_volume.label(),old_volume.record(),ou_id] ); - if (typeof acn_id.ilsevent != 'undefined') { - g.error.standard_unexpected_error_alert($('catStrings').getFormattedString('staff.cat.copy_editor.apply_owning_lib.call_number.error', [copy.barcode()]), acn_id); + if (typeof acn_blob.ilsevent != 'undefined') { + g.error.standard_unexpected_error_alert($('catStrings').getFormattedString('staff.cat.copy_editor.apply_owning_lib.call_number.error', [copy.barcode()]), acn_blob); continue; } - copy.call_number(acn_id); + copy.call_number(acn_blob.acn_id); copy.ischanged('1'); } catch(E) { g.error.standard_unexpected_error_alert('apply_stat_cat',E); diff --git a/Open-ILS/xul/staff_client/server/cat/util.js b/Open-ILS/xul/staff_client/server/cat/util.js index 5e70b3d3e0..818917ce6d 100644 --- a/Open-ILS/xul/staff_client/server/cat/util.js +++ b/Open-ILS/xul/staff_client/server/cat/util.js @@ -522,13 +522,13 @@ cat.util.fast_item_add = function(doc_id,cn_label,cp_barcode) { JSAN.use('util.error'); error = new util.error(); JSAN.use('util.network'); var network = new util.network(); - var acn_id = network.simple_request( + var acn_blob = network.simple_request( 'FM_ACN_FIND_OR_CREATE', [ ses(), cn_label, doc_id, ses('ws_ou') ] ); - if (typeof acn_id.ilsevent != 'undefined') { - error.standard_unexpected_error_alert($("catStrings").getFormattedString('staff.cat.volume_copy_creator.stash_and_close.problem_with_volume', [cn]), acn_id); + if (typeof acn_blob.ilsevent != 'undefined') { + error.standard_unexpected_error_alert($("catStrings").getFormattedString('staff.cat.volume_copy_creator.stash_and_close.problem_with_volume', [cn]), acn_blob); return; } @@ -536,7 +536,7 @@ cat.util.fast_item_add = function(doc_id,cn_label,cp_barcode) { copy_obj.id( -1 ); copy_obj.isnew('1'); copy_obj.barcode( cp_barcode ); - copy_obj.call_number( acn_id ); + copy_obj.call_number( acn_blob.acn_id ); copy_obj.circ_lib( ses('ws_ou') ); /* FIXME -- use constants */ copy_obj.deposit(0); diff --git a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js index 1fc76aa776..ff5998989c 100644 --- a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js +++ b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js @@ -754,16 +754,18 @@ g.gather_copies = function() { for (var ou_id in volumes_hash) { for (var cn_label in volumes_hash[ou_id]) { - var acn_id = g.network.simple_request( + var acn_blob = g.network.simple_request( 'FM_ACN_FIND_OR_CREATE', [ ses(), cn_label, g.doc_id, ou_id ] ); - if (typeof acn_id.ilsevent != 'undefined') { - g.error.standard_unexpected_error_alert($("catStrings").getFormattedString('staff.cat.volume_copy_creator.stash_and_close.problem_with_volume', [cn]), acn_id); + if (typeof acn_blob.ilsevent != 'undefined') { + g.error.standard_unexpected_error_alert($("catStrings").getFormattedString('staff.cat.volume_copy_creator.stash_and_close.problem_with_volume', [cn]), acn_blob); continue; } + var acn_id = acn_blob.acn_id; + var my_acn; if (typeof g.acn_map[ acn_id ] == 'undefined') { my_acn = g.network.simple_request( @@ -780,7 +782,8 @@ g.gather_copies = function() { volume_data[ acn_id ] = { 'label' : cn_label, - 'owning_lib' : ou_id + 'owning_lib' : ou_id, + 'existed' : acn_blob.existed }; for (var i in volumes_hash[ou_id][cn_label].call_number_data) { volume_data[ acn_id ][ i ] = volumes_hash[ou_id][cn_label].call_number_data[i]; -- 2.11.0