1 package Koha::CirculationRules;
3 # Copyright Vaara-kirjastot 2015
4 # Copyright Koha Development Team 2016
6 # This file is part of Koha.
8 # Koha is free software; you can redistribute it and/or modify it under the
9 # terms of the GNU General Public License as published by the Free Software
10 # Foundation; either version 3 of the License, or (at your option) any later
13 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
14 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License along
18 # with Koha; if not, write to the Free Software Foundation, Inc.,
19 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25 use Koha::CirculationRule;
27 use base qw(Koha::Objects);
31 Koha::CirculationRules - Koha CirculationRule Object set class
39 =head3 get_effective_rule
43 sub get_effective_rule {
44 my ( $self, $params ) = @_;
46 my $rule_name = $params->{rule_name};
47 my $categorycode = $params->{categorycode};
48 my $itemtype = $params->{itemtype};
49 my $branchcode = $params->{branchcode};
51 croak q{No rule name passed in!} unless $rule_name;
53 for my $v ( $branchcode, $categorycode, $itemtype ) {
54 $v = undef if $v and $v eq '*';
58 $search_params->{rule_name} = $rule_name;
60 $search_params->{categorycode} = defined $categorycode ? [ $categorycode, undef ] : undef;
61 $search_params->{itemtype} = defined $itemtype ? [ $itemtype, undef ] : undef;
62 $search_params->{branchcode} = defined $branchcode ? [ $branchcode, undef ] : undef;
64 my $rule = $self->search(
68 -desc => [ 'branchcode', 'categorycode', 'itemtype' ]
82 my ( $self, $params ) = @_;
84 croak q{set_rule requires the parameter 'branchcode'!}
85 unless exists $params->{branchcode};
86 croak q{set_rule requires the parameter 'categorycode'!}
87 unless exists $params->{categorycode};
88 croak q{set_rule requires the parameter 'itemtype'!}
89 unless exists $params->{itemtype};
90 croak q{set_rule requires the parameter 'rule_name'!}
91 unless exists $params->{rule_name};
92 croak q{set_rule requires the parameter 'rule_value'!}
93 unless exists $params->{rule_value};
95 my $branchcode = $params->{branchcode};
96 my $categorycode = $params->{categorycode};
97 my $itemtype = $params->{itemtype};
98 my $rule_name = $params->{rule_name};
99 my $rule_value = $params->{rule_value};
101 for my $v ( $branchcode, $categorycode, $itemtype ) {
102 $v = undef if $v and $v eq '*';
104 my $rule = $self->search(
106 rule_name => $rule_name,
107 branchcode => $branchcode,
108 categorycode => $categorycode,
109 itemtype => $itemtype,
114 if ( defined $rule_value ) {
115 $rule->rule_value($rule_value);
123 if ( defined $rule_value ) {
124 $rule = Koha::CirculationRule->new(
126 branchcode => $branchcode,
127 categorycode => $categorycode,
128 itemtype => $itemtype,
129 rule_name => $rule_name,
130 rule_value => $rule_value,
145 my ( $self, $params ) = @_;
147 my $branchcode = $params->{branchcode};
148 my $categorycode = $params->{categorycode};
149 my $itemtype = $params->{itemtype};
150 my $rules = $params->{rules};
152 foreach my $rule (@$rules) {
153 Koha::CirculationRules->set_rule(
155 branchcode => $branchcode,
156 categorycode => $categorycode,
157 itemtype => $itemtype,
158 rule_name => $rule->{rule_name},
159 rule_value => $rule->{rule_value},
170 return 'CirculationRule';
178 return 'Koha::CirculationRule';