}
-# 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));
}
}
,( '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)
+++ /dev/null
-
-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
--- /dev/null
+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;
+