Minor modification to allow "backdated" checkouts to expired patrons. user/dyrcona/lp1222242-backdate-checkout-for-expired-patron
authorJason Stephenson <jstephenson@mvlc.org>
Sat, 7 Sep 2013 17:05:39 +0000 (13:05 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Sat, 7 Sep 2013 20:31:52 +0000 (16:31 -0400)
We add a $checkout_time variable to mk_env in Circulate.pm.  Then, we
check if the args include a checkout_time parameter.  If so we use
that when checking if the patron's account has expired.  If not we use
CORE::time to check for expiration.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm

index fd90e27..757e353 100644 (file)
@@ -813,9 +813,12 @@ sub mk_env {
     
         my $expire = DateTime::Format::ISO8601->new->parse_datetime(
             cleanse_ISO8601($patron->expire_date));
+
+        my $checkout_time = ($self->checkout_time) ? DateTime::Format::ISO8601->new->parse_datetime(cleanse_ISO8601($self->checkout_time))
+            : DateTime->from_epoch(epoch => CORE::time);
     
         $self->bail_on_events(OpenILS::Event->new('PATRON_ACCOUNT_EXPIRED'))
-            if( CORE::time > $expire->epoch ) ;
+            if( $checkout_time->epoch > $expire->epoch ) ;
     }
 }