From fc361aa2f9c2f3fc9f001e534420dbd1a644e8a2 Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Sun, 7 Dec 2014 13:41:42 -0500 Subject: [PATCH 1/1] LP#980296: Update void on claims returned for longoverdue status. 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 Signed-off-by: Kathy Lussier Signed-off-by: Ben Shum --- .../perlmods/lib/OpenILS/Application/Circ.pm | 38 ++++++++++++++++++- .../OpenILS/Application/Circ/CircCommon.pm | 3 +- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 22 +++++++++++ ...data.coust_void_lost_on_claimsreturned.sql | 24 +++++++++++- 4 files changed, 83 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm index 8cbe1b642c..adf6af2cc9 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm @@ -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; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm index f4bfed90ad..f2d5aa5dbf 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm @@ -81,7 +81,8 @@ sub void_lost { my $bills = $e->search_money_billing( { xact => $circ->id, - btype => $btype + btype => $btype, + voided => 'f' } ); diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index cace52b85c..0f0e9f3118 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -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'); diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql index e8114842c0..ebd170c543 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql @@ -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; -- 2.43.2