updated hold permit to check correct lib, inserting location into script env
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 25 Aug 2006 13:43:53 +0000 (13:43 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 25 Aug 2006 13:43:53 +0000 (13:43 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5670 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/javascript/backend/circ/circ_lib.js
Open-ILS/src/javascript/backend/circ/circ_permit_copy.js
Open-ILS/src/javascript/backend/circ/circ_permit_hold.js
Open-ILS/src/perlmods/OpenILS/Application/Circ/ScriptBuilder.pm

index a0fbe11..32f13a1 100644 (file)
@@ -38,6 +38,7 @@ var patronOverdueCount        = environment.patronOverdueCount;
 var patronFines                = environment.patronFines;
 var isRenewal                  = environment.isRenewal;
 var isPrecat                   = environment.isPrecat;
+var currentLocation    = environment.location;
 
 
 
index 89e7e99..bd861f8 100644 (file)
@@ -28,8 +28,7 @@ if( ! isTrue(isRenewal) ) {
        but it should at least require an override */
 
 
-if( getMARCItemType() == 'g' 
-       && copy.circ_lib.id != patron.home_ou.id )
+if( getMARCItemType() == 'g' && copy.circ_lib.id != currentLocation.id )
        result.events.push('CIRC_EXCEEDS_COPY_RANGE');
 
 
index 05038b6..5a372d3 100644 (file)
@@ -6,16 +6,26 @@ log_vars('circ_permit_hold');
 if( isTrue(patron.barred) ) 
        result.events.push('PATRON_BARRED');
 
-if( copy.circ_modifier == 'bestsellernh' )
-       result.events.push('ITEM_NOT_HOLDABLE');
-
 /* projected medium 
        this needs to be expanded to check circ_modifiers as well
 */
 
-if( getMARCItemType() == 'g' &&
+var mod = (copy.circ_modifier) ? copy.circ_modifier.toLowerCase() : "";
+
+
+if( mod == 'bestsellernh' )
+       result.events.push('ITEM_NOT_HOLDABLE');
+
+if( ( getMARCItemType() == 'g' || 
+               mod == 'audiobook' || 
+               mod == 'av' || 
+               mod == 'cd' || 
+               mod == 'dvd' || 
+               mod == 'video' ) &&
+
                !isOrgDescendent(copy.circ_lib.shortname, patron.home_ou.id) )
-       result.events.push('CIRC_EXCEEDS_COPY_RANGE');
+
+       result.events.push('ITEM_NOT_HOLDABLE');
 
 } go();
 
index b2d5761..b1d424b 100644 (file)
@@ -78,6 +78,8 @@ sub build_runner {
        $runner->insert( "$evt.volume",         $ctx->{volume}, 1);
        $runner->insert( "$evt.title",          $ctx->{title}, 1);
        $runner->insert( "$evt.requestor",      $ctx->{requestor}, 1);
+       $runner->insert( "$evt.location",       
+               $editor->retrieve_actor_org_unit($ctx->{requestor}->ws_ou), 1);
 
        $runner->insert( "$evt.patronItemsOut", $ctx->{patronItemsOut}, 1 );
        $runner->insert( "$evt.patronOverdueCount", $ctx->{patronOverdue}, 1 );