[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.6.2.6,1.6.2.7
From: |
Alan Millar |
Subject: |
[Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.6.2.6,1.6.2.7 |
Date: |
Fri, 31 May 2002 23:36:29 -0700 |
Update of /cvsroot/koha/koha/acqui.simple
In directory usw-pr-cvs1:/tmp/cvs-serv12430
Modified Files:
Tag: rel-1-2
marcimport.pl
Log Message:
Move more item handling code to subroutines
Index: marcimport.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/marcimport.pl,v
retrieving revision 1.6.2.6
retrieving revision 1.6.2.7
diff -C2 -r1.6.2.6 -r1.6.2.7
*** marcimport.pl 1 Jun 2002 05:20:52 -0000 1.6.2.6
--- marcimport.pl 1 Jun 2002 06:36:27 -0000 1.6.2.7
***************
*** 100,348 ****
#-------------
# Process input parameters
my $file=$input->param('file');
if ($input->param('z3950queue')) {
! my $query=$input->param('query');
!
! my @serverlist;
- 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 "<font color=red size=+1>$query is not a valid ISBN
! Number</font><p>\n";
! }
}
-
- 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 "<center>\n";
! print "<a href=$ENV{'SCRIPT_NAME'}?file=$file>New Record</a> | <a
href=marcimport.pl>New File</a><br>\n";
!
! # See if it already exists
! my $sth=$dbh->prepare("select biblionumber,biblioitemnumber
! from biblioitems
! where issn=$q_issn or isbn=$q_isbn or lccn=$q_lccn");
! $sth->execute;
! my $biblionumber=0;
! my $biblioitemnumber=0;
! if ($sth->rows) {
! # Already exists
! ($biblionumber, $biblioitemnumber) = $sth->fetchrow;
! my $title=$input->param('title');
! print << "EOF";
! <table border=0 width=50% cellpadding=10 cellspacing=0>
! <tr><th bgcolor=black><font color=white>Record already in
database</font></th></tr>
! <tr><td bgcolor=#dddddd>$title is already in the database with
biblionumber $biblionumber and biblioitemnumber $biblioitemnumber</td></tr>
! </table>
! <p>
! 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 "<PRE>address@hidden</PRE>\n";
! #print "<PRE>address@hidden</PRE>\n";
!
! ($biblionumber, $biblioitemnumber, $error)=
! newcompletebiblioitem($dbh,
! \%biblio,
! \%biblioitem,
! address@hidden,
! address@hidden
! );
!
! if ( $error ) {
! print "<H2>Error adding biblio item</H2> $error\n";
! } else {
!
! my $title=$input->param('title');
! print << "EOF";
! <table cellpadding=10 cellspacing=0 border=0 width=50%>
! <tr><th bgcolor=black><font color=white>Record entered into
database</font></th></tr>
! <tr><td bgcolor=#dddddd>$title has been entered into the database
with biblionumber
! $biblionumber and biblioitemnumber $biblioitemnumber</td></tr>
! </table>
! EOF
! } # if error
! } # if new record
!
! my $title=$input->param('title');
!
! # Get next barcode, or pick random one if none exist yet
! $sth=$dbh->prepare("select max(barcode) from items");
! $sth->execute;
! my ($barcode) = $sth->fetchrow;
! $barcode++;
! if ($barcode==1) {
! $barcode=int(rand()*1000000);
! }
!
! my $branchselect=GetKeyTableSelectOptions(
! $dbh, 'branches', 'branchcode', 'branchname', 0);
!
! print << "EOF";
! <table border=0 cellpadding=10 cellspacing=0>
! <tr><th bgcolor=black>
! <font color=white> Add a New Item for $title </font>
! </th></tr>
! <tr><td bgcolor=#dddddd>
! <form>
! <input type=hidden name=newitem value=1>
! <input type=hidden name=biblionumber value=$biblionumber>
! <input type=hidden name=biblioitemnumber value=$biblioitemnumber>
! <input type=hidden name=file value=$file>
! <table border=0>
! <tr><td>BARCODE</td><td><input name=barcode size=10 value=$barcode>
! Home Branch: <select name=homebranch> $branchselect </select>
! </td></tr>
! <tr><td>Replacement Price:</td>
! <td><input name=replacementprice size=10></td></tr>
! <tr><td>Notes</td>
! <td><textarea name=notes rows=4 cols=40 wrap=physical></textarea>
! </td></tr>
! </table>
! <p>
! <input type=submit value="Add Item">
! </form>
! </td></tr>
! </table>
! EOF
print endmenu();
print endpage();
-
exit;
}
-
#---------------------------------------
# Add item copy
if ($input->param('newitem')) {
! use strict;
! my $error;
! my $barcode=$input->param('barcode');
! my $replacementprice=($input->param('replacementprice') || 0);
- my $sth=$dbh->prepare("select barcode
- from items
- where barcode=?");
- $sth->execute($barcode);
- if ($sth->rows) {
- print "<font color=red>Barcode '$barcode' has already been
assigned.</font><p>\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 "<font color=red>Error: $error </font><p>\n";
- } else {
-
- print "<table border=1><tr><td bgcolor=yellow>
- Item added with barcode $barcode
- </td></tr></table>\n";
- } # if error
- } # if barcode exists
- }
--- 100,132 ----
#-------------
# Process input parameters
+
my $file=$input->param('file');
if ($input->param('z3950queue')) {
! PostToZ3950Queue($dbh,$input);
! }
! if ($input->param('uploadmarc')) {
! AcceptMarcUpload($dbh,$input)
}
if ($input->param('insertnewrecord')) {
! # Add biblio item, and set up menu for adding item copies
! ($biblionumber,$biblioitemnumber)=AcceptBiblioitem($dbh,$input);
! ItemCopyForm($dbh,$input,$biblionumber,$biblioitemnumber);
print endmenu();
print endpage();
exit;
}
#---------------------------------------
# Add item copy
if ($input->param('newitem')) {
! &AcceptItemCopy($dbh,$input);
! } # if newitem
***************
*** 1183,1186 ****
--- 967,1254 ----
}
+ #----------------------------
+ # Accept form results to add query to z3950 queue
+ sub PostToZ3950Queue {
+ use strict;
+
+ # input parameters
+ my (
+ $dbh, # DBI handle
+ $input, # CGI parms
+ )address@hidden;
+
+ my @serverlist;
+
+ my $query=$input->param('query');
+
+ 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 "<font color=red size=+1>$query is not a valid ISBN
+ Number</font><p>\n";
+ }
+ } # sub PostToZ3950Queue
+
+ #---------------------------------------------
+ sub AcceptMarcUpload {
+ my (
+ $dbh, # DBI handle
+ $input, # CGI parms
+ )address@hidden;
+
+ 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,
+ )address@hidden;
+
+ 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 "<center>\n";
+ print "<a href=$ENV{'SCRIPT_NAME'}?file=$file>New Record</a> | <a
href=marcimport.pl>New File</a><br>\n";
+
+ # See if it already exists
+ my $sth=$dbh->prepare("select biblionumber,biblioitemnumber
+ from biblioitems
+ where issn=$q_issn or isbn=$q_isbn or lccn=$q_lccn");
+ $sth->execute;
+ if ($sth->rows) {
+ # Already exists
+ ($biblionumber, $biblioitemnumber) = $sth->fetchrow;
+ my $title=$input->param('title');
+ print << "EOF";
+ <table border=0 width=50% cellpadding=10 cellspacing=0>
+ <tr><th bgcolor=black><font color=white>Record already in
database</font>
+ </th></tr>
+ <tr><td bgcolor=#dddddd>$title is already in the database with
+ biblionumber $biblionumber and biblioitemnumber
$biblioitemnumber
+ </td></tr>
+ </table>
+ <p>
+ 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 "<PRE>address@hidden</PRE>\n";
+ #print "<PRE>address@hidden</PRE>\n";
+
+ ($biblionumber, $biblioitemnumber, $error)=
+ newcompletebiblioitem($dbh,
+ \%biblio,
+ \%biblioitem,
+ address@hidden,
+ address@hidden
+ );
+
+ if ( $error ) {
+ print "<H2>Error adding biblio item</H2> $error\n";
+ } else {
+
+ my $title=$input->param('title');
+ print << "EOF";
+ <table cellpadding=10 cellspacing=0 border=0 width=50%>
+ <tr><th bgcolor=black><font color=white>Record entered into
database</font></th></tr>
+ <tr><td bgcolor=#dddddd>$title has been entered into the database
with biblionumber
+ $biblionumber and biblioitemnumber $biblioitemnumber</td></tr>
+ </table>
+ EOF
+ } # if error
+ } # if new record
+
+ return $biblionumber,$biblioitemnumber;
+ } # sub AcceptBiblioitem
+
+ sub ItemCopyForm {
+ use strict;
+ my (
+ $dbh,
+ $input, # CGI input object
+ $biblionumber,
+ $biblioitemnumber,
+ )address@hidden;
+
+ my $sth;
+ my $barcode;
+
+ my $title=$input->param('title');
+ my $file=$input->param('file');
+
+ # Get next barcode, or pick random one if none exist yet
+ $sth=$dbh->prepare("select max(barcode) from items");
+ $sth->execute;
+ ($barcode) = $sth->fetchrow;
+ $barcode++;
+ if ($barcode==1) {
+ $barcode=int(rand()*1000000);
+ }
+
+ my $branchselect=GetKeyTableSelectOptions(
+ $dbh, 'branches', 'branchcode', 'branchname', 0);
+
+ print << "EOF";
+ <table border=0 cellpadding=10 cellspacing=0>
+ <tr><th bgcolor=black>
+ <font color=white> Add a New Item for $title </font>
+ </th></tr>
+ <tr><td bgcolor=#dddddd>
+ <form>
+ <input type=hidden name=newitem value=1>
+ <input type=hidden name=biblionumber value=$biblionumber>
+ <input type=hidden name=biblioitemnumber value=$biblioitemnumber>
+ <input type=hidden name=file value=$file>
+ <table border=0>
+ <tr><td>BARCODE</td><td><input name=barcode size=10 value=$barcode>
+ Home Branch: <select name=homebranch> $branchselect </select>
+ </td></tr>
+ <tr><td>Replacement Price:</td>
+ <td><input name=replacementprice size=10></td></tr>
+ <tr><td>Notes</td>
+ <td><textarea name=notes rows=4 cols=40 wrap=physical></textarea>
+ </td></tr>
+ </table>
+ <p>
+ <input type=submit value="Add Item">
+ </form>
+ </td></tr>
+ </table>
+ EOF
+
+ } # sub ItemCopyForm
+
+ #---------------------------------------
+ # Accept form data to add an item copy
+ sub AcceptItemCopy {
+ use strict;
+ my ( $dbh, $input )address@hidden;
+
+ my $error;
+ my $barcode=$input->param('barcode');
+ my $replacementprice=($input->param('replacementprice') || 0);
+
+ my $sth=$dbh->prepare("select barcode
+ from items
+ where barcode=?");
+ $sth->execute($barcode);
+ if ($sth->rows) {
+ print "<font color=red>Barcode '$barcode' has already been
assigned.</font><p>\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 "<font color=red>Error: $error </font><p>\n";
+ } else {
+
+ print "<table border=1 align=center cellpadding=10>
+ <tr><td bgcolor=yellow>
+ Item added with barcode $barcode
+ </td></tr></table>\n";
+ } # if error
+ } # if barcode exists
+ } # sub AcceptItemCopy
+
#---------------
# Create an HTML option list for a <SELECT> form tag by using
***************
*** 1236,1240 ****
my ( $biblionumber, $biblioitemnumber, $error); # return values
! my $debug=1;
my $sth;
my $subjectheading;
--- 1304,1308 ----
my ( $biblionumber, $biblioitemnumber, $error); # return values
! my $debug=0;
my $sth;
my $subjectheading;
***************
*** 1343,1347 ****
my $biblionumber;
! my $debug=1;
my $sth;
my $error;
--- 1411,1415 ----
my $biblionumber;
! my $debug=0;
my $sth;
my $error;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.6.2.6,1.6.2.7,
Alan Millar <=