From 6ad858a41096c33add7092ff53fa1195eaed1dc0 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 --- cataloguing/additem.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index faa5ab75bc..e099215256 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -154,6 +154,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