template_name => 'tools/batch_delete_records.tt',
query => $input,
type => "intranet",
- authnotrequired => 0,
flagsrequired => { tools => 'records_batchdel' },
});
my $holds_count = $biblio->holds->count;
$biblio = $biblio->unblessed;
my $record = &GetMarcBiblio({ biblionumber => $record_id });
- $biblio->{subtitle} = C4::Biblio::SplitSubtitle( $biblio->{subtitle} );
$biblio->{itemnumbers} = [Koha::Items->search({ biblionumber => $record_id })->get_column('itemnumber')];
$biblio->{holds_count} = $holds_count;
$biblio->{issues_count} = C4::Biblio::CountItemsIssued( $record_id );
}
# Delete items
- my @itemnumbers = Koha::Items->search({ biblionumber => $biblionumber })->get_column('itemnumber');
- ITEMNUMBER: for my $itemnumber ( @itemnumbers ) {
- my $error = eval { C4::Items::DelItemCheck( $biblionumber, $itemnumber ) };
- if ( $error != 1 or $@ ) {
+ my $items = Koha::Items->search({ biblionumber => $biblionumber });
+ while ( my $item = $items->next ) {
+ my $deleted_item = eval { $item->safe_delete };
+ if ( !ref($deleted_item) or $@ ) {
push @messages, {
type => 'error',
code => 'item_not_deleted',
biblionumber => $biblionumber,
- itemnumber => $itemnumber,
+ itemnumber => $item->itemnumber,
error => ($@ ? $@ : $error),
};
$schema->storage->txn_rollback;