diff --git a/acqui.simple/marcimport.pl b/acqui.simple/marcimport.pl index 4683f8783c..2fdeda4969 100755 --- a/acqui.simple/marcimport.pl +++ b/acqui.simple/marcimport.pl @@ -99,251 +99,35 @@ print startmenu('acquisitions'); #------------- # Process input parameters + my $file=$input->param('file'); if ($input->param('z3950queue')) { - my $query=$input->param('query'); - - my @serverlist; + PostToZ3950Queue($dbh,$input); +} - my $isbngood=1; - if ($input->param('type') eq 'isbn') { - $isbngood=checkvalidisbn($query); - } - if ($isbngood) { - foreach ($input->param) { - if (/S-(.*)/) { - my $server=$1; - if ($server eq 'MAN') { - push @serverlist, "MAN/".$input->param('manualz3950server')."//" -; - } else { - push @serverlist, $server; - } - } - } - addz3950queue($dbh,$input->param('query'), $input->param('type'), - $input->param('rand'), @serverlist); - } else { - print "$query is not a valid ISBN - Number
\n"; - } +if ($input->param('uploadmarc')) { + AcceptMarcUpload($dbh,$input) } - -if (my $data=$input->param('uploadmarc')) { - my $name=$input->param('name'); - ($name) || ($name=$data); - my $marcrecord=''; - if (length($data)>0) { - while (<$data>) { - $marcrecord.=$_; - } - } - my $q_marcrecord=$dbh->quote($marcrecord); - my $q_name=$dbh->quote($name); - my $sth=$dbh->prepare("insert into uploadedmarc (marc,name) values ($q_marcrecord, $q_name)"); - $sth->execute; -} - - -#------------------------------------ -# Add biblio item, and set up menu for adding item copies - if ($input->param('insertnewrecord')) { - my $sth; - my $isbn=$input->param('isbn'); - my $issn=$input->param('issn'); - my $lccn=$input->param('lccn'); - my $q_origisbn=$dbh->quote($input->param('origisbn')); - my $q_origissn=$dbh->quote($input->param('origissn')); - my $q_origlccn=$dbh->quote($input->param('origlccn')); - my $q_origcontrolnumber=$dbh->quote($input->param('origcontrolnumber')); - my $q_isbn=$dbh->quote((($isbn) || ('NIL'))); - my $q_issn=$dbh->quote((($issn) || ('NIL'))); - my $q_lccn=$dbh->quote((($lccn) || ('NIL'))); - - #my $sth=$dbh->prepare("insert into marcrecorddone values ($q_origisbn, $q_origissn, $q_origlccn, $q_origcontrolnumber)"); - #$sth->execute; - - print "
| Record already in database |
|---|
| $title is already in the database with biblionumber $biblionumber and biblioitemnumber $biblioitemnumber |
-EOF - } else { - use strict; - - # It doesn't exist; add it. - - 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 "
subjects=@subjectheadings\n"; - #print "
auth=@additionalauthors\n"; - - ($biblionumber, $biblioitemnumber, $error)= - newcompletebiblioitem($dbh, - \%biblio, - \%biblioitem, - \@subjectheadings, - \@additionalauthors - ); - - if ( $error ) { - print "
| Record entered into database |
|---|
| $title has been entered into the database with biblionumber - $biblionumber and biblioitemnumber $biblioitemnumber |
| - Add a New Item for $title - |
|---|
| - - |
\n"; - } else { - # Insert new item into database - $error=&newitems( - { biblionumber=> $input->param('biblionumber'), - biblioitemnumber=> $input->param('biblioitemnumber'), - itemnotes=> $input->param('notes'), - homebranch=> $input->param('homebranch'), - replacementprice=> $replacementprice, - }, - $barcode - ); - if ( $error ) { - print "Error: $error
\n"; - } else { - - print "
| - Item added with barcode $barcode - |
\n"; + } +} # sub PostToZ3950Queue + +#--------------------------------------------- +sub AcceptMarcUpload { + my ( + $dbh, # DBI handle + $input, # CGI parms + )=@_; + + my $name=$input->param('name'); + my $data=$input->param('uploadmarc'); + my $marcrecord=''; + + ($name) || ($name=$data); + if (length($data)>0) { + while (<$data>) { + $marcrecord.=$_; + } + } + my $q_marcrecord=$dbh->quote($marcrecord); + my $q_name=$dbh->quote($name); + my $sth=$dbh->prepare("insert into uploadedmarc + (marc,name) + values ($q_marcrecord, $q_name)"); + $sth->execute; +} # sub AcceptMarcUpload + +#------------------------------------------- +sub AcceptBiblioitem { + use strict; + my ( + $dbh, + $input, + )=@_; + + my $biblionumber=0; + my $biblioitemnumber=0; + + my $sth; + my $isbn=$input->param('isbn'); + my $issn=$input->param('issn'); + my $lccn=$input->param('lccn'); + my $q_origisbn=$dbh->quote($input->param('origisbn')); + my $q_origissn=$dbh->quote($input->param('origissn')); + my $q_origlccn=$dbh->quote($input->param('origlccn')); + my $q_origcontrolnumber=$dbh->quote($input->param('origcontrolnumber')); + my $q_isbn=$dbh->quote((($isbn) || ('NIL'))); + my $q_issn=$dbh->quote((($issn) || ('NIL'))); + my $q_lccn=$dbh->quote((($lccn) || ('NIL'))); + my $file=$input->param('file'); + + #my $sth=$dbh->prepare("insert into marcrecorddone values ($q_origisbn, $q_origissn, $q_origlccn, $q_origcontrolnumber)"); + #$sth->execute; + + print "
| Record already in database + |
|---|
| $title is already in the database with + biblionumber $biblionumber and biblioitemnumber $biblioitemnumber + |
+EOF + } else { + use strict; + + # It doesn't exist; add it. + + 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 "
subjects=@subjectheadings\n"; + #print "
auth=@additionalauthors\n"; + + ($biblionumber, $biblioitemnumber, $error)= + newcompletebiblioitem($dbh, + \%biblio, + \%biblioitem, + \@subjectheadings, + \@additionalauthors + ); + + if ( $error ) { + print "
| Record entered into database |
|---|
| $title has been entered into the database with biblionumber + $biblionumber and biblioitemnumber $biblioitemnumber |
| + Add a New Item for $title + |
|---|
| + + |
\n"; + } else { + # Insert new item into database + $error=&newitems( + { biblionumber=> $input->param('biblionumber'), + biblioitemnumber=> $input->param('biblioitemnumber'), + itemnotes=> $input->param('notes'), + homebranch=> $input->param('homebranch'), + replacementprice=> $replacementprice, + }, + $barcode + ); + if ( $error ) { + print "Error: $error
\n"; + } else { + + print "
| + Item added with barcode $barcode + |