use Modern::Perl;
-use Carp qw(croak);
-
+use Koha::Exceptions;
use Koha::CirculationRule;
use base qw(Koha::Objects);
=head1 NAME
-Koha::IssuingRules - Koha IssuingRule Object set class
+Koha::CirculationRules - Koha CirculationRule Object set class
=head1 API
my $itemtype = $params->{itemtype};
my $branchcode = $params->{branchcode};
- croak q{No rule name passed in!} unless $rule_name;
+ Koha::Exceptions::MissingParameter->throw(
+ "Required parameter 'rule_name' missing")
+ unless $rule_name;
+
+ for my $v ( $branchcode, $categorycode, $itemtype ) {
+ $v = undef if $v and $v eq '*';
+ }
my $search_params;
$search_params->{rule_name} = $rule_name;
sub set_rule {
my ( $self, $params ) = @_;
- croak q{set_rule requires the parameter 'branchcode'!}
- unless exists $params->{branchcode};
- croak q{set_rule requires the parameter 'categorycode'!}
- unless exists $params->{categorycode};
- croak q{set_rule requires the parameter 'itemtype'!}
- unless exists $params->{itemtype};
- croak q{set_rule requires the parameter 'rule_name'!}
- unless exists $params->{rule_name};
- croak q{set_rule requires the parameter 'rule_value'!}
- unless exists $params->{rule_value};
+ for my $mandatory_parameter (qw( branchcode categorycode itemtype rule_name rule_value ) ){
+ Koha::Exceptions::MissingParameter->throw(
+ "Required parameter 'branchcode' missing")
+ unless exists $params->{$mandatory_parameter};
+ }
my $branchcode = $params->{branchcode};
my $categorycode = $params->{categorycode};
my $itemtype = $params->{itemtype};
my $rules = $params->{rules};
- foreach my $rule (@$rules) {
- Koha::CirculationRules->set_rule(
+ my $rule_objects = [];
+ while ( my ( $rule_name, $rule_value ) = each %$rules ) {
+ my $rule_object = Koha::CirculationRules->set_rule(
{
branchcode => $branchcode,
categorycode => $categorycode,
itemtype => $itemtype,
- rule_name => $rule->{rule_name},
- rule_value => $rule->{rule_value},
+ rule_name => $rule_name,
+ rule_value => $rule_value,
}
);
+ push( @$rule_objects, $rule_object );
+ }
+
+ return $rule_objects;
+}
+
+=head3 delete
+
+Delete a set of circulation rules, needed for cleaning up when deleting issuingrules
+
+=cut
+
+sub delete {
+ my ( $self ) = @_;
+
+ while ( my $rule = $self->next ){
+ $rule->delete;
}
+
}
=head3 type