View | Details | Raw Unified | Return to bug 30727
Collapse All | Expand All

(-)a/Koha/BackgroundJob/BatchDeleteBiblio.pm (-4 / +10 lines)
Lines 5-10 use JSON qw( encode_json decode_json ); Link Here
5
5
6
use C4::Biblio;
6
use C4::Biblio;
7
7
8
use Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue;
8
use Koha::DateUtils qw( dt_from_string );
9
use Koha::DateUtils qw( dt_from_string );
9
use Koha::SearchEngine;
10
use Koha::SearchEngine;
10
use Koha::SearchEngine::Indexer;
11
use Koha::SearchEngine::Indexer;
Lines 91-97 sub process { Link Here
91
        my $holds = $biblio->holds;
92
        my $holds = $biblio->holds;
92
        while ( my $hold = $holds->next ) {
93
        while ( my $hold = $holds->next ) {
93
            eval{
94
            eval{
94
                $hold->cancel;
95
                $hold->cancel({ skip_holds_queue => 1 });
95
            };
96
            };
96
            if ( $@ ) {
97
            if ( $@ ) {
97
                push @messages, {
98
                push @messages, {
Lines 110-116 sub process { Link Here
110
        # Delete items
111
        # Delete items
111
        my $items = Koha::Items->search({ biblionumber => $biblionumber });
112
        my $items = Koha::Items->search({ biblionumber => $biblionumber });
112
        while ( my $item = $items->next ) {
113
        while ( my $item = $items->next ) {
113
            my $deleted = $item->safe_delete({ skip_record_index => 1 });
114
            my $deleted = $item->safe_delete({ skip_record_index => 1, skip_holds_queue => 1 });
114
            unless ( $deleted ) {
115
            unless ( $deleted ) {
115
                push @messages, {
116
                push @messages, {
116
                    type => 'error',
117
                    type => 'error',
Lines 127-133 sub process { Link Here
127
128
128
        # Finally, delete the biblio
129
        # Finally, delete the biblio
129
        my $error = eval {
130
        my $error = eval {
130
            C4::Biblio::DelBiblio( $biblionumber, { skip_record_index => 1 } );
131
            C4::Biblio::DelBiblio( $biblionumber, { skip_record_index => 1, skip_holds_queue => 1 } );
131
        };
132
        };
132
        if ( $error or $@ ) {
133
        if ( $error or $@ ) {
133
            push @messages, {
134
            push @messages, {
Lines 158-163 sub process { Link Here
158
    if ( @deleted_biblionumbers ) {
159
    if ( @deleted_biblionumbers ) {
159
        my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX });
160
        my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX });
160
        $indexer->index_records( \@deleted_biblionumbers, "recordDelete", "biblioserver" );
161
        $indexer->index_records( \@deleted_biblionumbers, "recordDelete", "biblioserver" );
162
163
        Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue->new->enqueue(
164
            {
165
                biblio_ids => \@deleted_biblionumbers
166
            }
167
        );
161
    }
168
    }
162
169
163
    my $job_data = decode_json $self->data;
170
    my $job_data = decode_json $self->data;
164
- 

Return to bug 30727