Update of /cvsroot/koha/koha/acqui.simple In directory usw-pr-cvs1:/tmp/cvs-serv26808/acqui.simple Modified Files: addbooks.pl Log Message: Modifications for new acqui.simple Database includes new biblio abstract field and biblioitem url field acqui/finishreceive.pl modified to use changed C4/Acquisitions.pm Index: addbooks.pl =================================================================== RCS file: /cvsroot/koha/koha/acqui.simple/addbooks.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** addbooks.pl 3 Apr 2002 08:44:23 -0000 1.5 --- addbooks.pl 29 Apr 2002 05:25:41 -0000 1.6 *************** *** 2,30 **** # - # Modified saas@users.sf.net 12:00 01 April 2001 - # The biblioitemnumber was not correctly initialised - # The max(barcode) value was broken - koha 'barcode' is a string value! - # - If left blank, barcode value now defaults to max(biblionumber) - - # # TODO # - # Error checking for pre-existing barcodes, biblionumbers and maybe others - # # Add info on biblioitems and items already entered as you enter new ones - use C4::Database; use CGI; use strict; - use C4::Acquisitions; use C4::Output; - use C4::Circulation::Circ2; my $input = new CGI; ! my $dbh=C4Connect; ! ! my $isbn=$input->param('isbn'); ! my $q_isbn=$dbh->quote($isbn); ! my $biblioitemnumber; print $input->header; --- 2,16 ---- # # TODO # # Add info on biblioitems and items already entered as you enter new ones + # use CGI; use strict; use C4::Output; my $input = new CGI; ! my $error = $input->param('error'); print $input->header; *************** *** 32,424 **** print startmenu('acquisitions'); ! ($input->param('checkforbiblio')) && (checkforbiblio()); ! ($input->param('newbiblioitem')) && (newbiblioitem()); ! ($input->param('newitem')) && (newitem()); - sub checkforbiblio { - my $title=$input->param('title'); - my $q_title=$dbh->quote($title); - my $author=$input->param('author'); - my $q_author=$dbh->quote($author); - my $seriestitle=$input->param('seriestitle'); - my $serial=0; - ($seriestitle) && ($serial=1); - my $q_seriestitle=$dbh->quote($seriestitle); - my $copyrightdate=$input->param('copyrightdate'); - my $q_copyrightdate=$dbh->quote($copyrightdate); - my $notes=$input->param('notes'); - my $q_notes=$dbh->quote($notes); - my $subtitle=$input->param('subtitle'); - my $q_subtitle=$dbh->quote($subtitle); - my $sth=$dbh->prepare("select biblionumber from biblio where title=$q_title - and author=$q_author and copyrightdate=$q_copyrightdate"); - $sth->execute; - my $biblionumber=0; - if ($sth->rows) { - ($biblionumber) = $sth->fetchrow; - } else { - print "Adding new biblio for <i>$title</i> by $author<br>\n"; - my $sth=$dbh->prepare("select max(biblionumber) from biblio"); - $sth->execute; - ($biblionumber) = $sth->fetchrow; - $biblionumber++; - $sth=$dbh->prepare("insert into biblio (biblionumber, title, author, - serial, seriestitle, copyrightdate, notes) values ($biblionumber, - $q_title, $q_author, $serial, $q_seriestitle, $q_copyrightdate, - $q_notes)"); - $sth->execute; - $sth=$dbh->prepare("insert into bibliosubtitle (subtitle, biblionumber) - values ($q_subtitle, $biblionumber)"); - $sth->execute; - } - my $itemtypeselect=''; - $sth=$dbh->prepare("select itemtype,description from itemtypes"); - $sth->execute; - while (my ($itemtype, $description) = $sth->fetchrow) { - $itemtypeselect.="<option value=$itemtype>$itemtype - $description\n"; - } - my $authortext="by $author"; - ($author) || ($authortext=''); - sectioninfo(); - $sth=$dbh->prepare("select BI.isbn,IT.description,BI.volume,BI.number,BI.volumeddesc,BI.dewey,BI.subclass from biblioitems BI, itemtypes IT where BI.itemtype=IT.itemtype and biblionumber=$biblionumber"); - $sth->execute; - my $biblioitemdata=''; - while (my ($isbn, $itemtype, $volume, $number, $volumeddesc, $dewey, $subclass) = $sth->fetchrow) { - my $volumeinfo=''; - if ($volume) { - if ($number) { - $volumeinfo="V$volume, N$number"; - } else { - $volumeinfo="Vol $volume"; - } - } - if ($volumeddesc) { - $volumeinfo.=" $volumeddesc"; - } - $dewey=~s/0*$//; - $biblioitemdata.="<tr><td>$isbn</td><td align=center>$itemtype</td><td align=center>$volumeinfo</td><td align=center>$dewey$subclass</td></tr>\n"; ! } ! if ($biblioitemdata) { ! print << "EOF"; ! <center> ! <p> ! <table border=1 bgcolor=#dddddd> ! <tr> ! <th colspan=4>Existing entries using Biblio number $biblionumber</th> ! </tr> ! <tr> ! <th>ISBN</th><th>Item Type</th><th>Volume</th><th>Classification</th></tr> ! $biblioitemdata ! </table> ! </center> ! ! EOF ! } print << "EOF"; ! <center> ! <form> ! <table border=1 bgcolor=#dddddd> ! <tr><th colspan=4>Section Two: Publication Information for<br><i>$title</i> ! $authortext</th></tr> ! ! <tr><td align=right>Publisher</td><td colspan=3><input name=publishercode size=30></td></tr> ! <tr><td align=right>Publication Year</td><td><input name=publicationyear size=10></td> ! <td align=right>Place of Publication</td><td><input name=place size=20></td></tr> ! <tr><td align=right>Illustrator</td><td colspan=3><input name=illus size=20></td></tr> ! <tr><td align=right>Additional Authors<br>(One author per line)</td><td colspan=3><textarea ! name=additionalauthors rows=4 cols=30></textarea></td></tr> ! <tr><td align=right>Subject Headings<br>(One subject per line)</td><td colspan=3><textarea ! name=subjectheadings rows=4 cols=30></textarea></td></tr> ! <tr><td align=right>Item Type</td><td colspan=3><select name=itemtype>$itemtypeselect</select></td></tr> ! <tr><td align=right>Dewey</td><td><input name=dewey size=10></td> ! <td align=right>Dewey Subclass</td><td><input name=subclass size=10></td></tr> ! <tr><td align=right>ISSN</td><td colspan=3><input name=issn size=10></td></tr> ! <tr><td align=right>LCCN</td><td colspan=3><input name=lccn size=10></td></tr> ! <tr><td align=right>Volume</td><td><input name=volume size=10></td> ! <td align=right>Number</td><td><input name=number size=10></td></tr> ! <tr><td align=right>Volume Description</td><td colspan=3><input name=volumeddesc size=40></td></tr> ! <tr><td align=right>Pages</td><td><input name=pages size=10></td> ! <td align=right>Size</td><td><input name=size size=10></td></tr> ! ! <tr><td align=right>Notes</td><td colspan=3><textarea name=notes rows=4 cols=50 ! wrap=physical></textarea></td></tr> ! ! </table> ! <input type=submit value="Add New Bibliography Item"> ! </center> ! <input type=hidden name=biblionumber value=$biblionumber> ! <input type=hidden name=isbn value=$isbn> ! <input type=hidden name=newbiblioitem value=1> ! </form> EOF - print endmenu(); - print endpage(); - exit; - } - - - sub newbiblioitem { - #print - # print "in here"; - my $biblionumber=$input->param('biblionumber'); - my $volume=$input->param('volume'); - my $q_volume=$dbh->quote($volume); - my $number=$input->param('number'); - my $q_number=$dbh->quote($number); - my $classification=$input->param('classification'); - my $q_classification=$dbh->quote($classification); - my $itemtype=$input->param('itemtype'); - my $q_itemtype=$dbh->quote($itemtype); - my $issn=$input->param('issn'); - my $q_issn=$dbh->quote($issn); - my $lccn=$input->param('lccn'); - my $q_lccn=$dbh->quote($lccn); - my $dewey=$input->param('dewey'); - my $q_dewey=$dbh->quote($dewey); - my $subclass=$input->param('subclass'); - my $q_subclass=$dbh->quote($subclass); - my $publicationyear=$input->param('publicationyear'); - my $q_publicationyear=$dbh->quote($publicationyear); - my $publishercode=$input->param('publishercode'); - my $q_publishercode=$dbh->quote($publishercode); - my $volumedate=$input->param('volumedate'); - my $q_volumedate=$dbh->quote($volumedate); - my $volumeddesc=$input->param('volumeddesc'); - my $q_volumeddesc=$dbh->quote($volumeddesc); - my $illus=$input->param('illus'); - my $q_illus=$dbh->quote($illus); - my $pages=$input->param('pages'); - my $q_pages=$dbh->quote($pages); - my $notes=$input->param('notes'); - my $q_notes=$dbh->quote($notes); - my $size=$input->param('size'); - my $q_size=$dbh->quote($size); - my $place=$input->param('place'); - my $q_place=$dbh->quote($place); - my $subjectheadings=$input->param('subjectheadings'); - my $additionalauthors=$input->param('additionalauthors'); - my $sth=$dbh->prepare("select max(biblioitemnumber) from biblioitems"); - $sth->execute; - ($biblioitemnumber) = $sth->fetchrow; - $biblioitemnumber++; - # print STDERR "NEW BiblioItemNumber: $biblioitemnumber \n"; - ($q_isbn='') if ($q_isbn eq 'NULL'); - my $query="insert into biblioitems (biblioitemnumber, - biblionumber, volume, number, classification, itemtype, isbn, issn, lccn, dewey, subclass, - publicationyear, publishercode, volumedate, volumeddesc, illus, pages, - notes, size, place) values ($biblioitemnumber, $biblionumber, $q_volume, - $q_number, $q_classification, $q_itemtype, $q_isbn, $q_issn, $q_lccn, $q_dewey, $q_subclass, - $q_publicationyear, $q_publishercode, $q_volumedate, $q_volumeddesc, - $q_illus, $q_pages, $q_notes, $q_size, $q_place)"; - $sth=$dbh->prepare($query); - # print $query; - $sth->execute; - 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); - print STDERR "S: $biblionumber, $subjectheading "; - chomp ($subjectheading); - print STDERR "B: ".ord(substr($subjectheading, length($subjectheading)-1, 1))." "; - while (ord(substr($subjectheading, length($subjectheading)-1, 1))<14) { - chop $subjectheading; - } - print STDERR "A: ".ord(substr($subjectheading, length($subjectheading)-1, 1))."\n"; - # 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; - } - } - - sub newitem { - my $biblionumber=$input->param('biblionumber'); - my $biblioitemnumber=$input->param('biblioitemnumber'); - my $barcode=$input->param('barcode'); - my $itemnotes=$input->param('notes'); - my $q_itemnotes=$dbh->quote($itemnotes); - my $replacementprice=$input->param('replacementprice'); - ($replacementprice) || ($replacementprice=0); - my $sth=$dbh->prepare("select max(itemnumber) from items"); - $sth->execute; - my ($itemnumber) = $sth->fetchrow; - $itemnumber++; - my @datearr=localtime(time); - my $date=(1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3]; - my $q_homebranch=$dbh->quote($input->param('homebranch')); - my $query="insert into items (itemnumber, biblionumber, - biblioitemnumber,barcode, itemnotes, holdingbranch, homebranch, dateaccessioned, replacementprice) values ($itemnumber, - $biblionumber, $biblioitemnumber, $barcode, $q_itemnotes, $q_homebranch, $q_homebranch, '$date', $replacementprice)"; - $sth=$dbh->prepare($query); - $sth->execute; - # print $query; - } - - if ($isbn) { - my $sth; - if ($isbn eq 'NULL') { - # set biblioitemnumber if not already initialised... - if ($biblioitemnumber eq '') { - $sth=$dbh->prepare("select max(biblioitemnumber) from biblioitems"); - $sth->execute; - ($biblioitemnumber) = $sth->fetchrow; - $biblioitemnumber++; - # print STDERR "BiblioItemNumber was missing: $biblioitemnumber \n"; - } - $sth=$dbh->prepare("select biblionumber,biblioitemnumber from - biblioitems where biblioitemnumber=$biblioitemnumber"); - } else { - $sth=$dbh->prepare("select biblionumber, biblioitemnumber from - biblioitems where isbn=$q_isbn"); - } - $sth->execute; - if (my ($biblionumber, $biblioitemnumber) = $sth->fetchrow) { - sectioninfo(); - $sth=$dbh->prepare("select I.barcode,I.itemnotes,B.title,B.author from items I, biblio B where B.biblionumber=I.biblionumber and biblioitemnumber=$biblioitemnumber"); - $sth->execute; - my $itemdata=''; - while (my ($barcode, $itemnotes, $title, $author) = $sth->fetchrow) { - $itemdata.="<tr><td align=center>$barcode</td><td><u>$title</u></td><td>$author</td><td>$itemnotes</td></tr>\n"; ! } ! ! if ($itemdata) { ! print << "EOF"; ! <center> ! <p> ! <table border=1 bgcolor=#dddddd> ! <tr> ! <th colspan=4>Existing Items with ISBN $isbn</th> ! </tr> ! <tr> ! <th>Barcode</th><th>Title</th><th>Author</th><th>Notes</th></tr> ! $itemdata ! </table> ! </center> ! ! EOF ! } ! # my $sth=$dbh->prepare("select max(barcode) from items"); ! # $sth->execute; ! # my ($maxbarcode) = $sth->fetchrow; ! # $maxbarcode++; ! # print STDERR "MaxBarcode: $maxbarcode \n"; print << "EOF"; ! <center> ! <h2>Section Three: Specific Item Information</h2> ! <form> ! <input type=hidden name=newitem value=1> ! <input type=hidden name=biblionumber value=$biblionumber> ! <input type=hidden name=biblioitemnumber value=$biblioitemnumber> ! <table> ! <!-- tr><td>BARCODE</td><td><input name=barcode size=10 value=\$maxbarcode --> ! <tr><td>BARCODE</td><td><input name=barcode size=10 value=$biblionumber> ! Home Branch: <select name=homebranch> EOF ! ! my $branches=getbranches(); ! foreach my $key (sort(keys %$branches)) { ! print "<option value=\"$key\">$branches->{$key}->{'branchname'}</option>"; ! } ! print << "EOF"; ! </select></td></tr> ! </tr><td colspan=2>Replacement Price: <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> ! <input type=submit value="Add Item"> ! </form> ! <h3>ISBN $isbn Information</h3> - </center> - EOF - } else { - sectioninfo(); - print << "EOF"; - <center> - <form> - <input type=hidden name=isbn value='$isbn'> - <input type=hidden name=checkforbiblio value=1> - <table border=0> - <tr><th colspan=2>Section One: Copyright Information</th></tr> - <tr><td>Title</td><td><input name=title size=40></td></tr> - <tr><td>Subtitle</td><td><input name=subtitle size=40></td></tr> - <tr><td>Author</td><td><input name=author size=40></td></tr> - <tr><td>Series Title<br>(if applicable)</td><td><input name=seriestitle - size=40></td></tr> - <tr><td>Copyright Date</td><td><input name=copyrightdate size=10></td></tr> - <tr><td>Notes</td><td><textarea name=notes rows=4 cols=40 - wrap=physical></textarea></td></tr> - </table> - <input type=submit value="Add new Bibliography"> - </center> - EOF - } - } else { print << "EOF"; ! <h2>Adding new items to the Library Inventory</h2> ! To add a new item, scan or type the ISBN number: ! <br> ! <form> ! ISBN: <input name=isbn> </form> ! <p> ! <a href=addbooks.pl?isbn=NULL>Enter book with no ISBN</a> ! <hr> ! <p> ! <h2>Tools for importing MARC records into Koha</h2> <ul> ! <li><a href=marcimport.pl?menu=z3950>Z39.50 Search Tool</a> ! <li><a href=marcimport.pl?menu=uploadmarc>Upload MARC records</a> </ul> ! ! EOF ! } ! print endmenu(); ! print endpage(); ! ! ! sub sectioninfo { ! print << "EOF"; ! <center> ! <table border=1 width=70% bgcolor=#bbddbb> ! <tr> ! <td> ! <center> ! Koha stores data in three sections. ! </center> ! <ol> ! <li>The first section records bibliographic data such as title, author and ! copyright for a particular work. ! <li>The second records bibliographic data for a particular publication of that ! work, such as ISBN number, physical description, publisher information, etc. ! <li>The third section holds specific item information, such as the bar code ! number. ! </ul> ! </td> ! </tr> ! </table> ! </center> EOF ! ! } --- 18,108 ---- print startmenu('acquisitions'); ! &searchscreen(); ! print endmenu(); ! print endpage(); ! sub searchscreen { print << "EOF"; ! <font size="6"><em>Adding new items to the Library Inventory</em></font> ! <p /> EOF ! if ($error eq "notfound") { print << "EOF"; ! <font color="red" size="5">No items found</font> ! <p /> EOF ! } # if print << "EOF"; ! <table bgcolor="#ffcc00" width="80%" cellpadding="5"> ! <tr valign="center"> ! <td><font size="5">To add a new item, scan or type the ISBN number:</font></td> ! </tr> ! </table> ! ! <table> ! <tr> ! <form action="isbnsearch.pl"> ! <td>ISBN:</td> ! <td><input type="text" name="isbn" /></td> ! <td><input type="submit" value="Go" /></td> </form> ! </tr> ! <tr> ! <form action="keywordsearch.pl"> ! <td>Keyword:</td> ! <td><input type="text" name="keyword" /></td> ! <td><input type="submit" value="Go" /></td> ! </form> ! </tr> ! </table> ! <p /> ! <hr /> ! <p /> ! <table bgcolor="#ffcc00" width="80%" cellpadding"5"> ! <tr valign="center"> ! <td><font size="5">Tools for importing MARC records into Koha</font></td> ! </tr> ! </table> ! <br /> <ul> ! <li><a href=marcimport.pl?menu=z3950>Z39.50 Search Tool</a></li> ! <li><a href=marcimport.pl?menu=uploadmarc>Upload MARC records</a></li> </ul> ! <br clear="all"> ! <p /> ! <table bgcolor="#ffcc00" width="80%" cellpadding="5"> ! <tr valign="center"> ! <td><FONT SIZE=5>Add New Website</font></td> ! </tr> ! </table> ! <form action="websitesearch.pl" method="post"> ! <table> ! <tr> ! <td>Keyword:</td> ! <td><input type="text" name="keyword" /></td> ! <td><input type="submit" value="Go" /></td> ! </tr> ! </table> ! </FORM> ! <p /> ! <table bgcolor="#ffcc00" width="80%" cellpadding="5"> ! <tr valign="center"> ! <td><FONT SIZE=5>Help</font></td> ! </tr> ! </table> ! <FONT SIZE=5>Koha stores data in three sections</font> ! <p /> ! <h2>Biblio</h2> ! The first section records bibliographic data such as title, author and copyright for a particular work. ! <p /> ! <h2>Group</h2> ! The second records bibliographic data for a particular publication of that work, such as ISBN number, physical description, publisher information, etc ! <p /> ! <h2>Item</h2> ! The third section holds specific item information, such as the bar code number ! <p /> EOF ! } # sub searchscreen