Bug 25663: Add get_lostreturn_policy method to CirculationRules
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 3 Jun 2020 11:59:21 +0000 (12:59 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 13 Aug 2020 05:55:44 +0000 (07:55 +0200)
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 <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Koha/CirculationRules.pm

index 790f304..9bf1ab8 100644 (file)
@@ -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