[Koha-devel] CVS: koha/C4 Catalogue.pm,1.10,1.11

Steve Tonnesen tonnesen at users.sourceforge.net
Tue Nov 6 10:16:04 CET 2001


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

Modified Files:
	Catalogue.pm 
Log Message:
Working out problems with MARC record support.


Index: Catalogue.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Catalogue.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** Catalogue.pm	2001/11/03 07:29:36	1.10
--- Catalogue.pm	2001/11/06 18:15:34	1.11
***************
*** 137,141 ****
      } elsif ($Subfield_ID) {
  	 # Subfield_ID does not make the record unique.  Could be multiple
! 	 # records with the same mark.  This is a bad situatoin.
  	my $sth=$dbh->prepare("select Subfield_Key, Subfield_Value from $firstdigit\XX_Subfield_Table where Subfield_Mark='$Subfield_Mark' and Subfield_ID=$Subfield_ID");
  	$sth->execute;
--- 137,141 ----
      } elsif ($Subfield_ID) {
  	 # Subfield_ID does not make the record unique.  Could be multiple
! 	 # records with the same mark.  This is a bad situation.
  	my $sth=$dbh->prepare("select Subfield_Key, Subfield_Value from $firstdigit\XX_Subfield_Table where Subfield_Mark='$Subfield_Mark' and Subfield_ID=$Subfield_ID");
  	$sth->execute;
***************
*** 191,195 ****
  	$origadditionalauthors->{$author}=1;
      }
!     $sth=$dbh->prepare("select subject from bibliosubjects where biblionumber=$biblionumber");
      $sth->execute;
      my $origsubjects;
--- 191,195 ----
  	$origadditionalauthors->{$author}=1;
      }
!     $sth=$dbh->prepare("select subject from bibliosubject where biblionumber=$biblionumber");
      $sth->execute;
      my $origsubjects;
***************
*** 294,298 ****
  	} else {
  	    my $q_newsubject=$dbh->quote($newsubject);
! 	    my $sth=$dbh->prepare("insert into bibliosubjects (subject,biblionumber) values ($q_newsubject, $biblionumber)");
  	    $sth->execute;
  	    logchange('kohadb', 'add', 'biblio', 'subject', $newsubject);
--- 294,298 ----
  	} else {
  	    my $q_newsubject=$dbh->quote($newsubject);
! 	    my $sth=$dbh->prepare("insert into bibliosubject (subject,biblionumber) values ($q_newsubject, $biblionumber)");
  	    $sth->execute;
  	    logchange('kohadb', 'add', 'biblio', 'subject', $newsubject);
***************
*** 313,321 ****
  	    my $q_origsubject=$dbh->quote($origsubject);
  	    logchange('kohadb', 'delete', 'biblio', '$biblionumber', 'subject', $origsubject);
! 	    my $sth=$dbh->prepare("delete from bibliosubjects where biblionumber=$biblionumber and subject=$q_origsubject");
  	    $sth->execute;
  	}
      }
  
      $dbh->disconnect;
  }
--- 313,359 ----
  	    my $q_origsubject=$dbh->quote($origsubject);
  	    logchange('kohadb', 'delete', 'biblio', '$biblionumber', 'subject', $origsubject);
! 	    my $sth=$dbh->prepare("delete from bibliosubject where biblionumber=$biblionumber and subject=$q_origsubject");
  	    $sth->execute;
  	}
      }
  
+ sub skip {
+ # At the moment this is just a straight copy of the subject code.  Needs heavy
+ # modification to work for additional authors, obviously.
+ # Check for additional author changes
+     
+     my $newadditionalauthor='';
+     my $additionalauthors;
+     foreach $newadditionalauthor (@{$biblio->{'additionalauthor'}}) {
+ 	$additionalauthors->{$newadditionalauthor}=1;
+ 	if ($origadditionalauthors->{$newadditionalauthor}) {
+ 	    $additionalauthors->{$newadditionalauthor}=2;
+ 	} else {
+ 	    my $q_newadditionalauthor=$dbh->quote($newadditionalauthor);
+ 	    my $sth=$dbh->prepare("insert into biblioadditionalauthors (additionalauthor,biblionumber) values ($q_newadditionalauthor, $biblionumber)");
+ 	    $sth->execute;
+ 	    logchange('kohadb', 'add', 'biblio', 'additionalauthor', $newadditionalauthor);
+ 	    my $subfields;
+ 	    $subfields->{1}->{'Subfield_Mark'}='a';
+ 	    $subfields->{1}->{'Subfield_Value'}=$newadditionalauthor;
+ 	    my $tag='650';
+ 	    my $Record_ID;
+ 	    foreach $Record_ID (@marcrecords) {
+ 		addTag($env, $Record_ID, $tag, ' ', ' ', $subfields);
+ 		logchange('marc', 'add', $Record_ID, '650', 'a', $newadditionalauthor);
+ 	    }
+ 	}
+     }
+     my $origadditionalauthor;
+     foreach $origadditionalauthor (keys %$origadditionalauthors) {
+ 	if ($additionalauthors->{$origadditionalauthor} == 1) {
+ 	    my $q_origadditionalauthor=$dbh->quote($origadditionalauthor);
+ 	    logchange('kohadb', 'delete', 'biblio', '$biblionumber', 'additionalauthor', $origadditionalauthor);
+ 	    my $sth=$dbh->prepare("delete from biblioadditionalauthors where biblionumber=$biblionumber and additionalauthor=$q_origadditionalauthor");
+ 	    $sth->execute;
+ 	}
+     }
+ 
+ }
      $dbh->disconnect;
  }
***************
*** 330,334 ****
  	my $original=shift;
  	my $new=shift;
! 	print "KOHA: $type $section $item $original $new\n";
      } elsif ($database eq 'marc') {
  	my $type=shift;
--- 368,372 ----
  	my $original=shift;
  	my $new=shift;
! 	print STDERR "KOHA: $type $section $item $original $new\n";
      } elsif ($database eq 'marc') {
  	my $type=shift;
***************
*** 339,343 ****
  	my $original=shift;
  	my $new=shift;
! 	print "MARC: $type $Record_ID $tag $mark $subfield_ID $original $new\n";
      }
  }
--- 377,381 ----
  	my $original=shift;
  	my $new=shift;
! 	print STDERR "MARC: $type $Record_ID $tag $mark $subfield_ID $original $new\n";
      }
  }





More information about the Koha-devel mailing list