added CircIsOverdue validator
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Mar 2009 17:27:32 +0000 (17:27 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Mar 2009 17:27:32 +0000 (17:27 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12352 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm

index d97b911..c8c7433 100644 (file)
@@ -1,4 +1,6 @@
 package OpenILS::Application::Trigger::Validator;
+use DateTime;
+use DateTime::Format::ISO8601;
 sub fourty_two { return 42 }
 sub NOOP_True { return 1 }
 sub NOOP_False { return 0 }
@@ -10,6 +12,16 @@ sub CircIsOpen {
     return defined($env->{target}->checkin_time) ? 0 : 1;
 }
 
+sub CircIsOverdue {
+    my $self;
+    my $env;
+    my $circ = $env->{target};
+    return 0 if $circ->checkin_time;
+    return 0 if $circ->stop_fines and not $circ->stop_fines =~ /MAXFINES|LONGOVERDUE/;
+    return 0 if DateTime::Format::ISO8601->new->parse_datetime($circ->due_date) < DateTime->now;
+    return 1;
+}
+
 sub HoldIsAvailable {
     my $self = shift;
     my $env = shift;