From 88f09070a6dc9f19ff101d8a84d7f9d132ed2db2 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 9 Jun 2021 12:59:27 +0000 Subject: [PATCH] Bug 28533: Set subfields to 'undef' if whole field request in itemcallnumebr system preference MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch undefines the CNsubfields variable when the whole field is requested Note that the substr returns '' when no characters are found, so we test if the string eq '' Testing 'truth' doesn't work because "0" is a valid option To test: 1 - Edit a record, add an 082 field 082 0 0 ‡aalpha‡bbeta‡0delta 2 - Set itemcallnumber system preference to 082 3 - Attempt to add/edit items 4 - ISE 5 - Apply patch, restart all the things 6 - Add/edit items - no error 7 - Confirm the itemcallnumber field is populated with "alpha beta delta" 8 - Set itemcallnumber system preference to '0820' 9 - Add/edit items 10 - Confirm itemcallnumber is populated with 'delta' Signed-off-by: Salman Ali Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall (cherry picked from commit afa107e480f90d2abbad7afd94063f62fb3874fa) Signed-off-by: Fridolin Somers --- cataloguing/additem.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index b42d3d3765..06a266c48a 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -157,6 +157,7 @@ sub generate_subfield_form { foreach my $pref_itemcallnumber_part (split(/,/, $pref_itemcallnumber)){ my $CNtag = substr( $pref_itemcallnumber_part, 0, 3 ); # 3-digit tag number my $CNsubfields = substr( $pref_itemcallnumber_part, 3 ); # Any and all subfields + $CNsubfields = undef if $CNsubfields eq ''; my $temp2 = $temp->field($CNtag); next unless $temp2; -- 2.39.5