Bug 12495 - Include streetnumber in hold alert address
[koha_fer] / C4 / Ris.pm
index 616bed6..d601c96 100644 (file)
--- a/C4/Ris.pm
+++ b/C4/Ris.pm
@@ -40,6 +40,7 @@ package C4::Ris;
 
 # Modified 2008 by BibLibre for Koha
 # Modified 2011 by Catalyst
+# Modified 2011 by Equinox Software, Inc.
 #
 # This file is part of Koha.
 #
@@ -59,12 +60,12 @@ package C4::Ris;
 #
 
 #use strict;
-#use warnings; FIXME - Bug 2505
+#use warnings;
 
 use vars qw($VERSION @ISA @EXPORT);
 
 # set the version for version checking
-$VERSION = 3.00;
+$VERSION = 3.07.00.049;
 
 @ISA = qw(Exporter);
 
@@ -208,7 +209,12 @@ sub marc2ris {
            &print_pubinfo($record->field('210'));
        }
        else { ## marc21, ukmarc
-           &print_pubinfo($record->field('260'));
+            if ($record->field('264')) {
+                 &print_pubinfo($record->field('264'));
+            }
+            else {
+            &print_pubinfo($record->field('260'));
+            }
        }
 
        ## 6XX fields contain KW candidates. We add all of them to a
@@ -251,7 +257,7 @@ sub marc2ris {
        elsif ($intype eq "ukmarc") {
            foreach ('500', '501', '502', '503', '504', '505', '506', '508', '514', '515', '516', '521', '524', '525', '528', '530', '531', '532', '533', '534', '535', '537', '538', '540', '541', '542', '544', '554', '555', '556', '557', '561', '563', '580', '583', '584', '586') {
                &pool_subx(\@notepool, $_, $record->field($_));
-           }
+        }
        }
        else { ## assume marc21
            foreach ('500', '501', '502', '504', '505', '506', '507', '508', '510', '511', '513', '514', '515', '516', '518', '521', '522', '524', '525', '526', '530', '533', '534', '535') {
@@ -276,10 +282,10 @@ sub marc2ris {
            &print_abstract($record->field('520'));
        }
     
-        # 856u has the URI
-        if ($record->field('856')){
-           print_uri($record->field('856'));
-       }           
+    # 856u has the URI
+    if ($record->field('856')) {
+        print_uri($record->field('856'));
+    }
 
        ## end RIS dataset
        print "ER  - \r\n";
@@ -592,10 +598,12 @@ sub print_issn {
 # print_uri() prints info from 856 u 
 ###
 sub print_uri {
-    my $f856 = shift;
-    
-    if (my $uri = $f856->subfield('u')){
-       print "UR  - ", charconv($uri), "\n";
+    my @f856s = @_;
+
+    foreach my $f856 (@f856s) {
+        if (my $uri = $f856->subfield('u')) {
+               print "UR  - ", charconv($uri), "\r\n";
+        }
     }
 }
 
@@ -639,7 +647,7 @@ sub print_pubinfo {
     my($pubinfofield) = @_;
 
     if (!$pubinfofield) {
-       print "<marc>no publication information found (260)\r\n" if $marcprint;
+    print "<marc>no publication information found (260/264)\r\n" if $marcprint;
        warn("no publication information found") if $marcprint;
     }
     else {
@@ -760,7 +768,7 @@ sub get_keywords {
     my @subfields = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y', 'z', '2', '3', '4');
 
     ## loop over all 6XX fields
-    foreach $kwfield (@keywords) {
+    foreach my $kwfield (@keywords) {
        if ($kwfield != undef) {
            ## authornames get special treatment
            if ($fieldname eq "600") {
@@ -773,9 +781,9 @@ sub get_keywords {
                @kwsubfields = $kwfield->subfields();
                
                ## loop over all available subfield tuples
-               foreach $kwtuple (@kwsubfields) {
+        foreach my $kwtuple (@kwsubfields) {
                    ## loop over all subfields to check
-                   foreach $subfield (@subfields) {
+            foreach my $subfield (@subfields) {
                        ## [0] contains subfield code
                        if (@$kwtuple[0] eq $subfield) {
                            ## [1] contains value, remove trailing separators
@@ -883,15 +891,15 @@ sub pool_subx {
     }
 
     ## loop over all notefields
-    foreach $notefield (@notefields) {
+    foreach my $notefield (@notefields) {
        if ($notefield != undef) {
            ## retrieve all available subfield tuples
            @notesubfields = $notefield->subfields();
 
            ## loop over all subfield tuples
-           foreach $notetuple (@notesubfields) {
+        foreach my $notetuple (@notesubfields) {
                ## loop over all subfields to check
-               foreach $subfield (@subfields) {
+        foreach my $subfield (@subfields) {
                    ## [0] contains subfield code
                    if (@$notetuple[0] eq $subfield) {
                        ## [1] contains value, remove trailing separators
@@ -924,20 +932,20 @@ sub print_abstract {
     my @abstrings;
 
     ## loop over all abfields
-    foreach $abfield (@abfields) {
-       foreach $field (@subfields) { 
-           if (length ($abfield->subfield($field)) > 0) {
-               my $ab = $abfield->subfield($field);
+    foreach my $abfield (@abfields) {
+        foreach my $field (@subfields) {
+            if ( length( $abfield->subfield($field) ) > 0 ) {
+                my $ab = $abfield->subfield($field);
 
-               print "<marc>field 520 subfield $field: $ab\r\n" if $marcprint;
+                print "<marc>field 520 subfield $field: $ab\r\n" if $marcprint;
 
-               ## strip trailing separators
-               $ab =~ s% *[;,:./]*$%%;
+                ## strip trailing separators
+                $ab =~ s% *[;,:./]*$%%;
 
-               ## add string to the list
-               push (@abstrings, $ab);
-           }
-       }
+                ## add string to the list
+                push( @abstrings, $ab );
+            }
+        }
     }
 
     my $allabs = join "; ", @abstrings;