Separate the readers from the writer to avoid transaction race fun
authordbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 22 Jul 2010 18:55:03 +0000 (18:55 +0000)
committerdbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 22 Jul 2010 18:55:03 +0000 (18:55 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/branches/rel_1_6_0@936 6d9bc8c9-1ec2-4278-b937-99fde70a366f

web/js/ui/default/cat/storage/move.js

index f595a25..24e9a7b 100644 (file)
@@ -5,6 +5,7 @@ dojo.require('openils.CGI');
 dojo.require('openils.XUL');
 
 var pcrud;
+var pcrudRead;
 var staff;
 var copy;
 var volume;
@@ -18,6 +19,7 @@ if(!window.xulG) var xulG = null;
 function load() {
     staff = new openils.User().user;
     pcrud = new openils.PermaCrud();
+    pcrudRead = new openils.PermaCrud();
     cgi = new openils.CGI();
     var barcode = cgi.param('barcode');
 
@@ -43,20 +45,21 @@ function moveCopy(barcode) {
         return;
     }
 
-    copy = fieldmapper.standardRequest(
-        ['open-ils.search', 'open-ils.search.asset.copy.find_by_barcode'],
-        {params: [barcode]}
-    );
+    copy = pcrud.search('acp', {"barcode":barcode});
+    // There can be only one copy
+    copy = copy[0];
     if (!copy.location) {
        dojo.place('<div class="alert">Barcode [' + barcode + '] was not found!</div>', 'resultsDiv', 'only');
        return;
     }
+
     copy.location(152);
     copy.ischanged(1);
     pcrud.update(copy);
 
-    volume = pcrud.retrieve("acn", copy.call_number());
-    record = pcrud.retrieve("bre", volume.record());
+    volume = pcrudRead.retrieve("acn", copy.call_number());
+    record = pcrudRead.retrieve("bre", volume.record());
+
     dojo.place("<div class='barcode'>" + copy.barcode() + "</div>", 'resultsDiv', 'only');
     dojo.place("<div class='call_number'>" + volume.label() + "</div>", 'resultsDiv', 'last');
     dojo.place("<div style='display:none'>" + record.marc() + "</div>", dojo.body(), 'last');