From: senator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Thu, 26 Aug 2010 14:39:59 +0000 (+0000)
Subject: Fix OPAC renewals, broken by an imperfect booking test.
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=01f27070b56eb260682e52821115c50d17769106;p=evergreen%2Ftadl.git

Fix OPAC renewals, broken by an imperfect booking test.


git-svn-id: svn://svn.open-ils.org/ILS/trunk@17346 dcc99617-32d9-48b4-a31d-7c20da2025e4
---

diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
index 70c025a0cd..eb62f30af6 100644
--- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
+++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
@@ -238,7 +238,18 @@ sub run_method {
     # Go ahead and load the script runner to make sure we have all 
     # of the objects we need
     # --------------------------------------------------------------------------
-    $circulator->is_res_checkin($circulator->is_checkin(1)) if $api =~ /reservation.return/ or $circulator->seems_like_reservation();
+
+    # XXX I wanted to make this better so it might support blocking renewals
+    # if a reservation has been placed on an item, but that will need more
+    # design, as institutions will differ in their policy on that.  In the
+    # meantime making sure we're trying some kind of checkin will at least
+    # keep OPAC renewals from breaking since patrons don't have VIEW_USER...
+
+    $circulator->is_res_checkin($circulator->is_checkin(1))
+        if $api =~ /reservation.return/ or (
+            $api =~ /checkin/ and $circulator->seems_like_reservation()
+        );
+
     $circulator->is_res_checkout(1) if $api =~ /reservation.pickup/;
 
     $circulator->is_renewal(1) if $api =~ /renew/;