Bug 28533: Set subfields to 'undef' if whole field request in itemcallnumebr system preference

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 <salman.ali@inLibro.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Nick Clemens 2021-06-09 12:59:27 +00:00 committed by Jonathan Druart
parent 1817650440
commit 6ad858a410
1 changed files with 1 additions and 0 deletions

View File

@ -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;