Ensure Circ library determination is made when Circ object exists user/khuckins/lp1861312-item-renwal-expired-patron
authorKyle Huckins <khuckins@catalyte.io>
Tue, 19 Jan 2021 17:59:33 +0000 (17:59 +0000)
committerKyle Huckins <khuckins@catalyte.io>
Tue, 19 Jan 2021 18:15:14 +0000 (18:15 +0000)
- Move circ_lib check to do_renew, after $circ object is created.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm

index 72f6b3c..4f1873a 100644 (file)
@@ -1025,13 +1025,7 @@ sub mk_env {
 
         # An expired patron can renew with the assistance of an OUS.
         if($self->opac_renewal or $self->auto_renewal) {
-            my $use_circ_lib = $self->editor->retrieve_config_global_flag('circ.opac_renewal.use_original_circ_lib');
-            if($use_circ_lib and $U->is_true($use_circ_lib->enabled)) {
-                $self->circ_lib($self->circ->circ_lib);
-            }
-            else {
-                $self->circ_lib($patron->home_ou);
-            }
+            $self->{allow_expired_renewal} = 1;
         }
 
         my $expire_setting = $U->ou_ancestor_setting_value($self->circ_lib, OILS_SETTING_ALLOW_RENEW_FOR_EXPIRED_PATRON);
@@ -4092,6 +4086,16 @@ sub do_renew {
             unless $self->editor->allowed('RENEW_CIRC', $circ->circ_lib);
     }
 
+    if($self->{allow_expired_renewal} == 1) {
+        my $use_circ_lib = $self->editor->retrieve_config_global_flag('circ.opac_renewal.use_original_circ_lib');
+        if($use_circ_lib and $U->is_true($use_circ_lib->enabled)) {
+            $self->circ_lib($self->circ->circ_lib);
+        }
+        else {
+            $self->circ_lib($self->patron->home_ou) if $self->patron;
+        }
+    }
+
     $self->push_events(OpenILS::Event->new('MAX_RENEWALS_REACHED'))
         if $circ->renewal_remaining < 1;