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

(-)a/Koha/Item.pm (-8 / +14 lines)
Lines 1215-1241 sub move_to_biblio { Link Here
1215
1215
1216
    return unless $self->biblionumber != $to_biblio->biblionumber;
1216
    return unless $self->biblionumber != $to_biblio->biblionumber;
1217
1217
1218
    my $biblionumber = $to_biblio->biblionumber;
1218
    my $from_biblionumber = $self->biblionumber;
1219
    my $to_biblionumber = $to_biblio->biblionumber;
1219
1220
1220
    # Own biblionumber and biblioitemnumber
1221
    # Own biblionumber and biblioitemnumber
1221
    $self->set({
1222
    $self->set({
1222
        biblionumber => $biblionumber,
1223
        biblionumber => $to_biblionumber,
1223
        biblioitemnumber => $to_biblio->biblioitem->biblioitemnumber
1224
        biblioitemnumber => $to_biblio->biblioitem->biblioitemnumber
1224
    })->store({ skip_record_index => $params->{skip_record_index} });
1225
    })->store({ skip_record_index => $params->{skip_record_index} });
1225
1226
1227
    unless ($params->{skip_record_index}) {
1228
        my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX });
1229
        $indexer->index_records( $from_biblionumber, "specialUpdate", "biblioserver" );
1230
    }
1231
1226
    # Acquisition orders
1232
    # Acquisition orders
1227
    my $orders = $self->item_orders;
1233
    my $orders = $self->item_orders;
1228
    if ($orders) {
1234
    if ($orders) {
1229
        $orders->update({ biblionumber => $biblionumber }, { no_triggers => 1 });
1235
        $orders->update({ biblionumber => $to_biblionumber }, { no_triggers => 1 });
1230
    }
1236
    }
1231
1237
1232
    # Holds
1238
    # Holds
1233
    $self->holds->update({ biblionumber => $biblionumber });
1239
    $self->holds->update({ biblionumber => $to_biblionumber });
1234
1240
1235
    # hold_fill_target (there's no Koha object available)
1241
    # hold_fill_target (there's no Koha object available)
1236
    my $hold_fill_target = $self->_result->hold_fill_target;
1242
    my $hold_fill_target = $self->_result->hold_fill_target;
1237
    if ($hold_fill_target) {
1243
    if ($hold_fill_target) {
1238
        $hold_fill_target->update({ biblionumber => $biblionumber });
1244
        $hold_fill_target->update({ biblionumber => $to_biblionumber });
1239
    }
1245
    }
1240
1246
1241
    # tmp_holdsqueues - Can't update with DBIx since the table is missing a primary key
1247
    # tmp_holdsqueues - Can't update with DBIx since the table is missing a primary key
Lines 1245-1260 sub move_to_biblio { Link Here
1245
        sub {
1251
        sub {
1246
            my ($storage, $dbh, @cols) = @_;
1252
            my ($storage, $dbh, @cols) = @_;
1247
1253
1248
            $dbh->do("UPDATE tmp_holdsqueue SET biblionumber=? WHERE itemnumber=?", undef, $biblionumber, $self->itemnumber);
1254
            $dbh->do("UPDATE tmp_holdsqueue SET biblionumber=? WHERE itemnumber=?", undef, $to_biblionumber, $self->itemnumber);
1249
        }
1255
        }
1250
    );
1256
    );
1251
1257
1252
    # linktrackers
1258
    # linktrackers
1253
    my $schema = Koha::Database->new()->schema();
1259
    my $schema = Koha::Database->new()->schema();
1254
    my $linktrackers = $schema->resultset('Linktracker')->search({ itemnumber => $self->itemnumber });
1260
    my $linktrackers = $schema->resultset('Linktracker')->search({ itemnumber => $self->itemnumber });
1255
    $linktrackers->update_all({ biblionumber => $biblionumber });
1261
    $linktrackers->update_all({ biblionumber => $to_biblionumber });
1256
1262
1257
    return $biblionumber;
1263
    return $to_biblionumber;
1258
}
1264
}
1259
1265
1260
=head2 Internal methods
1266
=head2 Internal methods
(-)a/t/db_dependent/Koha/SearchEngine/Indexer.t (-2 / +1 lines)
Lines 178-184 subtest 'Test indexer calls' => sub { Link Here
178
178
179
        warnings_are{
179
        warnings_are{
180
            $item3->move_to_biblio($biblio2);
180
            $item3->move_to_biblio($biblio2);
181
        } [$engine,"Koha::Item"], "index_records is called for $engine when moving an item to another biblio (Item->move_to_biblio)";
181
        } [$engine,"Koha::Item",$engine,"Koha::Item"], "index_records is called twice for $engine when moving an item to another biblio (Item->move_to_biblio)";
182
        warnings_are{
182
        warnings_are{
183
            $item4->move_to_biblio($biblio2, { skip_record_index => 1 });
183
            $item4->move_to_biblio($biblio2, { skip_record_index => 1 });
184
        } undef, "index_records is not called for $engine when moving an item to another biblio (Item->move_to_biblio) if skip_record_index passed";
184
        } undef, "index_records is not called for $engine when moving an item to another biblio (Item->move_to_biblio) if skip_record_index passed";
185
- 

Return to bug 22690