From d438e8b9fa84293eeaaa07aff3f8cf2021203514 Mon Sep 17 00:00:00 2001 From: djfiander Date: Wed, 12 Nov 2008 02:01:50 +0000 Subject: [PATCH] Minor cleanups + include chronology in formatted display. git-svn-id: svn://svn.open-ils.org/ILS/trunk@11147 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Utils/MFHD/Holding.pm | 37 +++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/MFHD/Holding.pm b/Open-ILS/src/perlmods/OpenILS/Utils/MFHD/Holding.pm index 395de87343..e742a2b38b 100755 --- a/Open-ILS/src/perlmods/OpenILS/Utils/MFHD/Holding.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/MFHD/Holding.pm @@ -3,6 +3,8 @@ use strict; use integer; use Carp; +use Data::Dumper; + use MARC::Record; sub new { @@ -64,23 +66,50 @@ sub format { my $caption = $self->{CAPTION}; my $str = ""; + # Enumerations foreach my $key ('a'..'f') { - last if !exists $caption->{ENUMS}->{$key}; + last if !defined $caption->caption($key); # printf("fmt %s: '%s'\n", $key, $caption->caption($key)); $str .= ($key eq 'a' ? "" : ':') . $caption->caption($key) . $self->{ENUMS}->{$key}->{HOLDINGS}; } + # Chronology + if (defined $caption->caption('i')) { + $str .= '('; + foreach my $key ('i'..'l') { + my $capstr; + + last if !defined $caption->caption($key); + + $capstr = $caption->caption($key); + if (substr($capstr,0,1) eq '(') { + # a caption enclosed in parentheses is not displayed + $capstr = ''; + } + + $str .= ($key eq 'i' ? '' : ':') . $capstr . $self->{CHRON}->{$key}; + } + $str .= ')'; + } + if (exists $caption->{ENUMS}->{'g'}) { # There's at least one level of alternative enumeration - $str .= ' '; + $str .= '='; foreach my $key ('g', 'h') { - $str .= ($key eq 'g' ? '' : ':') . $caption->enum($key) . $self->{ENUMS}->{$key}->{HOLDINGS}; + $str .= ($key eq 'g' ? '' : ':') . $caption->caption($key) . $self->{ENUMS}->{$key}->{HOLDINGS}; + } + + if (exists $caption->{CHRONS}->{m}) { + # Alternative Chronology + $str .= '('; + $str .= $caption->caption('m') . $self->{ENUMS}->{m}->{HOLDINGS}; + $str .= ')'; } } # Public Note - $str .= ' '. $caption->{ENUMS}->{'z'} if (exists $caption->{ENUMS}->{'z'}); + $str .= ' '. $caption->{ENUMS}->{'z'} if (defined $caption->caption('z')); # Breaks in the sequence if ($self->{BREAK} eq 'n') { -- 2.11.0