From: Jason Boyer Date: Wed, 11 Sep 2019 15:59:40 +0000 (-0400) Subject: LP1170795: Void deposits on checkin X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=29dcdc93267125044a077b3dd6a22089640f8c96;p=working%2FEvergreen.git LP1170795: Void deposits on checkin Refactor the original patch Signed-off-by: Jason Boyer Signed-off-by: Terran McCanna --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm index 6041734a74..40fe4b0c84 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm @@ -3046,31 +3046,31 @@ sub finish_fines_and_voiding { } -# if a deposit was payed for this item, push the event -# handle deposit billing void +# if a deposit was paid for this item, push the event +# if called with a truthy param perform the void, depending on settings sub check_circ_deposit { my $self = shift; my $void = shift; + return unless $self->circ; + my $deposit = $self->editor->search_money_billing( { btype => 5, xact => $self->circ->id, voided => 'f' }, {idlist => 1})->[0]; - if ($deposit) { - # We have already vetted the override event when $void is set - $self->push_events(OpenILS::Event->new('ITEM_DEPOSIT_PAID', payload => $deposit)) if !$void; - # Now do the voiding when the library setting is set - if ( $U->ou_ancestor_setting_value( - $self->circ_lib, - OILS_SETTING_VOID_ITEM_DEPOSIT_ON_CHECKIN, - $self->editor) && $void - ) { - my $circ_money = OpenSRF::AppSession->connect("open-ils.circ"); - $circ_money->request('open-ils.circ.money.billing.void', $self->editor->authtoken, $deposit ); - undef $circ_money; + return unless $deposit; + + if ($void) { + my $void_on_checkin = $U->ou_ancestor_setting_value( + $self->circ_lib,OILS_SETTING_VOID_ITEM_DEPOSIT_ON_CHECKIN,$self->editor); + if ( $void_on_checkin ) { + my $evt = $CC->void_bills($self->editor,[$deposit], "DEPOSIT ITEM RETURNED"); + return $evt if $evt; } + } else { # if void is unset this is just a check, notify that there was a deposit billing + $self->push_events(OpenILS::Event->new('ITEM_DEPOSIT_PAID', payload => $deposit)); } } 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 90f99ab230..60279c520d 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -4223,10 +4223,10 @@ INSERT into config.org_unit_setting_type ,( 'circ.void_item_deposit', 'circ', oils_i18n_gettext('circ.void_item_deposit', - 'Void item depsoit fee upon checkin', + 'Void item deposit fee on checkin', 'coust', 'label'), oils_i18n_gettext('circ.void_item_deposit', - 'This will cause the deposit fee to be voided upon checkin', + 'If a deposit was charged when checking out an item, void it when the item is returned', 'coust', 'description'), 'bool', null) diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.LP1170795_Deposit_refunds_not_applying_as_expected_on_item_check_in.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.LP1170795_Deposit_refunds_not_applying_as_expected_on_item_check_in.sql deleted file mode 100755 index 11eb4c8f05..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.LP1170795_Deposit_refunds_not_applying_as_expected_on_item_check_in.sql +++ /dev/null @@ -1,17 +0,0 @@ - -BEGIN; - - -INSERT into config.org_unit_setting_type -( name, grp, label, description, datatype, fm_class ) VALUES - -( 'circ.void_item_deposit', 'circ', - oils_i18n_gettext('circ.void_item_deposit', - 'Void item depsoit fee upon checkin', - 'coust', 'label'), - oils_i18n_gettext('circ.void_item_deposit', - 'This will cause the deposit fee to be voided upon checkin', - 'coust', 'description'), - 'bool', null); - -COMMIT; \ No newline at end of file diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.void_deposit_on_checkin.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.void_deposit_on_checkin.sql new file mode 100755 index 0000000000..d9329bfadd --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.void_deposit_on_checkin.sql @@ -0,0 +1,17 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); -- blake / jboyer + +INSERT INTO config.org_unit_setting_type +( name, grp, label, description, datatype, fm_class ) VALUES +( 'circ.void_item_deposit', 'circ', + oils_i18n_gettext('circ.void_item_deposit', + 'Void item deposit fee on checkin', + 'coust', 'label'), + oils_i18n_gettext('circ.void_item_deposit', + 'If a deposit was charged when checking out an item, void it when the item is returned', + 'coust', 'description'), + 'bool', null); + +COMMIT; +