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

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