[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.9,1.10
From: |
Alan Millar |
Subject: |
[Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.9,1.10 |
Date: |
Thu, 23 May 2002 13:49:34 -0700 |
Update of /cvsroot/koha/koha/acqui.simple
In directory usw-pr-cvs1:/tmp/cvs-serv29290
Modified Files:
marcimport.pl
Log Message:
Moved addition of Biblioitem to separate subroutine
Index: marcimport.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/marcimport.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** marcimport.pl 22 May 2002 06:45:30 -0000 1.9
--- marcimport.pl 23 May 2002 20:49:31 -0000 1.10
***************
*** 262,337 ****
} else {
use strict;
! # It doesn't exist; add it.
! $biblionumber=GetOrAddBiblio($dbh,
! { title =>$input->param('title'),
! author =>$input->param('author'),
! copyright =>$input->param('copyrightdate'),
! seriestitle =>$input->param('seriestitle'),
! notes =>$input->param('notes'),
! abstract =>$input->param('abstract'),
! subtitle =>$input->param('subtitle'),
! }
);
- $sth=$dbh->prepare("select max(biblioitemnumber) from biblioitems");
- $sth->execute;
- ($biblioitemnumber) = $sth->fetchrow;
- $biblioitemnumber++;
- my $q_isbn=$dbh->quote($isbn);
- my $q_issn=$dbh->quote($issn);
- my $q_lccn=$dbh->quote($lccn);
- my $q_volume=$dbh->quote($input->param('volume'));
- my $q_number=$dbh->quote($input->param('number'));
- my $q_itemtype=$dbh->quote($input->param('itemtype'));
- my $q_dewey=$dbh->quote($input->param('dewey'));
- my $q_subclass=$dbh->quote($input->param('subclass'));
- my $q_publicationyear=$dbh->quote($input->param('publicationyear'));
- my $q_publishercode=$dbh->quote($input->param('publishercode'));
- my $q_volumedate=$dbh->quote($input->param('volumedate'));
- my $q_volumeddesc=$dbh->quote($input->param('volumeddesc'));
- my $q_illus=$dbh->quote($input->param('illustrator'));
- my $q_pages=$dbh->quote($input->param('pages'));
- my $q_notes=$dbh->quote($input->param('note'));
- my $q_size=$dbh->quote($input->param('size'));
- my $q_place=$dbh->quote($input->param('place'));
- my $q_marc=$dbh->quote($input->param('marc'));
-
- $sth=$dbh->prepare("insert into biblioitems (biblioitemnumber,
biblionumber, volume, number, itemtype, isbn, issn, dewey, subclass,
publicationyear, publishercode, volumedate, volumeddesc, illus, pages, notes,
size, place, lccn, marc) values ($biblioitemnumber, $biblionumber, $q_volume,
$q_number, $q_itemtype, $q_isbn, $q_issn, $q_dewey, $q_subclass,
$q_publicationyear, $q_publishercode, $q_volumedate, $q_volumeddesc, $q_illus,
$q_pages, $q_notes, $q_size, $q_place, $q_lccn, $q_marc)");
- $sth->execute;
- my $subjectheadings=$input->param('subject');
- my $additionalauthors=$input->param('additionalauthors');
- my @subjectheadings=split(/\n/,$subjectheadings);
- my $subjectheading;
- foreach $subjectheading (@subjectheadings) {
- # remove any line ending characters (Ctrl-J or M)
- $subjectheading=~s/\013//g;
- $subjectheading=~s/\010//g;
- # convert to upper case
- $subjectheading=uc($subjectheading);
- chomp ($subjectheading);
- while (ord(substr($subjectheading, length($subjectheading)-1,
1))<14) {
- chop $subjectheading;
- }
- # quote value
- my $q_subjectheading=$dbh->quote($subjectheading);
- $sth=$dbh->prepare("insert into bibliosubject (biblionumber,subject)
- values ($biblionumber, $q_subjectheading)");
- $sth->execute;
- }
- my @additionalauthors=split(/\n/,$additionalauthors);
- my $additionalauthor;
- foreach $additionalauthor (@additionalauthors) {
- # remove any line ending characters (Ctrl-L or Ctrl-M)
- $additionalauthor=~s/\013//g;
- $additionalauthor=~s/\010//g;
- # convert to upper case
- $additionalauthor=uc($additionalauthor);
- # quote value
- my $q_additionalauthor=$dbh->quote($additionalauthor);
- $sth=$dbh->prepare("insert into additionalauthors
(biblionumber,author) values ($biblionumber, $q_additionalauthor)");
- $sth->execute;
- }
my $title=$input->param('title');
--- 262,316 ----
} else {
use strict;
+ my $error;
+ my %biblio;
+ my %biblioitem;
! # convert to upper case and split on lines
! my $subjectheadings=$input->param('subject');
! my @subjectheadings=split(/[\r\n]+/,$subjectheadings);
! my $additionalauthors=$input->param('additionalauthors');
! my @additionalauthors=split(/[\r\n]+/,uc($additionalauthors));
!
! # Use individual assignments to hash buckets, in case
! # any of the input parameters are empty or don't exist
! $biblio{title} =$input->param('title');
! $biblio{author} =$input->param('author');
! $biblio{copyright} =$input->param('copyrightdate');
! $biblio{seriestitle} =$input->param('seriestitle');
! $biblio{notes} =$input->param('notes');
! $biblio{abstract} =$input->param('abstract');
! $biblio{subtitle} =$input->param('subtitle');
!
! $biblioitem{volume} =$input->param('volume');
! $biblioitem{number} =$input->param('number');
! $biblioitem{itemtype} =$input->param('itemtype');
! $biblioitem{isbn} =$input->param('isbn');
! $biblioitem{issn} =$input->param('issn');
! $biblioitem{dewey} =$input->param('dewey');
! $biblioitem{subclass} =$input->param('subclass');
! $biblioitem{publicationyear} =$input->param('publicationyear');
! $biblioitem{publishercode} =$input->param('publishercode');
! $biblioitem{volumedate} =$input->param('volumedate');
! $biblioitem{volumeddesc} =$input->param('volumeddesc');
! $biblioitem{illus} =$input->param('illustrator');
! $biblioitem{pages} =$input->param('pages');
! $biblioitem{notes} =$input->param('notes');
! $biblioitem{size} =$input->param('size');
! $biblioitem{place} =$input->param('place');
! $biblioitem{lccn} =$input->param('lccn');
! $biblioitem{marc} =$input->param('marc');
!
! print "<PRE>address@hidden</PRE>\n";
! print "<PRE>address@hidden</PRE>\n";
!
! ($biblionumber, $biblioitemnumber, $error)=
! NewBiblioItem($dbh,
! \%biblio,
! \%biblioitem,
! address@hidden,
! address@hidden
);
my $title=$input->param('title');
***************
*** 343,347 ****
</table>
EOF
! }
my $title=$input->param('title');
--- 322,327 ----
</table>
EOF
! } # if new record
!
my $title=$input->param('title');
***************
*** 391,394 ****
--- 371,470 ----
}
+ sub NewBiblioItem {
+ use strict;
+
+ my ( $dbh, # DBI handle
+ $biblio, # hash ref to biblio record
+ $biblioitem, # hash ref to biblioitem record
+ $subjects, # list ref of subjects
+ $addlauthors, # list ref of additional authors
+ )address@hidden ;
+
+ my ( $biblionumber, $biblioitemnumber, $error); # return values
+
+ my $debug=1;
+ my $sth;
+ my $subjectheading;
+ my $additionalauthor;
+
+ #--------
+
+ print "<PRE>Trying to add biblio item Title=$biblio->{title} " .
+ "ISBN=$biblioitem->{isbn} </PRE>\n" if $debug;
+
+ # Make sure master biblio entry exists
+ $biblionumber=GetOrAddBiblio($dbh, $biblio);
+
+ # Get next biblioitemnumber
+ $sth=$dbh->prepare("select max(biblioitemnumber) from biblioitems");
+ $sth->execute;
+ ($biblioitemnumber) = $sth->fetchrow;
+ $biblioitemnumber++;
+
+ print "<PRE>Next biblio item is $biblioitemnumber</PRE>\n" if $debug;
+
+ $sth=$dbh->prepare("insert into biblioitems (
+ biblioitemnumber,
+ biblionumber,
+ volume,
+ number,
+ itemtype,
+ isbn,
+ issn,
+ dewey,
+ subclass,
+ publicationyear,
+ publishercode,
+ volumedate,
+ volumeddesc,
+ illus,
+ pages,
+ notes,
+ size,
+ place,
+ lccn,
+ marc)
+ values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" );
+
+ $sth->execute(
+ $biblioitemnumber,
+ $biblionumber,
+ $biblioitem->{volume},
+ $biblioitem->{number},
+ $biblioitem->{itemtype},
+ $biblioitem->{isbn},
+ $biblioitem->{issn},
+ $biblioitem->{dewey},
+ $biblioitem->{subclass},
+ $biblioitem->{publicationyear},
+ $biblioitem->{publishercode},
+ $biblioitem->{volumedate},
+ $biblioitem->{volumeddesc},
+ $biblioitem->{illus},
+ $biblioitem->{pages},
+ $biblioitem->{notes},
+ $biblioitem->{size},
+ $biblioitem->{place},
+ $biblioitem->{lccn},
+ $biblioitem->{marc} );
+
+ $sth=$dbh->prepare("insert into bibliosubject
+ (biblionumber,subject)
+ values (?, ? )" );
+ foreach $subjectheading (@{$subjects} ) {
+ $sth->execute($biblionumber, $subjectheading);
+ }
+
+ $sth=$dbh->prepare("insert into additionalauthors
+ (biblionumber,author)
+ values (?, ? )");
+ foreach $additionalauthor (@{$addlauthors} ) {
+ $sth->execute($biblionumber, $additionalauthor);
+ }
+
+ return ( $biblionumber, $biblioitemnumber, $error);
+
+ } # sub NewBiblioItem
+
#---------------------------------------
# Find a biblio entry, or create a new one if it doesn't exist.
***************
*** 404,410 ****
--- 480,488 ----
my $biblionumber;
+ my $debug=1;
my $sth;
#-----
+ print "<PRE>Looking for biblio </PRE>\n" if $debug;
$sth=$dbh->prepare("select biblionumber
from biblio
***************
*** 416,422 ****
--- 494,503 ----
if ($sth->rows) {
($biblionumber) = $sth->fetchrow;
+ print "<PRE>Biblio exists with number $biblionumber</PRE>\n" if
$debug;
} else {
# Doesn't exist. Add new one.
+ print "<PRE>Adding biblio</PRE>\n" if $debug;
$biblionumber=&newbiblio($biblio);
+ print "<PRE>Added with biblio number $biblionumber</PRE>\n" if
$debug;
&newsubtitle($biblionumber,$biblio->{subtitle} );
}
***************
*** 563,567 ****
RECORD:
foreach $record (@records) {
! my ($lccn, $isbn, $issn, $dewey, $author, $title, $place,
$publisher, $publicationyear, $volume, $number, @subjects, $note,
$additionalauthors, $illustrator, $copyrightdate, $seriestitle);
my $marctext=$marctext{$record};
my $marc=$marc{$record};
--- 644,648 ----
RECORD:
foreach $record (@records) {
! my ($lccn, $isbn, $issn, $dewey, $author, $title, $place,
$publisher, $publicationyear, $volume, $number, @subjects, $notes,
$additionalauthors, $illustrator, $copyrightdate, $seriestitle);
my $marctext=$marctext{$record};
my $marc=$marc{$record};
***************
*** 661,665 ****
}
if ($field->{'tag'} =~/^5/) {
! $note.="$field->{'subfields'}->{'a'}\n";
}
if ($field->{'tag'} =~/65\d/) {
--- 742,746 ----
}
if ($field->{'tag'} =~/^5/) {
! $notes.="$field->{'subfields'}->{'a'}\n";
}
if ($field->{'tag'} =~/65\d/) {
***************
*** 716,720 ****
}
$subjectinput=$input->textarea(-name=>'subject',
-default=>$subject, -rows=>4, -cols=>40);
! $noteinput=$input->textarea(-name=>'note', -default=>$note,
-rows=>4, -cols=>40, -wrap=>'physical');
$copyrightinput=$input->textfield(-name=>'copyrightdate',
-default=>$copyrightdate);
$seriestitleinput=$input->textfield(-name=>'seriestitle',
-default=>$seriestitle);
--- 797,801 ----
}
$subjectinput=$input->textarea(-name=>'subject',
-default=>$subject, -rows=>4, -cols=>40);
! $noteinput=$input->textarea(-name=>'notes', -default=>$notes,
-rows=>4, -cols=>40, -wrap=>'physical');
$copyrightinput=$input->textfield(-name=>'copyrightdate',
-default=>$copyrightdate);
$seriestitleinput=$input->textfield(-name=>'seriestitle',
-default=>$seriestitle);
***************
*** 896,900 ****
$counter++;
#(next) unless ($counter>=$startrecord &&
$counter<=$startrecord+10);
! my ($lccn, $isbn, $issn, $dewey, $author, $title,
$place, $publisher, $publicationyear, $volume, $number, @subjects, $note,
$controlnumber);
foreach $field (@$record) {
if ($field->{'tag'} eq '001') {
--- 977,981 ----
$counter++;
#(next) unless ($counter>=$startrecord &&
$counter<=$startrecord+10);
! my ($lccn, $isbn, $issn, $dewey, $author, $title,
$place, $publisher, $publicationyear, $volume, $number, @subjects, $notes,
$controlnumber);
foreach $field (@$record) {
if ($field->{'tag'} eq '001') {
***************
*** 984,988 ****
my @records=parsemarcdata($data);
foreach $record (@records) {
! my ($lccn, $isbn, $issn, $dewey, $author, $title, $place,
$publisher, $publicationyear, $volume, $number, @subjects, $note,
$controlnumber);
foreach $field (@$record) {
if ($field->{'tag'} eq '001') {
--- 1065,1069 ----
my @records=parsemarcdata($data);
foreach $record (@records) {
! my ($lccn, $isbn, $issn, $dewey, $author, $title, $place,
$publisher, $publicationyear, $volume, $number, @subjects, $notes,
$controlnumber);
foreach $field (@$record) {
if ($field->{'tag'} eq '001') {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.9,1.10,
Alan Millar <=