Bug 30155: Don't get items that can fillholds if there are no holds
This makes two changes: 1 - We no longer call get_items_that_can_fill if there are no holds 2 - The subroutine will return an empty Koha::Items object if there are no holds passed Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
4153eff659
commit
c6ffb44bf1
3 changed files with 13 additions and 3 deletions
|
@ -111,6 +111,9 @@ Items that are not:
|
|||
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;
|
||||
|
|
|
@ -193,9 +193,11 @@ my $holds = Koha::Holds->search(
|
|||
my @biblionumbers = $holds->get_column('biblionumber');
|
||||
|
||||
my $all_items;
|
||||
if ( $holds->count ) {
|
||||
foreach my $item ( $holds->get_items_that_can_fill->as_list ) {
|
||||
push @{ $all_items->{ $item->biblionumber } }, $item;
|
||||
}
|
||||
}
|
||||
|
||||
# patrons count per biblio
|
||||
my $patrons_count = {
|
||||
|
|
|
@ -411,7 +411,7 @@ subtest 'Desks' => sub {
|
|||
};
|
||||
|
||||
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
|
||||
|
@ -503,6 +503,11 @@ subtest 'get_items_that_can_fill' => sub {
|
|||
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 {
|
||||
|
|
Loading…
Reference in a new issue