From bc882fcb13569a2ef8858bfa41856e7df4992388 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 3 Jun 2020 12:59:21 +0100 Subject: [PATCH] Bug 25663: Add get_lostreturn_policy method to CirculationRules This patch adds a new get_lostreturn_policy method to Koha::CirculationRules which returns a boolean to the caller which denotes whether a refund should be applied or not on the return of a lost item. Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi Signed-off-by: Jonathan Druart --- Koha/CirculationRules.pm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Koha/CirculationRules.pm b/Koha/CirculationRules.pm index 790f30498d..9bf1ab860e 100644 --- a/Koha/CirculationRules.pm +++ b/Koha/CirculationRules.pm @@ -426,6 +426,36 @@ sub get_onshelfholds_policy { return $rule ? $rule->rule_value : 0; } +=head3 get_lostreturn_policy + + my $refund = Koha::CirculationRules->get_lostreturn_policy( { return_branch => $return_branch, item => $item } ); + +=cut + +sub get_lostreturn_policy { + my ( $class, $params ) = @_; + + my $item = $params->{item}; + + my $behaviour = C4::Context->preference( 'RefundLostOnReturnControl' ) // 'CheckinLibrary'; + my $behaviour_mapping = { + CheckinLibrary => $params->{'return_branch'}, + ItemHomeBranch => $item->homebranch, + ItemHoldingBranch => $item->holdingbranch + }; + + my $branch = $behaviour_mapping->{ $behaviour }; + + my $rule = Koha::CirculationRules->get_effective_rule( + { + branchcode => $branch, + rule_name => 'refund', + } + ); + + return $rule ? $rule->rule_value : 1; +} + =head3 article_requestable_rules Return rules that allow article requests, optionally filtered by -- 2.39.5