koha-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-devel] CVS: koha/acqui.simple addbooks.pl,NONE,1.1 viewmarc.pl,NON


From: Steve Tonnesen
Subject: [Koha-devel] CVS: koha/acqui.simple addbooks.pl,NONE,1.1 viewmarc.pl,NONE,1.1
Date: Fri Oct 5 14:20:04 2001

Update of /cvsroot/koha/koha/acqui.simple
In directory usw-pr-cvs1:/tmp/cvs-serv13572/koha/acqui.simple

Added Files:
        addbooks.pl viewmarc.pl 
Log Message:
Added simple acquisitions script


--- NEW FILE ---
#!/usr/bin/perl

#
# TODO
#
# 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;


my $input = new CGI;
my $dbh=C4Connect;


my $isbn=$input->param('isbn');
my $q_isbn=$dbh->quote($isbn);
my $biblioitemnumber;

print $input->header;
print startpage();
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 {
    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++;
    ($q_isbn='') if ($q_isbn eq 'NULL');
    $sth=$dbh->prepare("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->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'));
    $sth=$dbh->prepare("insert into items (itemnumber, biblionumber,
    biblioitemnumber,barcode, itemnotes, holdingbranch, homebranch, 
dateaccessioned, replacementprice) values ($itemnumber,
    $biblionumber, $biblioitemnumber, $barcode, $q_itemnotes, 'STWE', 
$q_homebranch, '$date', $replacementprice)");
    $sth->execute;
}

if ($isbn) {
    my $sth;
    if ($isbn eq 'NULL') {
        $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 << "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> Home 
Branch: <select name=homebranch><option value='STWE'>Stewart Elementary<option 
value='MEZ'>Meziadin Elementary</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>
Or use the <a href=marcimport.pl>MARC Importing tool</a>
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

}

--- NEW FILE ---
#!/usr/bin/perl

#
# TODO
#
# Add info on biblioitems and items already entered as you enter new ones
#

my $starttime=gettime();

use C4::Database;
use CGI;
use strict;
use C4::Acquisitions;
use C4::Output;


my $input = new CGI;
my $dbh=C4Connect;
[...10211 lines suppressed...]
    $fields->{'880'}->{'secondindicator'}="Same as associated field";
    $fields->{'880'}->{'subfields'}->{"6"}->{'name'}="Linkage (NR) $a-z Same as 
associated field $0-5 Same as associated field $7-9 Same as associated field";
    $fields->{'880'}->{'subfields'}->{"6"}->{'repeating'}=0;
    $fields->{'886'}->{'name'}="FOREIGN MARC INFORMATION FIELD (R)";
    $fields->{'886'}->{'repeating'}=1;
    $fields->{'886'}->{'firstindicator'}="Type of field";
    $fields->{'886'}->{'firstindicatorvalues'}->{"0"}="Leader";
    $fields->{'886'}->{'firstindicatorvalues'}->{"1"}="Variable control fields 
(002-009)";
    $fields->{'886'}->{'firstindicatorvalues'}->{"2"}="Variable data fields 
(010-999)";
    $fields->{'886'}->{'secondindicator'}="Undefined";
    $fields->{'886'}->{'subfields'}->{"a"}->{'name'}="Tag of the foreign MARC 
field (NR)";
    $fields->{'886'}->{'subfields'}->{"a"}->{'repeating'}=0;
    $fields->{'886'}->{'subfields'}->{"b"}->{'name'}="Content of the foreign 
MARC field  (NR)";
    $fields->{'886'}->{'subfields'}->{"b"}->{'repeating'}=0;
    $fields->{'886'}->{'subfields'}->{"2"}->{'name'}="Source of data (NR) $a-z 
- Foreign MARC subfield (R) $0-9 - Foreign MARC subfield (R)";
    $fields->{'886'}->{'subfields'}->{"2"}->{'repeating'}=0;
;

        
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]