Fix Hold Note creation in staff client by replacing permacrud call with a cstore...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 Oct 2009 07:35:53 +0000 (07:35 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 Oct 2009 07:35:53 +0000 (07:35 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@14414 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm
Open-ILS/xul/staff_client/chrome/content/main/constants.js
Open-ILS/xul/staff_client/server/patron/hold_details.js

index d640772..020f99a 100644 (file)
@@ -958,6 +958,34 @@ sub create_hold_notify {
    return $note->id;
 }
 
+__PACKAGE__->register_method (
+       method          => 'create_hold_note',
+       api_name                => 'open-ils.circ.hold_note.create',
+       signature       => q/
+               Creates a new hold request note object
+               @param authtoken The login session key
+               @param note The hold note object to create
+               @return ID of the new object on success, Event on error
+               /
+);
+
+sub create_hold_note {
+   my( $self, $conn, $auth, $note ) = @_;
+   my $e = new_editor(authtoken=>$auth, xact=>1);
+   return $e->die_event unless $e->checkauth;
+
+   my $hold = $e->retrieve_action_hold_request($note->hold)
+      or return $e->die_event;
+   my $patron = $e->retrieve_actor_user($hold->usr) 
+      or return $e->die_event;
+
+   return $e->die_event unless 
+      $e->allowed('UPDATE_HOLD', $patron->home_ou); # FIXME: Using permcrud perm listed in fm_IDL.xml for ahrn.  Probably want something more specific
+
+   $e->create_action_hold_request_note($note) or return $e->die_event;
+   $e->commit;
+   return $note->id;
+}
 
 __PACKAGE__->register_method(
        method  => 'reset_hold',
index cd324f3..8c5f85f 100644 (file)
@@ -92,6 +92,7 @@ const api = {
        'FM_ACPN_DELETE' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.copy_note.delete', 'secure' : false },
        'FM_ACTSC_RETRIEVE_BATCH' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.stat_cat.actor.retrieve.batch', 'secure' : false },
        'FM_ACTSC_RETRIEVE_VIA_AOU' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.stat_cat.actor.retrieve.all', 'secure' : false },
+       'FM_AHRN_CREATE' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold_note.create' },
        'FM_AHN_CREATE' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold_notification.create' },
        'FM_AHN_RETRIEVE_VIA_AHR' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold_notification.retrieve_by_hold' },
        'FM_AHN_RETRIEVE_VIA_AHR.authoritative' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold_notification.retrieve_by_hold.authoritative' },
index 7f321d2..14eb6b4 100644 (file)
@@ -266,8 +266,8 @@ function new_note() {
             note.pub( get_bool( fancy_prompt_data.pub ) ? get_db_true() : get_db_false() );
             note.slip( get_bool( fancy_prompt_data.slip ) ? get_db_true() : get_db_false() );
             note.staff( true );
-            //var r = g.network.simple_request('FM_AHN_CREATE',[ ses(), notification ]); if (typeof r.ilsevent != 'undefined') throw(r);
-            g.pcrud.create(note);
+            var r = g.network.simple_request('FM_AHRN_CREATE',[ ses(), note ]); if (typeof r.ilsevent != 'undefined') throw(r);
+            //g.pcrud.create(note);
             setTimeout(function(){fetch_and_render_all();},0);
         }
     } catch(E) {