From 9ab7d03769e3923991b8347daf9937099480d452 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Demians?= Date: Tue, 10 Nov 2020 17:00:09 +0100 Subject: [PATCH] Bug 26992: Fix serial issue and related items deletion on serial collection page serial-collection.pl uses C4::Items::DelItemCheck() function which is obsolete. Test plan: 1. Create a subscription with items created when receiving. 2. Receive several issues, and create corresponding items. 3. On Serial collection page (serial-collection.pl), select several issues. 4. Click on button Delete selected issues 5. A confirmation page is displayed. Enable "Delete associated items?". Then click on "Yes, delete" button. You get this error: Undefined subroutine &C4::Items::DelItemCheck 6. Apply the patch an repeat steps 3-5. Check that issues and related items are deleted. Signed-off-by: David Nind Signed-off-by: Tomas Cohen Arazi Signed-off-by: Jonathan Druart (cherry picked from commit dff16710ae53ebfab8596f27b35a7c8e35f81edf) Signed-off-by: Andrew Fuerste-Henry --- serials/serials-collection.pl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl index e36e50e0f8..39ffb78553 100755 --- a/serials/serials-collection.pl +++ b/serials/serials-collection.pl @@ -119,12 +119,16 @@ if($op eq 'delete_confirm'){ } }elsif($op eq 'delete_confirmed'){ if($query->param('delitems') eq "Yes"){ + my @itemnumbers; foreach my $serialid (@serialsid){ - my @itemnumbers = Koha::Serial::Items->search({serialid => $serialid})->get_column('itemnumber'); - foreach my $itemnumber (@itemnumbers){ - my $delcheck = C4::Items::DelItemCheck($biblionumber, $itemnumber); - $template->param(error_delitem => 1) if $delcheck != 1; - } + my @ids = Koha::Serial::Items->search({serialid => $serialid})->get_column('itemnumber'); + push(@itemnumbers, @ids); + } + my $items = Koha::Items->search({ itemnumber => \@itemnumbers }); + while ( my $item = $items->next ) { + my $error = $item->safe_delete; + $template->param(error_delitem => 1) + if $error eq '1'; } } for my $serialid (@serialsid){ -- 2.39.5