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::IssuingRules - Koha IssuingRule 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;
54 $search_params->{rule_name} = $rule_name;
56 $search_params->{categorycode} = defined $categorycode ? { 'in' => [ $categorycode, '*' ] } : undef;
57 $search_params->{itemtype} = defined $itemtype ? { 'in' => [ $itemtype, '*' ] } : undef;
58 $search_params->{branchcode} = defined $branchcode ? { 'in' => [ $branchcode, '*' ] } : undef;
60 my $rule = $self->search(
64 -desc => [ 'branchcode', 'categorycode', 'itemtype' ]
78 my ( $self, $params ) = @_;
80 croak q{set_rule requires the parameter 'branchcode'!}
81 unless exists $params->{branchcode};
82 croak q{set_rule requires the parameter 'categorycode'!}
83 unless exists $params->{categorycode};
84 croak q{set_rule requires the parameter 'itemtype'!}
85 unless exists $params->{itemtype};
86 croak q{set_rule requires the parameter 'rule_name'!}
87 unless exists $params->{rule_name};
88 croak q{set_rule requires the parameter 'rule_value'!}
89 unless exists $params->{rule_value};
91 my $branchcode = $params->{branchcode};
92 my $categorycode = $params->{categorycode};
93 my $itemtype = $params->{itemtype};
94 my $rule_name = $params->{rule_name};
95 my $rule_value = $params->{rule_value};
97 my $rule = $self->search(
99 rule_name => $rule_name,
100 branchcode => $branchcode,
101 categorycode => $categorycode,
102 itemtype => $itemtype,
107 if ( defined $rule_value ) {
108 $rule->rule_value($rule_value);
116 if ( defined $rule_value ) {
117 $rule = Koha::CirculationRule->new(
119 branchcode => $branchcode,
120 categorycode => $categorycode,
121 itemtype => $itemtype,
122 rule_name => $rule_name,
123 rule_value => $rule_value,
138 my ( $self, $params ) = @_;
139 warn Data::Dumper::Dumper( $params );
141 my $branchcode = $params->{branchcode};
142 my $categorycode = $params->{categorycode};
143 my $itemtype = $params->{itemtype};
144 my $rules = $params->{rules};
146 foreach my $rule (@$rules) {
147 Koha::CirculationRules->set_rule(
149 branchcode => $branchcode,
150 categorycode => $categorycode,
151 itemtype => $itemtype,
152 rule_name => $rule->{rule_name},
153 rule_value => $rule->{rule_value},
164 return 'CirculationRule';
168 return 'Koha::CirculationRule';