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

(-)a/Koha/Item.pm (-8 / +14 lines)
Lines 1214-1240 sub move_to_biblio { Link Here
1214
1214
1215
    return unless $self->biblionumber != $to_biblio->biblionumber;
1215
    return unless $self->biblionumber != $to_biblio->biblionumber;
1216
1216
1217
    my $biblionumber = $to_biblio->biblionumber;
1217
    my $from_biblionumber = $self->biblionumber;
1218
    my $to_biblionumber = $to_biblio->biblionumber;
1218
1219
1219
    # Own biblionumber and biblioitemnumber
1220
    # Own biblionumber and biblioitemnumber
1220
    $self->set({
1221
    $self->set({
1221
        biblionumber => $biblionumber,
1222
        biblionumber => $to_biblionumber,
1222
        biblioitemnumber => $to_biblio->biblioitem->biblioitemnumber
1223
        biblioitemnumber => $to_biblio->biblioitem->biblioitemnumber
1223
    })->store({ skip_record_index => $params->{skip_record_index} });
1224
    })->store({ skip_record_index => $params->{skip_record_index} });
1224
1225
1226
    unless ($params->{skip_record_index}) {
1227
        my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX });
1228
        $indexer->index_records( $from_biblionumber, "specialUpdate", "biblioserver" );
1229
    }
1230
1225
    # Acquisition orders
1231
    # Acquisition orders
1226
    my $orders = $self->item_orders;
1232
    my $orders = $self->item_orders;
1227
    if ($orders) {
1233
    if ($orders) {
1228
        $orders->update({ biblionumber => $biblionumber }, { no_triggers => 1 });
1234
        $orders->update({ biblionumber => $to_biblionumber }, { no_triggers => 1 });
1229
    }
1235
    }
1230
1236
1231
    # Holds
1237
    # Holds
1232
    $self->holds->update({ biblionumber => $biblionumber });
1238
    $self->holds->update({ biblionumber => $to_biblionumber });
1233
1239
1234
    # hold_fill_target (there's no Koha object available)
1240
    # hold_fill_target (there's no Koha object available)
1235
    my $hold_fill_target = $self->_result->hold_fill_target;
1241
    my $hold_fill_target = $self->_result->hold_fill_target;
1236
    if ($hold_fill_target) {
1242
    if ($hold_fill_target) {
1237
        $hold_fill_target->update({ biblionumber => $biblionumber });
1243
        $hold_fill_target->update({ biblionumber => $to_biblionumber });
1238
    }
1244
    }
1239
1245
1240
    # tmp_holdsqueues - Can't update with DBIx since the table is missing a primary key
1246
    # tmp_holdsqueues - Can't update with DBIx since the table is missing a primary key
Lines 1244-1259 sub move_to_biblio { Link Here
1244
        sub {
1250
        sub {
1245
            my ($storage, $dbh, @cols) = @_;
1251
            my ($storage, $dbh, @cols) = @_;
1246
1252
1247
            $dbh->do("UPDATE tmp_holdsqueue SET biblionumber=? WHERE itemnumber=?", undef, $biblionumber, $self->itemnumber);
1253
            $dbh->do("UPDATE tmp_holdsqueue SET biblionumber=? WHERE itemnumber=?", undef, $to_biblionumber, $self->itemnumber);
1248
        }
1254
        }
1249
    );
1255
    );
1250
1256
1251
    # linktrackers
1257
    # linktrackers
1252
    my $schema = Koha::Database->new()->schema();
1258
    my $schema = Koha::Database->new()->schema();
1253
    my $linktrackers = $schema->resultset('Linktracker')->search({ itemnumber => $self->itemnumber });
1259
    my $linktrackers = $schema->resultset('Linktracker')->search({ itemnumber => $self->itemnumber });
1254
    $linktrackers->update_all({ biblionumber => $biblionumber });
1260
    $linktrackers->update_all({ biblionumber => $to_biblionumber });
1255
1261
1256
    return $biblionumber;
1262
    return $to_biblionumber;
1257
}
1263
}
1258
1264
1259
=head2 Internal methods
1265
=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