use CGI;
use List::MoreUtils qw( uniq );
-use C4::Auth;
-use C4::Output;
-use C4::AuthoritiesMarc;
-use C4::Biblio;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
+use C4::Auth qw( get_template_and_user );
+use C4::Biblio qw( GetMarcBiblio );
use Koha::Virtualshelves;
use Koha::Authorities;
use Koha::Biblios;
use Koha::Items;
-my $input = new CGI;
+my $input = CGI->new;
my $op = $input->param('op') // q|form|;
my $recordtype = $input->param('recordtype') // 'biblio';
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;