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 => 5; |
984 |
plan tests => 6; |
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 1037-1041
subtest 'ModItemFromMarc' => sub {
Link Here
|
1037 |
is( $item->get_from_storage->cn_sort, 'YYY', 'cn_sort has been updated' ); |
1037 |
is( $item->get_from_storage->cn_sort, 'YYY', 'cn_sort has been updated' ); |
1038 |
}; |
1038 |
}; |
1039 |
|
1039 |
|
|
|
1040 |
subtest 'permanent_location' => sub { |
1041 |
plan tests => 6; |
1042 |
|
1043 |
my $item = $builder->build_sample_item; |
1044 |
|
1045 |
# By default, setting location to something new should set permanent location to the same thing |
1046 |
# with the usual exceptions |
1047 |
$item->set({ location => 'A', permanent_location => 'A' })->store; |
1048 |
is( $item->location, 'A', 'initial location set as expected' ); |
1049 |
is( $item->permanent_location, 'A', 'initial permanent location set as expected' ); |
1050 |
|
1051 |
$item->location('B'); |
1052 |
my $marc = C4::Items::Item2Marc( $item->unblessed, $item->biblionumber ); |
1053 |
ModItemFromMarc( $marc, $item->biblionumber, $item->itemnumber ); |
1054 |
|
1055 |
$item = $item->get_from_storage; |
1056 |
is( $item->location, 'B', 'new location set as expected' ); |
1057 |
is( $item->permanent_location, 'B', 'new permanent location set as expected' ); |
1058 |
|
1059 |
# Added a marc mapping for permanent location, allows it to be edited independently |
1060 |
my $mapping = Koha::MarcSubfieldStructure->new( |
1061 |
{ |
1062 |
frameworkcode => q{}, |
1063 |
tagfield => '952', |
1064 |
tagsubfield => 'C', |
1065 |
kohafield => 'items.permanent_location', |
1066 |
repeatable => 0 |
1067 |
} |
1068 |
)->store; |
1069 |
Koha::Caches->get_instance->clear_from_cache( "MarcSubfieldStructure-" ); |
1070 |
|
1071 |
# Now if we change location, and also pass in a permanent location |
1072 |
# the permanent_location will not be overwritten by location |
1073 |
$item->location('C'); |
1074 |
$marc = C4::Items::Item2Marc( $item->unblessed, $item->biblionumber ); |
1075 |
ModItemFromMarc( $marc, $item->biblionumber, $item->itemnumber ); |
1076 |
$item = $item->get_from_storage; |
1077 |
is( $item->location, 'C', 'next new location set as expected' ); |
1078 |
is( $item->permanent_location, 'B', 'permanent location remains unchanged as expected' ); |
1079 |
}; |
1080 |
|
1040 |
$schema->storage->txn_rollback; |
1081 |
$schema->storage->txn_rollback; |
1041 |
}; |
1082 |
}; |
1042 |
- |
|
|