=cut
+=head3 delete
+
+=cut
+
+sub delete {
+ my ($self) = @_;
+
+ my $branchcode = $self->branchcode eq '*' ? undef : $self->branchcode;
+ my $categorycode = $self->categorycode eq '*' ? undef : $self->categorycode;
+ my $itemtype = $self->itemtype eq '*' ? undef : $self->itemtype;
+
+ Koha::CirculationRules->search({
+ branchcode => $branchcode,
+ itemtype => $itemtype,
+ categorycode => $categorycode,
+ })->delete;
+
+ $self->SUPER::delete;
+
+}
+
=head3 type
=cut
return 'Issuingrule';
}
-1;
\ No newline at end of file
+1;
my $categorycode = $input->param('categorycode');
$debug and warn "deleting $1 $2 $branch";
- my $sth_Idelete = $dbh->prepare("delete from issuingrules where branchcode=? and categorycode=? and itemtype=?");
- $sth_Idelete->execute($branch, $categorycode, $itemtype);
+ Koha::IssuingRules->find({
+ branchcode => $branch,
+ categorycode => $categorycode,
+ itemtype => $itemtype
+ })->delete;
+
}
elsif ($op eq 'delete-branch-cat') {
my $categorycode = $input->param('categorycode');
my $builder = t::lib::TestBuilder->new;
subtest 'set_rule + get_effective_rule' => sub {
- plan tests => 11;
+ plan tests => 13;
my $categorycode = $builder->build_object( { class => 'Koha::Patron::Categories' } )->categorycode;
my $itemtype = $builder->build_object( { class => 'Koha::ItemTypes' } )->itemtype;
is( $rule->rule_value, 8,
'More specific rule is returned when branchcode, categorycode and itemtype exist'
);
+
+ my $our_branch_rules = Koha::CirculationRules->search({branchcode => $branchcode});
+ is( $our_branch_rules->count, 4, "We added 8 rules");
+ $our_branch_rules->delete;
+ is( $our_branch_rules->count, 0, "We deleted 8 rules");
+
+
};
$schema->storage->txn_rollback;
use Modern::Perl;
-use Test::More tests => 3;
+use Test::More tests => 4;
use Benchmark;
use Koha::IssuingRules;
+use Koha::CirculationRules;
use t::lib::TestBuilder;
use t::lib::Mocks;
is( Koha::IssuingRules->get_onshelfholds_policy({ item => $item, patron => $patron }), 2, 'Should be two now' );
};
+subtest 'delete' => sub {
+ plan tests => 1;
+
+ my $itemtype = $builder->build_object({ class => 'Koha::ItemTypes' });
+ my $library = $builder->build_object({ class => 'Koha::Libraries' });
+ my $category = $builder->build_object({ class => 'Koha::Patron::Categories' });
+
+ # We make an issuing rule
+ my $issue_rule = $builder->build_object({ class => 'Koha::IssuingRules', value => {
+ categorycode => $category->categorycode,
+ itemtype => $itemtype->itemtype,
+ branchcode => $library->branchcode
+ }
+ });
+
+ my $count = Koha::CirculationRules->search()->count;
+ # Note how many circulation rules we start with
+
+ # We make some circulation rules for the same thing
+ $builder->build_object({ class => 'Koha::CirculationRules', value => {
+ categorycode => $category->categorycode,
+ itemtype => $itemtype->itemtype,
+ branchcode => $library->branchcode
+ }
+ });
+ $builder->build_object({ class => 'Koha::CirculationRules', value => {
+ categorycode => $category->categorycode,
+ itemtype => $itemtype->itemtype,
+ branchcode => $library->branchcode
+ }
+ });
+
+ # Now we delete the issuing rule
+ $issue_rule->delete;
+ is( Koha::CirculationRules->search()->count ,$count, "We remove related circ rules with our issuing rule");
+
+};
+
sub _row_match {
my ($rule, $branchcode, $categorycode, $itemtype) = @_;