From ef9f3adbddbffdf0f734e68e11a0c0424d6ec975 Mon Sep 17 00:00:00 2001 From: Theodoros Theodoropoulos Date: Wed, 8 Apr 2020 08:21:12 +0100 Subject: [PATCH] Bug 23514: Split Call Numbers for all layout types This patch ensures call numbers are properly split for layout types other than 'BAR'. Test plan: 1. Go to Label Creator and choose/create a Label Layout with "Choose layout type: Biblio" 2. make sure you have at least "itemcallnumber" in Bibliographic data to print/Data fields 3. check "Split call numbers" box and save the layout (ie testlayout) 4. create a label batch, using items that have a call number (ie DC611.B848 H84 1997). LCC is used here, but you may try with Dewey as well. 5. export selected batch using any template and the layout you created in previous step to a PDF 6. Call numbers are splitted (as expected) in the resulting PDF file 7. edit the layout you created in the previous step (ie testlayout) and change the "Choose layout type:" to either Biblio/Barcode (BIBBAR) or Barcode/Biblio (BARBIB) 8. export the same batch using the same template and layout as before 9. Call numbers are NOT splitted at all After patch is applied, call numbers splitting functions are applied even in Biblio/Barcode (BIBBAR) or Barcode/Biblio (BARBIB) layout types. Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize --- C4/Labels/Label.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Labels/Label.pm b/C4/Labels/Label.pm index ac5055fb85..a272828d58 100644 --- a/C4/Labels/Label.pm +++ b/C4/Labels/Label.pm @@ -383,7 +383,7 @@ sub draw_label_text { my @label_lines; # Fields which hold call number data FIXME: ( 060? 090? 092? 099? ) my @callnumber_list = qw(itemcallnumber 050a 050b 082a 952o 995k); - if ((grep {$field->{'code'} =~ m/$_/} @callnumber_list) and ($self->{'printing_type'} eq 'BIB') and ($self->{'callnum_split'})) { # If the field contains the call number, we do some sp + if ((grep {$field->{'code'} =~ m/$_/} @callnumber_list) and ($self->{'printing_type'} ne 'BAR') and ($self->{'callnum_split'})) { # If the field contains the call number, we do some sp if ($split_routine eq 'LCC' || $split_routine eq 'nlm') { # NLM and LCC should be split the same way @label_lines = C4::ClassSplitRoutine::LCC::split_callnumber($field_data); @label_lines = C4::ClassSplitRoutine::Generic::split_callnumber($field_data) unless @label_lines; # If it was not a true lccn, try it as a custom call number -- 2.39.5