Bug 17600: Standardize our EXPORT_OK
[srvgit] / tools / batch_delete_records.pl
index 9eba735..2ec14ef 100755 (executable)
@@ -23,17 +23,17 @@ use Modern::Perl;
 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';
 
@@ -41,7 +41,6 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user({
         template_name => 'tools/batch_delete_records.tt',
         query => $input,
         type => "intranet",
-        authnotrequired => 0,
         flagsrequired => { tools => 'records_batchdel' },
 });
 
@@ -94,7 +93,6 @@ if ( $op eq 'form' ) {
             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 );
@@ -176,15 +174,15 @@ if ( $op eq 'form' ) {
             }
 
             # 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;