koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] CVS: koha/C4 Biblio.pm,1.16,1.17


From: Paul POULAIN
Subject: [Koha-cvs] CVS: koha/C4 Biblio.pm,1.16,1.17
Date: Thu, 10 Oct 2002 07:48:30 -0700

Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv12650

Modified Files:
        Biblio.pm 
Log Message:
bugfixes

Index: Biblio.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Biblio.pm,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -r1.16 -r1.17
*** Biblio.pm   7 Oct 2002 14:04:26 -0000       1.16
--- Biblio.pm   10 Oct 2002 14:48:25 -0000      1.17
***************
*** 2,5 ****
--- 2,8 ----
  # $Id$
  # $Log$
+ # Revision 1.17  2002/10/10 14:48:25  tipaul
+ # bugfixes
+ #
  # Revision 1.16  2002/10/07 14:04:26  tipaul
  # road to 1.3.1 : viewing MARC biblio
***************
*** 291,297 ****
  
      if ($forlibrarian eq 1) {
!       $sth=$dbh->prepare("select tagfield,tagsubfield,liblibrarian,tab as lib 
from marc_subfield_structure");
      } else {
!       $sth=$dbh->prepare("select tagfield,tagsubfield,libopac,tab as lib from 
marc_subfield_structure");
      }
      $sth->execute;
--- 294,300 ----
  
      if ($forlibrarian eq 1) {
!       $sth=$dbh->prepare("select tagfield,tagsubfield,liblibrarian as lib,tab 
from marc_subfield_structure");
      } else {
!       $sth=$dbh->prepare("select tagfield,tagsubfield,libopac as lib,tab from 
marc_subfield_structure");
      }
      $sth->execute;
***************
*** 301,305 ****
        $res->{$tag}->{$subfield}->{lib}=$lib;
        $res->{$tag}->{$subfield}->{tab}=$tab;
- 
      }
      return $res;
--- 304,307 ----
***************
*** 435,474 ****
      my $record = MARC::Record->new();
  #---- TODO : the leader is missing
!     my $sth=$dbh->prepare("select 
bibid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue,valuebloblink
 
!                                from marc_subfield_table 
                                 where bibid=? order by tagorder,subfieldorder
                         ");
      my $sth2=$dbh->prepare("select subfieldvalue from marc_blob_subfield 
where blobidlink=?");
      $sth->execute($bibid);
      while (my $row=$sth->fetchrow_hashref) {
!       if ($row->{'valuebloblink'}) { #---- search blob if there is one
!           $sth2->execute($row->{'valuebloblink'});
!           my $row2=$sth2->fetchrow_hashref;
!           $sth2->finish;
!           $row->{'subfieldvalue'}=$row2->{'subfieldvalue'};
!       }
!       if ($record->field($row->{'tag'})) {
!           my $field;
! #--- this test must stay as this, because of strange behaviour of mySQL/Perl 
DBI with char var containing a number...
! #--- sometimes, eliminates 0 at beginning, sometimes no ;-\\\
!           if (length($row->{'tag'}) <3) {
!               $row->{'tag'} = "0".$row->{'tag'};
!           }
!           $field =$record->field($row->{'tag'});
!           if ($field) {
!               my $x = 
$field->add_subfields($row->{'subfieldcode'},$row->{'subfieldvalue'});
!               $record->delete_field($field);
!               $record->add_fields($field);
!           }
!       } else {
!           if (length($row->{'tag'}) < 3) {
!               $row->{'tag'} = "0".$row->{'tag'};
!           }
!           my $temp = MARC::Field->new($row->{'tag'}," "," ", 
$row->{'subfieldcode'} => $row->{'subfieldvalue'});
!           $record->add_fields($temp);
        }
! 
!     }
!     return $record;
  }
  sub MARCgetitem {
--- 437,472 ----
      my $record = MARC::Record->new();
  #---- TODO : the leader is missing
!     my $sth=$dbh->prepare("select 
bibid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue,valuebloblink
!                                from marc_subfield_table
                                 where bibid=? order by tagorder,subfieldorder
                         ");
      my $sth2=$dbh->prepare("select subfieldvalue from marc_blob_subfield 
where blobidlink=?");
      $sth->execute($bibid);
+     my $prevtagorder=1;
+     my $prevtag;
+     my %subfieldlist={};
      while (my $row=$sth->fetchrow_hashref) {
!               if ($row->{'valuebloblink'}) { #---- search blob if there is one
!                       $sth2->execute($row->{'valuebloblink'});
!                       my $row2=$sth2->fetchrow_hashref;
!                       $sth2->finish;
!                       $row->{'subfieldvalue'}=$row2->{'subfieldvalue'};
!               }
!               if ($row->{tagorder} ne $prevtagorder) {
!                       my $field = MARC::Field->new( $prevtag, "", "", 
%subfieldlist);
!                       $record->add_fields($field);
!                       $prevtagorder=$row->{tagorder};
!                       $prevtag = $row->{tag};
!                       %subfieldlist={};
!                       %subfieldlist->{$row->{'subfieldcode'}} = 
$row->{'subfieldvalue'};
!               } else {
!                       %subfieldlist->{$row->{'subfieldcode'}} = 
$row->{'subfieldvalue'};
!                       $prevtag= $row->{tag};
!               }
        }
!       # the last has not been included inside the loop... do it now !
!       my $field = MARC::Field->new( $prevtag, "", "", %subfieldlist);
!       $record->add_fields($field);
!       return $record;
  }
  sub MARCgetitem {




reply via email to

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