change result sent back from open-ils.cat.call_number.find_or_create to include wheth...
authorJason Etheridge <jason@esilibrary.com>
Tue, 8 Mar 2011 17:43:51 +0000 (12:43 -0500)
committerJason Etheridge <jason@esilibrary.com>
Tue, 8 Mar 2011 17:43:51 +0000 (12:43 -0500)
Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm
Open-ILS/xul/staff_client/chrome/content/cat/opac.js
Open-ILS/xul/staff_client/server/cat/copy_editor.js
Open-ILS/xul/staff_client/server/cat/util.js
Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js

index 746ce78..3126194 100644 (file)
@@ -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 };
 }
 
 
index b5b15ab..f815594 100644 (file)
@@ -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);
index b7b6d7e..116a21c 100644 (file)
@@ -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);
index 5e70b3d..818917c 100644 (file)
@@ -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);
index 1fc76aa..ff59989 100644 (file)
@@ -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];