From 4f270fe8f95a3957a5dba790efb75948e0ad6706 Mon Sep 17 00:00:00 2001 From: Katrin Fischer Date: Thu, 27 Feb 2014 11:12:11 +0100 Subject: [PATCH] Bug 11856: Add publication year and edition to English acq PDF templates To test: - Switch OrderPdfFormat to pdfformat::layout3pages - Create one or more baskets with a few orders, make sure you are adding some records that contain a publication year and/or edition statement - Close the basket - Create a basket group - Print the PDF and check that edition and publication year show up and bibliographic information is printed correctly - Switch OrderPdfFormat to pdfformat::layout2pages - Repeat PDF print This patch also changes the formatting a bit and differentiates between UNIMARC and MARC21. For MARC21 no additional punctuation is needed as those are cataloged with the information. Only spaces are added for MARC21, while UNIMARC is kept they way it was before. http://bugs.koha-community.org/show_bug.cgi?id=11859 --- acqui/basketgroup.pl | 6 +++++- acqui/pdfformat/layout2pages.pm | 22 +++++++++++++++++++++- acqui/pdfformat/layout3pages.pm | 23 ++++++++++++++++++++++- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/acqui/basketgroup.pl b/acqui/basketgroup.pl index 4919ac8..b346b65 100755 --- a/acqui/basketgroup.pl +++ b/acqui/basketgroup.pl @@ -200,12 +200,15 @@ sub printbasketgrouppdf{ # Editor Number my $en; + my $edition; my $marcrecord=eval{MARC::Record::new_from_xml( $ord->{marcxml},'UTF-8' )}; if ($marcrecord){ if ( C4::Context->preference("marcflavour") eq 'UNIMARC' ) { $en = $marcrecord->subfield( '345', "b" ); + $edition = $marcrecord->subfield( '205', 'a' ); } elsif ( C4::Context->preference("marcflavour") eq 'MARC21' ) { $en = $marcrecord->subfield( '037', "a" ); + $edition = $marcrecord->subfield( '250', 'a' ); } } @@ -213,8 +216,9 @@ sub printbasketgrouppdf{ isbn => ($ord->{isbn} ? $ord->{isbn} : undef), itemtype => ( $ord->{itemtype} and $bib->{itemtype} ? $itemtypes->{$bib->{itemtype}}->{description} : undef ), en => ( $en ? $en : undef ), + edition => ( $edition ? $edition : undef ), }; - for my $key ( qw/ gstrate author title itemtype publishercode discount quantity rrpgsti rrpgste gstgsti gstgste ecostgsti ecostgste gstvalue totalgste totalgsti / ) { + for my $key ( qw/ gstrate author title itemtype publishercode copyrightdate publicationyear discount quantity rrpgsti rrpgste gstgsti gstgste ecostgsti ecostgste gstvalue totalgste totalgsti / ) { $ba_order->{$key} = $ord->{$key}; } diff --git a/acqui/pdfformat/layout2pages.pm b/acqui/pdfformat/layout2pages.pm index 335dc0a..df84c7d 100644 --- a/acqui/pdfformat/layout2pages.pm +++ b/acqui/pdfformat/layout2pages.pm @@ -88,12 +88,32 @@ sub printorders { } push(@$abaskets, $arrbasket); + my $titleinfo; for my $basket (@$baskets){ for my $line (@{$orders->{$basket->{basketno}}}) { $arrbasket = undef; + $titleinfo = ""; + if ( C4::Context->preference("marcflavour") eq 'UNIMARC' ) { + $titleinfo = $line->{title} . " / " . $line->{author} . + ( $line->{isbn} ? " ISBN: " . $line->{isbn} : '' ) . + ( $line->{en} ? " EN: " . $line->{en} : '' ) . + ( $line->{itemtype} ? ", " . $line->{itemtype} : '' ) . + ( $line->{edition} ? ", " . $line->{edition} : '' ) . + ( $line->{publishercode} ? ' published by '. $line->{publishercode} : '') . + ( $line->{publicationyear} ? ', '. $line->{publicationyear} : ''); + } + else { # MARC21, NORMARC + $titleinfo = $line->{title} . " " . $line->{author} . + ( $line->{isbn} ? " ISBN: " . $line->{isbn} : '' ) . + ( $line->{en} ? " EN: " . $line->{en} : '' ) . + ( $line->{itemtype} ? " " . $line->{itemtype} : '' ) . + ( $line->{edition} ? ", " . $line->{edition} : '' ) . + ( $line->{publishercode} ? ' published by '. $line->{publishercode} : '') . + ( $line->{copyrightdate} ? ' '. $line->{copyrightdate} : ''); + } push( @$arrbasket, $basket->{basketno}, - $line->{title} . " / " . $line->{author} . ( $line->{isbn} ? " ISBN : " . $line->{isbn} : '' ) . ( $line->{en} ? " EN : " . $line->{en} : '' ) . ", " . $line->{itemtype} . ( $line->{publishercode} ? ' published by '. $line->{publishercode} : ""), + $titleinfo, $line->{quantity}, $num->format_price($line->{rrpgsti}), $num->format_price($line->{discount}).'%', diff --git a/acqui/pdfformat/layout3pages.pm b/acqui/pdfformat/layout3pages.pm index b9d10aa..d09be33 100644 --- a/acqui/pdfformat/layout3pages.pm +++ b/acqui/pdfformat/layout3pages.pm @@ -108,10 +108,31 @@ sub printorders { push(@$arrbasket, $bkey); } push(@$abaskets, $arrbasket); + + my $titleinfo; foreach my $line (@{$orders->{$basket->{basketno}}}) { $arrbasket = undef; + $titleinfo = ""; + if ( C4::Context->preference("marcflavour") eq 'UNIMARC' ) { + $titleinfo = $line->{title} . " / " . $line->{author} . + ( $line->{isbn} ? " ISBN: " . $line->{isbn} : '' ) . + ( $line->{en} ? " EN: " . $line->{en} : '' ) . + ( $line->{itemtype} ? ", " . $line->{itemtype} : '' ) . + ( $line->{edition} ? ", " . $line->{edition} : '' ) . + ( $line->{publishercode} ? ' published by '. $line->{publishercode} : '') . + ( $line->{publicationyear} ? ', '. $line->{publicationyear} : ''); + } + else { # MARC21, NORMARC + $titleinfo = $line->{title} . " " . $line->{author} . + ( $line->{isbn} ? " ISBN: " . $line->{isbn} : '' ) . + ( $line->{en} ? " EN: " . $line->{en} : '' ) . + ( $line->{itemtype} ? " " . $line->{itemtype} : '' ) . + ( $line->{edition} ? ", " . $line->{edition} : '' ) . + ( $line->{publishercode} ? ' published by '. $line->{publishercode} : '') . + ( $line->{copyrightdate} ? ' '. $line->{copyrightdate} : ''); + } push( @$arrbasket, - $line->{title} . " / " . $line->{author} . ( $line->{isbn} ? " ISBN : " . $line->{isbn} : '' ) . ( $line->{en} ? " EN : " . $line->{en} : '' ) . ", " . $line->{itemtype} . ( $line->{publishercode} ? ' published by '. $line->{publishercode} : ""), + $titleinfo, $line->{quantity}, $num->format_price($line->{rrpgste}), $num->format_price($line->{rrpgsti}), -- 1.7.10.4