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

(-)a/C4/Items.pm (-1 / +6 lines)
Lines 318-327 sub ModItemFromMarc { Link Here
318
    }
318
    }
319
319
320
    $item->{cn_source} = delete $item->{'items.cn_source'}; # Because of C4::Biblio::_disambiguate
320
    $item->{cn_source} = delete $item->{'items.cn_source'}; # Because of C4::Biblio::_disambiguate
321
    $item->{cn_sort}   = delete $item->{'items.cn_sort'};   # Because of C4::Biblio::_disambiguate
321
    delete $item->{'items.cn_sort'};   # Because of C4::Biblio::_disambiguate
322
    $item->{itemnumber} = $itemnumber;
322
    $item->{itemnumber} = $itemnumber;
323
    $item->{biblionumber} = $biblionumber;
323
    $item->{biblionumber} = $biblionumber;
324
325
    my $existing_cn_sort = $item_object->cn_sort; # set_or_blank will reset cn_sort to undef as we are not passing it
326
                                                  # We rely on Koha::Item->store to modify it if itemcallnumber or cn_source is modified
324
    $item_object = $item_object->set_or_blank($item);
327
    $item_object = $item_object->set_or_blank($item);
328
    $item_object->cn_sort($existing_cn_sort); # Resetting to the existing value
329
325
    my $unlinked_item_subfields = _get_unlinked_item_subfields( $localitemmarc, $frameworkcode );
330
    my $unlinked_item_subfields = _get_unlinked_item_subfields( $localitemmarc, $frameworkcode );
326
    $item_object->more_subfields_xml(_get_unlinked_subfields_xml($unlinked_item_subfields));
331
    $item_object->more_subfields_xml(_get_unlinked_subfields_xml($unlinked_item_subfields));
327
    $item_object->store({ skip_record_index => $params->{skip_record_index} });
332
    $item_object->store({ skip_record_index => $params->{skip_record_index} });
(-)a/t/db_dependent/Items.t (-2 / +17 lines)
Lines 981-987 subtest 'Split subfields in Item2Marc (Bug 21774)' => sub { Link Here
981
};
981
};
982
982
983
subtest 'ModItemFromMarc' => sub {
983
subtest 'ModItemFromMarc' => sub {
984
    plan tests => 4;
984
    plan tests => 5;
985
    $schema->storage->txn_begin;
985
    $schema->storage->txn_begin;
986
986
987
    my $builder = t::lib::TestBuilder->new;
987
    my $builder = t::lib::TestBuilder->new;
Lines 1021-1025 subtest 'ModItemFromMarc' => sub { Link Here
1021
    is( $updated_item->{new_status}, "this is something", "Non mapped field has not been reset" );
1021
    is( $updated_item->{new_status}, "this is something", "Non mapped field has not been reset" );
1022
    is( Koha::Items->find($itemnumber)->new_status, "this is something" );
1022
    is( Koha::Items->find($itemnumber)->new_status, "this is something" );
1023
1023
1024
    subtest 'cn_sort' => sub {
1025
        plan tests => 3;
1026
1027
        my $item = $builder->build_sample_item;
1028
        $item->set({ cn_source => 'ddc', itemcallnumber => 'xxx' })->store;
1029
        is( $item->cn_sort, 'XXX', 'init values set are expected' );
1030
1031
        my $marc = C4::Items::Item2Marc( $item->get_from_storage->unblessed, $item->biblionumber );
1032
        ModItemFromMarc( $marc, $item->biblionumber, $item->itemnumber );
1033
        is( $item->get_from_storage->cn_sort, 'XXX', 'cn_sort has not been updated' );
1034
1035
        $marc = C4::Items::Item2Marc( { %{$item->unblessed}, itemcallnumber => 'yyy' }, $item->biblionumber );
1036
        ModItemFromMarc( $marc, $item->biblionumber, $item->itemnumber );
1037
        is( $item->get_from_storage->cn_sort, 'YYY', 'cn_sort has been updated' );
1038
    };
1039
1024
    $schema->storage->txn_rollback;
1040
    $schema->storage->txn_rollback;
1025
};
1041
};
1026
- 

Return to bug 27509