LP#980296: Update void on claims returned for longoverdue status.
authorJason Stephenson <jason@sigio.com>
Sun, 7 Dec 2014 18:41:42 +0000 (13:41 -0500)
committerBen Shum <bshum@biblio.org>
Tue, 13 Jan 2015 21:58:40 +0000 (16:58 -0500)
We add settings for voiding longoverdue fees on claims returned.

We modify code in Circ.pm to check those settings and void those
bills when a circulation is claims returned.

We also make some logical repairs to the new void_lost function
in CircCommon.pm and to event handling where that function is
called in set_circ_claims_returned in Circ.pm.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql

index 8cbe1b6..adf6af2 100644 (file)
@@ -483,7 +483,10 @@ sub set_circ_claims_returned {
             $circ,
             3
         );
-        return $result if ($result);
+        if ($result) {
+            $e->rollback;
+            return $result;
+        }
     }
 
     # Check if the copy circ lib wants lost processing fees voided on
@@ -494,7 +497,38 @@ sub set_circ_claims_returned {
             $circ,
             4
         );
-        return $result if ($result);
+        if ($result) {
+            $e->rollback;
+            return $result;
+        }
+    }
+
+    # Check if the copy circ lib wants longoverdue fees voided on claims
+    # returned.
+    if ($U->is_true($U->ou_ancestor_setting_value($copy->circ_lib, 'circ.void_longoverdue_on_claimsreturned', $e))) {
+        my $result = OpenILS::Application::Circ::CircCommon->void_lost(
+            $e,
+            $circ,
+            10
+        );
+        if ($result) {
+            $e->rollback;
+            return $result;
+        }
+    }
+
+    # Check if the copy circ lib wants longoverdue processing fees voided on
+    # claims returned.
+    if ($U->is_true($U->ou_ancestor_setting_value($copy->circ_lib, 'circ.void_longoverdue_proc_fee_on_claimsreturned', $e))) {
+        my $result = OpenILS::Application::Circ::CircCommon->void_lost(
+            $e,
+            $circ,
+            11
+        );
+        if ($result) {
+            $e->rollback;
+            return $result;
+        }
     }
 
     $e->commit;
index f4bfed9..f2d5aa5 100644 (file)
@@ -81,7 +81,8 @@ sub void_lost {
     my $bills = $e->search_money_billing(
         {
             xact => $circ->id,
-            btype => $btype
+            btype => $btype,
+            voided => 'f'
         }
     );
 
index cace52b..0f0e9f3 100644 (file)
@@ -14155,3 +14155,25 @@ INSERT INTO config.org_unit_setting_type
              'Void lost item processing fee when claims returned',
              'coust', 'description'),
          'bool');
+
+INSERT INTO config.org_unit_setting_type
+    (name, grp, label, description, datatype)
+    VALUES
+        ('circ.void_longoverdue_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_longoverdue_on_claimsreturned',
+             'Void longoverdue item billing when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_longoverdue_on_claimsreturned',
+             'Void long overdue item billing when claims returned',
+             'coust', 'description'),
+         'bool'),
+        ('circ.void_longoverdue_proc_fee_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_longoverdue_proc_fee_on_claimsreturned',
+             'Void longoverdue item processing fee when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_longoverdue_proc_fee_on_claimsreturned',
+             'Void long overdue item processing fee when claims returned',
+             'coust', 'description'),
+         'bool');
index e811484..ebd170c 100644 (file)
@@ -1,6 +1,6 @@
 BEGIN;
 
-SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+--SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
 
 INSERT INTO config.org_unit_setting_type
     (name, grp, label, description, datatype)
@@ -24,4 +24,26 @@ INSERT INTO config.org_unit_setting_type
              'coust', 'description'),
          'bool');
 
+INSERT INTO config.org_unit_setting_type
+    (name, grp, label, description, datatype)
+    VALUES
+        ('circ.void_longoverdue_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_longoverdue_on_claimsreturned',
+             'Void long overdue item billing when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_longoverdue_on_claimsreturned',
+             'Void long overdue item billing when claims returned',
+             'coust', 'description'),
+         'bool'),
+        ('circ.void_longoverdue_proc_fee_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_longoverdue_proc_fee_on_claimsreturned',
+             'Void long overdue item processing fee when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_longoverdue_proc_fee_on_claimsreturned',
+             'Void long overdue item processing fee when claims returned',
+             'coust', 'description'),
+         'bool');
+
 COMMIT;