Bug 29087: Prevent filter_by_for_hold to crash if default holdallowed is not_allowed
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 8c804c1749)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
54e63c94d7
commit
34be9ab95b
|
|
@ -61,15 +61,37 @@ placing a hold on one of those items.
|
|||
sub filter_by_for_hold {
|
||||
my ($self) = @_;
|
||||
|
||||
my @hold_not_allowed_itypes = Koha::CirculationRules->search(
|
||||
my $default_rule = Koha::CirculationRules->get_effective_rule(
|
||||
{
|
||||
rule_name => 'holdallowed',
|
||||
branchcode => undef,
|
||||
categorycode => undef,
|
||||
rule_value => 'not_allowed',
|
||||
}
|
||||
)->get_column('itemtype');
|
||||
);
|
||||
my @hold_not_allowed_itypes;
|
||||
if ( $default_rule ) {
|
||||
@hold_not_allowed_itypes = Koha::ItemTypes->search->get_column('itemtype');
|
||||
my @hold_allowed_itypes = Koha::CirculationRules->search(
|
||||
{
|
||||
rule_name => 'holdallowed',
|
||||
rule_value => { '!=' => 'not_allowed' },
|
||||
branchcode => undef,
|
||||
categorycode => undef,
|
||||
}
|
||||
)->get_column('itemtype');
|
||||
@hold_not_allowed_itypes = array_minus( @hold_not_allowed_itypes, @hold_allowed_itypes )
|
||||
} else {
|
||||
@hold_not_allowed_itypes = Koha::CirculationRules->search(
|
||||
{
|
||||
rule_name => 'holdallowed',
|
||||
branchcode => undef,
|
||||
categorycode => undef,
|
||||
rule_value => 'not_allowed',
|
||||
}
|
||||
)->get_column('itemtype');
|
||||
}
|
||||
|
||||
push @hold_not_allowed_itypes, Koha::ItemTypes->search({ notforloan => 1 })->get_column('itemtype');
|
||||
@hold_not_allowed_itypes = uniq @hold_not_allowed_itypes;
|
||||
|
||||
my $params = {
|
||||
itemlost => 0,
|
||||
|
|
|
|||
|
|
@ -532,6 +532,13 @@ subtest 'Desks' => sub {
|
|||
subtest 'get_items_that_can_fill' => sub {
|
||||
plan tests => 6;
|
||||
|
||||
Koha::CirculationRules->search(
|
||||
{
|
||||
rule_name => 'holdallowed',
|
||||
rule_value => 'not_allowed',
|
||||
}
|
||||
)->delete;
|
||||
|
||||
my $biblio = $builder->build_sample_biblio;
|
||||
my $itype_1 = $builder->build_object({ class => 'Koha::ItemTypes' }); # For 1, 2, 3, 4
|
||||
my $itype_2 = $builder->build_object({ class => 'Koha::ItemTypes' });
|
||||
|
|
|
|||
Loading…
Reference in New Issue