[Koha-patches] [PATCH] [SIGNED-OFF] BZ6076: acqui pdf error when marcxml wrong

Christophe Croullebois christophe.croullebois at biblibre.com
Fri Aug 5 11:57:32 CEST 2011


From: Jonathan Druart <jonathan.druart at biblibre.com>

when marcxml is wrong the PDF is not generated. There is a Perl error
because
the biblio can't be retrieved.
This can be workarounded with a eval when decoding the marc

Signed-off-by: Christophe Croullebois <christophe.croullebois at biblibre.com>
---
 acqui/basketgroup.pl |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/acqui/basketgroup.pl b/acqui/basketgroup.pl
index 08356f8..e65fab4 100755
--- a/acqui/basketgroup.pl
+++ b/acqui/basketgroup.pl
@@ -226,10 +226,13 @@ sub printbasketgrouppdf{
                 push(@ba_orders, \@ba_order);
                 # Editor Number
                 my $en;
-                if (C4::Context->preference("marcflavour") eq 'UNIMARC') {
-                    $en = MARC::Record::new_from_xml($ord->{marcxml},'UTF-8')->subfield('345',"b");
-                } elsif (C4::Context->preference("marcflavour") eq 'MARC21') {
-                    $en = MARC::Record::new_from_xml($ord->{marcxml},'UTF-8')->subfield('037',"a");
+                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" );
+                    } elsif ( C4::Context->preference("marcflavour") eq 'MARC21' ) {
+                        $en = $marcrecord->subfield( '037', "a" );
+                    }
                 }
                 if($en){
                     push(@ba_order, $en);
-- 
1.7.0.4



More information about the Koha-patches mailing list