proper support for counting short-duration overdue circs
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 26 Jun 2008 00:55:58 +0000 (00:55 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 26 Jun 2008 00:55:58 +0000 (00:55 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@9931 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm

index cc1d3ec..8cd9f24 100644 (file)
@@ -56,6 +56,12 @@ sub usr_breakdown_out {
                        SELECT  id
                          FROM  action.circulation
                          WHERE usr = ? AND checkin_time IS NULL AND due_date >= 'today' AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE'))
+                         WHERE usr = ?
+                    AND checkin_time IS NULL
+                    AND (  (fine_interval >= '1 day' AND due_date >= 'today')
+                        OR (fine_interval < '1 day'  AND due_date > 'now'   ))
+                    AND (stop_fines IS NULL
+                        OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE'))
        SQL
 
        my $out = actor::user->db_Main->selectcol_arrayref($out_sql, {}, $usr);
@@ -63,7 +69,12 @@ sub usr_breakdown_out {
        my $od_sql = <<"        SQL";
                        SELECT  id
                          FROM  action.circulation
-                         WHERE usr = ? AND checkin_time IS NULL AND due_date < 'today' AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE'))
+                         WHERE usr = ?
+                    AND checkin_time IS NULL
+                    AND (  (fine_interval >= '1 day' AND due_date < 'today')
+                        OR (fine_interval < '1 day'  AND due_date < 'now'  ))
+                    AND (stop_fines IS NULL
+                        OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE'))
        SQL
 
        my $od = actor::user->db_Main->selectcol_arrayref($od_sql, {}, $usr);