From a7128159417d78139f53e557e389c8ec7d1964c0 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Sat, 11 Apr 2020 19:48:48 +0000 Subject: [PATCH] Bug 25114: Remove duplicated logic from GetLoanLength() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove duplicated logic for searching circulation rules. This can be replaced with get_effective_rules(). To test: 1. prove t/db_dependent/Circulation/GetHardDueDate.t Signed-off-by: Joonas Kylmälä --- C4/Circulation.pm | 71 ++++++++++--------------------------------------------- 1 file changed, 13 insertions(+), 58 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 7a3b21b903..318b085131 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1542,50 +1542,6 @@ Get loan length for an itemtype, a borrower type and a branch sub GetLoanLength { my ( $categorycode, $itemtype, $branchcode ) = @_; - # Set search precedences - my @params = ( - { - categorycode => $categorycode, - itemtype => $itemtype, - branchcode => $branchcode, - }, - { - categorycode => $categorycode, - itemtype => undef, - branchcode => $branchcode, - }, - { - categorycode => undef, - itemtype => $itemtype, - branchcode => $branchcode, - }, - { - categorycode => undef, - itemtype => undef, - branchcode => $branchcode, - }, - { - categorycode => $categorycode, - itemtype => $itemtype, - branchcode => undef, - }, - { - categorycode => $categorycode, - itemtype => undef, - branchcode => undef, - }, - { - categorycode => undef, - itemtype => $itemtype, - branchcode => undef, - }, - { - categorycode => undef, - itemtype => undef, - branchcode => undef, - }, - ); - # Initialize default values my $rules = { issuelength => 0, @@ -1593,21 +1549,20 @@ sub GetLoanLength { lengthunit => 'days', }; - # Search for rules! - foreach my $rule_name (qw( issuelength renewalperiod lengthunit )) { - foreach my $params (@params) { - my $rule = Koha::CirculationRules->search( - { - rule_name => $rule_name, - %$params, - } - )->next(); + my $found = Koha::CirculationRules->get_effective_rules( { + branchcode => $branchcode, + categorycode => $categorycode, + itemtype => $itemtype, + rules => [ + 'issuelength', + 'renewalperiod', + 'lengthunit' + ], + } ); - if ($rule) { - $rules->{$rule_name} = $rule->rule_value; - last; - } - } + # Search for rules! + foreach my $rule_name (keys %$found) { + $rules->{$rule_name} = $found->{$rule_name}; } return $rules; -- 2.11.0