koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/C4 AuthoritiesMarc.pm [rel_2_2]


From: paul poulain
Subject: [Koha-cvs] koha/C4 AuthoritiesMarc.pm [rel_2_2]
Date: Thu, 10 Aug 2006 12:42:34 +0000

CVSROOT:        /cvsroot/koha
Module name:    koha
Branch:         rel_2_2
Changes by:     paul poulain <tipaul>   06/08/10 12:42:33

Modified files:
        C4             : AuthoritiesMarc.pm 

Log message:
        warn commenting + some bugfixes I forgot to commit (for authorities 
editing)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/AuthoritiesMarc.pm?cvsroot=koha&only_with_tag=rel_2_2&r1=1.9.2.23&r2=1.9.2.24

Patches:
Index: AuthoritiesMarc.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/AuthoritiesMarc.pm,v
retrieving revision 1.9.2.23
retrieving revision 1.9.2.24
diff -u -b -r1.9.2.23 -r1.9.2.24
--- AuthoritiesMarc.pm  3 Aug 2006 00:50:34 -0000       1.9.2.23
+++ AuthoritiesMarc.pm  10 Aug 2006 12:42:33 -0000      1.9.2.24
@@ -798,7 +798,6 @@
 
             if ((@$tags[$i] ne $prevtag)){
                 $j++ unless (@$tags[$i] eq "");
-                warn 
"IND:".substr(@$indicator[$j],0,1).substr(@$indicator[$j],1,1)." 
"address@hidden;
 
                 if (!$first){
                     $xml.="</datafield>\n";
@@ -841,7 +840,7 @@
             $prevtag = @$tags[$i];
         }
         $xml.= MARC::File::XML::footer();
-        warn $xml;
+#         warn $xml;
         return $xml
 }
 sub AUTHhtml2marc {
@@ -853,38 +852,61 @@
        my $field; # if tag >=10
        for (my $i=0; $i< @$rtags; $i++) {
                # rebuild MARC::Record
+#                      warn "0=>"address@hidden@$rsubfields[$i]." = 
"address@hidden": ";
                if (@$rtags[$i] ne $prevtag) {
                        if ($prevtag < 10) {
                                if ($prevvalue) {
+                                       if (($prevtag ne '000') && ($prevvalue 
ne "")) {
                                        $record->add_fields((sprintf 
"%03s",$prevtag),$prevvalue);
+                                       } elsif ($prevvalue ne ""){
+                                               $record->leader($prevvalue);
+                                       }
                                }
                        } else {
-                               if ($field) {
+                               if (($field) && ($field ne "")) {
                                        $record->add_fields($field);
                                }
                        }
                        address@hidden'  ';
+                       # skip blank tags, I hope this works 
+                       if (@$rtags[$i] eq ''){
+                           $prevtag = @$rtags[$i];
+                           undef $field;
+                           next;
+                       }
                        if (@$rtags[$i] <10) {
                                $prevvalue= @$rvalues[$i];
                                undef $field;
                        } else {
                                undef $prevvalue;
+                               if (@$rvalues[$i] eq "") {
+                               undef $field;
+                               } else {
                                $field = MARC::Field->new( (sprintf 
"%03s",@$rtags[$i]), substr(address@hidden,0,1),substr(address@hidden,1,1), 
@$rsubfields[$i] => @$rvalues[$i]);
                        }
+#                      warn "1=>"address@hidden@$rsubfields[$i]." = 
"address@hidden": ".$field->as_formatted;
+                       }
                        $prevtag = @$rtags[$i];
                } else {
                        if (@$rtags[$i] <10) {
                                address@hidden;
                        } else {
                                if (length(@$rvalues[$i])>0) {
+                                       if ($field) {
                                        $field->add_subfields(@$rsubfields[$i] 
=> @$rvalues[$i]);
+                                       } else {
+                                       $field = MARC::Field->new( (sprintf 
"%03s",@$rtags[$i]), substr(address@hidden,0,1),substr(address@hidden,1,1), 
@$rsubfields[$i] => @$rvalues[$i]);
+                                       }
+#                      warn "2=>"address@hidden@$rsubfields[$i]." = 
"address@hidden": ".$field->as_formatted;
                                }
                        }
                        $prevtag= @$rtags[$i];
                }
        }
+       #}
        # the last has not been included inside the loop... do it now !
-       $record->add_fields($field) if $field;
+       $record->add_fields($field) if (($field) && $field ne "");
+       #warn "HTML2MARC=".$record->as_formatted;
        return $record;
 }
 
@@ -1059,7 +1081,7 @@
 
 sub FindDuplicate {
        my ($record,$authtypecode)address@hidden;
-       warn "IN for ".$record->as_formatted;
+#      warn "IN for ".$record->as_formatted;
        my $dbh = C4::Context->dbh;
 
 #      warn "".$record->as_formatted;
@@ -1075,7 +1097,7 @@
        my @subfield = split /\[/,  $taglist;
        my $max = @subfield;
        for (my $i=1; $i<$max;$i++){
-               warn " ".$subfield[$i];
+#              warn " ".$subfield[$i];
                $subfield[$i]=substr($subfield[$i],3,1);
 #              warn " ".$subfield[$i];
        }
@@ -1086,7 +1108,7 @@
 #              warn " field $auth_tag_to_report exists";
                while (my ($tag,$subfield) = $sth->fetchrow){
                        if ($record->field($tag)->subfield($subfield)) {
-                               warn "tag :".$tag." subfield: $subfield value : 
".$record->field($tag)->subfield($subfield);
+#                              warn "tag :".$tag." subfield: $subfield value : 
".$record->field($tag)->subfield($subfield);
                                push @tags, $tag.$subfield;
 #                              warn "'".$tag.$subfield."' value :". 
$record->field($tag)->subfield($subfield);
                                push @and_or, "and";
@@ -1100,7 +1122,7 @@
        my ($finalresult,$nbresult) = 
authoritysearch($dbh,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,0,10,$authtypecode);
        # there is at least 1 result => return the 1st one
        if ($nbresult) {
-               warn "XXXXX $nbresult => 
"address@hidden>{authid},@$finalresult[0]->{summary};
+#              warn "XXXXX $nbresult => 
"address@hidden>{authid},@$finalresult[0]->{summary};
                return @$finalresult[0]->{authid},@$finalresult[0]->{summary};
        }
        # no result, returns nothing
@@ -1311,8 +1333,11 @@
 
 =cut
 
-# $Id: AuthoritiesMarc.pm,v 1.9.2.23 2006/08/03 00:50:34 kados Exp $
+# $Id: AuthoritiesMarc.pm,v 1.9.2.24 2006/08/10 12:42:33 tipaul Exp $
 # $Log: AuthoritiesMarc.pm,v $
+# Revision 1.9.2.24  2006/08/10 12:42:33  tipaul
+# warn commenting + some bugfixes I forgot to commit (for authorities editing)
+#
 # Revision 1.9.2.23  2006/08/03 00:50:34  kados
 # fix to bug 1130: Summary display broken for MARC21 Authorities
 #




reply via email to

[Prev in Thread] Current Thread [Next in Thread]