From d8e024fd1fe3eeeb2d9dd071fb290f57a40f503a Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 25 Aug 2006 13:43:53 +0000 Subject: [PATCH] updated hold permit to check correct lib, inserting location into script env git-svn-id: svn://svn.open-ils.org/ILS/trunk@5670 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/javascript/backend/circ/circ_lib.js | 1 + .../backend/circ/circ_permit_copy.js | 3 +-- .../backend/circ/circ_permit_hold.js | 20 ++++++++++++++----- .../OpenILS/Application/Circ/ScriptBuilder.pm | 2 ++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Open-ILS/src/javascript/backend/circ/circ_lib.js b/Open-ILS/src/javascript/backend/circ/circ_lib.js index a0fbe119cd..32f13a1b0f 100644 --- a/Open-ILS/src/javascript/backend/circ/circ_lib.js +++ b/Open-ILS/src/javascript/backend/circ/circ_lib.js @@ -38,6 +38,7 @@ var patronOverdueCount = environment.patronOverdueCount; var patronFines = environment.patronFines; var isRenewal = environment.isRenewal; var isPrecat = environment.isPrecat; +var currentLocation = environment.location; diff --git a/Open-ILS/src/javascript/backend/circ/circ_permit_copy.js b/Open-ILS/src/javascript/backend/circ/circ_permit_copy.js index 89e7e99ec3..bd861f8bde 100644 --- a/Open-ILS/src/javascript/backend/circ/circ_permit_copy.js +++ b/Open-ILS/src/javascript/backend/circ/circ_permit_copy.js @@ -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'); diff --git a/Open-ILS/src/javascript/backend/circ/circ_permit_hold.js b/Open-ILS/src/javascript/backend/circ/circ_permit_hold.js index 05038b66b3..5a372d3d7a 100644 --- a/Open-ILS/src/javascript/backend/circ/circ_permit_hold.js +++ b/Open-ILS/src/javascript/backend/circ/circ_permit_hold.js @@ -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(); diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/ScriptBuilder.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/ScriptBuilder.pm index b2d57616b7..b1d424bfa8 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/ScriptBuilder.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/ScriptBuilder.pm @@ -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 ); -- 2.43.2