From c812a3539b2814af46a119351aca10e57d4a53fa Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 20 Apr 2021 15:14:41 +0100 Subject: [PATCH] Bug 25711: (QA follow-up) Refactor to clarify logic At the point where 'ExpireReservesMaxPickUpDelayCharge' can/should kick in, we should already have an item waiting (else what's triggered a pickup delay). As such we can drop the fall through default of using the syspref when we don't yet have an item. We can also save us some calculations and database hits by only calculating the charge value when we've actually been asked to charge. So we also move the block inside the 'charge_cancel_fee' block. Signed-off-by: Martin Renvoize Signed-off-by: Petro Vashchuk Signed-off-by: Martin Renvoize Signed-off-by: Kyle M Hall --- Koha/Hold.pm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Koha/Hold.pm b/Koha/Hold.pm index ce7d91914f..762b93b693 100644 --- a/Koha/Hold.pm +++ b/Koha/Hold.pm @@ -739,8 +739,9 @@ sub cancel { C4::Reserves::_FixPriority({ biblionumber => $self->biblionumber }); # and, if desired, charge a cancel fee - my $charge; - if (my $item = $self->item) { + if ( $params->{'charge_cancel_fee'} ) { + my $charge; + my $item = $self->item; my $branchcode = C4::Reserves::GetReservesControlBranch($item->unblessed, $self->borrower->unblessed); my $rule = Koha::CirculationRules->get_effective_rule( @@ -753,11 +754,7 @@ sub cancel { ); my $rule_value = $rule && $rule->rule_value // ''; $charge = $rule_value ne '' ? $rule_value : C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); - } else { - $charge = C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); - } - if ( $charge && $params->{'charge_cancel_fee'} ) { my $account = Koha::Account->new( { patron_id => $self->borrowernumber } ); $account->add_debit( @@ -769,7 +766,7 @@ sub cancel { type => 'RESERVE_EXPIRED', item_id => $self->itemnumber } - ); + ) if $charge; } C4::Log::logaction( 'HOLDS', 'CANCEL', $self->reserve_id, $self ) -- 2.42.0