sub get_items_that_can_fill {
my ( $self ) = @_;
+ return Koha::Items->new->empty()
+ unless $self->count() > 0;
+
my @itemnumbers = $self->search({ 'me.itemnumber' => { '!=' => undef } })->get_column('itemnumber');
my @biblionumbers = $self->search({ 'me.itemnumber' => undef })->get_column('biblionumber');
my @bibs_or_items;
my @biblionumbers = $holds->get_column('biblionumber');
my $all_items;
-foreach my $item ( $holds->get_items_that_can_fill->as_list ) {
- push @{$all_items->{$item->biblionumber}}, $item;
+if ( $holds->count ) {
+ foreach my $item ( $holds->get_items_that_can_fill->as_list ) {
+ push @{ $all_items->{ $item->biblionumber } }, $item;
+ }
}
# patrons count per biblio
};
subtest 'get_items_that_can_fill' => sub {
- plan tests => 3;
+ plan tests => 5;
my $biblio = $builder->build_sample_biblio;
my $itype_1 = $builder->build_object({ class => 'Koha::ItemTypes' }); # For 1, 2, 3, 4
is_deeply( [ map { $_->itemnumber } $items->as_list ],
[ $item_2->itemnumber ], 'Only item 2 is available for filling the hold' );
+ my $no_holds = Koha::Holds->new->empty();
+ my $no_items = $no_holds->get_items_that_can_fill();
+ is( ref $no_items, "Koha::Items", "Routine returns a Koha::Items object");
+ is( $no_items->count, 0, "Object is empty when called on no holds");
+
};
subtest 'set_waiting+patron_expiration_date' => sub {