koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] CVS: koha serials.pl,NONE,1.1.2.1


From: Steve Tonnesen
Subject: [Koha-cvs] CVS: koha serials.pl,NONE,1.1.2.1
Date: Thu, 25 Sep 2003 10:40:25 -0700

Update of /cvsroot/koha/koha
In directory sc8-pr-cvs1:/tmp/cvs-serv11778

Added Files:
      Tag: rel-1-2
        serials.pl 
Log Message:
Added a basic serials module.  Currently only tested with simple acquisitions.


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

# serials.pl
#
# A simple serials module.  Looks for all biblios where the "serial" flag is
# set to 1 and allows you to quickly add new issues for those serials.  Barcode
# entry is manual, facilitating "throwaway" barcodes for serial issues.
#
# Written September 2003 by Steve Tonnesen <address@hidden>
#
#

use strict;

use C4::Search;
use CGI;
use C4::Output;
use C4::Auth;
use C4::Context;
use C4::Biblio;

my $input = new CGI;
my $dbh=C4::Context->dbh();

my $flagsrequired;
$flagsrequired->{editcatalogue}=1;
my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, $flagsrequired);

print $input->header;
#my ($analytictitle)  = analytic($biblionumber,'t');
#my ($analyticauthor) = analytic($biblionumber,'a');
print startpage();
print startmenu('acquisitions');


print << "EOF";
<h1>Serials Module</h1>
EOF

if ($input->param('removeissues')) {
    foreach ($input->param) {
        if (m#remove-(\d+)#) {
            my $itemnumber=$1;
            my $sth=$dbh->prepare("update items set wthdrawn=1 where 
itemnumber=?");
            $sth->execute($itemnumber);
        }
    }
    my $biblionumber=$input->param('biblionumber');
    my @items = ItemInfo(undef, $biblionumber);
    print "<form method=post>
    <input type=hidden name=biblionumber value=$biblionumber>
    <input type=hidden name=removeissues value=1>
    ";
    print "<table border=1 cellspacing=0 cellpadding=3 bgcolor=#cccccc>\n";
    print "<tr><th colspan=6 background=/images/background-mem.gif>Select 
copies of <i>".$items[0]->{title}."</i> to remove from circulation</th></tr>\n";
    print "<tr 
background=/images/background-mem.gif><th>&nbsp;</th><th>Barcode</th><th>Vol/No</th><th>Date/Desc</th><th>Notes</th></tr>\n";
    foreach (@items) {
        print "<tr>
<td valign=top align=center><input type=checkbox 
name=remove-$_->{itemnumber}></td>
<td valign=top align=center>$_->{barcode}</td>
<td valign=top align=center>$_->{volume} $_->{number}</td>
<td valign=top>$_->{volumeddesc}</td>
<td valign=top>$_->{notes}</td>\n";
    }
    print "<tr><td align=center colspan=6><input type=submit value=\"Retire 
Issues\"></td></tr>\n";
    print "</table>\n";
    print "<p><a href=serials.pl>Back to Serials List</a>\n";

} elsif ($input->param('addissue')) {
    my $biblionumber=$input->param('biblionumber');
    my ($count, @results) = getbiblio($biblionumber);
    my $biblio=$results[0];
    my $title=$biblio->{'title'};
    if ($input->param('setbarcodes')) {
        my $copies=$input->param('copies');
        if ($copies>1) {
            my $issn=$input->param('issn');
            my $notes=$input->param('notes');
            my $volume=$input->param('volume');
            my $number=$input->param('number');
            my $date=$input->param('date');
            my $hidden=$input->hidden(-name => 'notes', -value => $notes)."\n";
            $hidden.=$input->hidden(-name => 'volume', -value => $volume)."\n";
            $hidden.=$input->hidden(-name => 'number', -value => $number)."\n";
            $hidden.=$input->hidden(-name => 'issn', -value => $issn)."\n";
            $hidden.=$input->hidden(-name => 'date', -value => $date)."\n";
            $hidden.=$input->hidden(-name => 'biblionumber', -value => 
$biblionumber)."\n";
            $hidden.=$input->hidden(-name => 'copies', -value => $copies)."\n";
            print << "EOF";
<form method=post>
<input type=hidden name=addissue value=1>
$hidden
<input type=hidden name=createissues value=1>
<table border=1 cellspacing=0 cellpadding=3 bgcolor=#cccccc>
<tr><th colspan=2 
background=/images/background-mem.gif><i>$title</i><br>Barcodes</th></tr>
EOF
            if ($input->param('barcode')) {
                my $barcode=$input->param('barcode');
                print "<tr><td>Barcode for copy 1</td><td><input type=hidden 
name=barcode-1 value=$barcode>$barcode\n";
            } else {
                print "<tr><td>Barcode for copy 1</td><td><input 
name=barcode-1>\n";
            }
            for (my $i=2; $i<=$copies; $i++) {
                print "<tr><td>Barcode for copy $i</td><td><input 
name=barcode-$i>\n";
            }
            print "<tr><td colspan=2 align=center><input type=submit 
value=\"Add Issue(s)\"></td></tr>\n";
            print "</table>\n";
        } else {
            print "New issue added for <i>$title</i><br>\n";
            my $biblioitem;
            $biblioitem->{'biblionumber'}=$input->param('biblionumber');
            $biblioitem->{'volume'}=$input->param('volume');
            $biblioitem->{'number'}=$input->param('number');
            $biblioitem->{'volumeddesc'}=$input->param('date');
            $biblioitem->{'issn'}=$input->param('issn');
            $biblioitem->{'notes'}=$input->param('notes');
            $biblioitem->{'itemtype'}="PER";
            my $biblioitemnumber=newbiblioitem($biblioitem);
            my $item;
            $item->{'biblionumber'}=$input->param('biblionumber');
            $item->{'biblioitemnumber'}=$biblioitemnumber;
            $item->{'homebranch'}='STWE';
            $item->{'holdingbranch'}='STWE';
            my @barcodes;
            if ($input->param('barcode')) {
                push @barcodes, $input->param('barcode');
                newitems($item, @barcodes);
            } else {
                print "<font color=red size=+1>Error.  No barcode entered.  
Item not added.</font><br>\n";
            }
            print "<hr><a href=serials.pl>Back to Serials List</a>\n";
        }
    } elsif ($input->param('createissues')) {
        print "New issues added for <i>$title</i><br>\n";
        my $biblioitem;
        $biblioitem->{'biblionumber'}=$input->param('biblionumber');
        $biblioitem->{'volume'}=$input->param('volume');
        $biblioitem->{'number'}=$input->param('number');
        $biblioitem->{'volumeddesc'}=$input->param('date');
        $biblioitem->{'issn'}=$input->param('issn');
        $biblioitem->{'notes'}=$input->param('notes');
        $biblioitem->{'itemtype'}="PER";
        my $biblioitemnumber=newbiblioitem($biblioitem);
        my $item;
        $item->{'biblionumber'}=$input->param('biblionumber');
        $item->{'biblioitemnumber'}=$biblioitemnumber;
        $item->{'homebranch'}='AF';
        $item->{'holdingbranch'}='AF';
        my @barcodes;
        foreach ($input->param) {
            if (m#barcode-(\d+)#) {
                my $copynumber=$1;
                if ($input->param($_)) {
                    push @barcodes, $input->param($_);
                } else {
                    print "<font color=red size=+1>Error.  No barcode entered. 
Copy #$copynumber not added.</font><br>\n";
                }
            }
        }
        newitems($item, @barcodes);
        print "<hr><a href=serials.pl>Back to Serials List</a>\n";
    } else {
        my $sth=$dbh->prepare("select issn from biblioitems where 
biblionumber=? and issn !='' and !isnull(issn)");
        $sth->execute($biblionumber);
        my ($issn) = $sth->fetchrow;
        print << "EOF";
<form method=post>
<input type=hidden name=addissue value=1>
<input type=hidden name=setbarcodes value=1>
<input type=hidden name=biblionumber value=$biblionumber>
<table border=1 cellspacing=0 cellpadding=3 bgcolor=#cccccc>
<tr><th colspan=2 background=/images/background-mem.gif>
<i>$title</i>
<br>
New Issue Details
</th></tr>
<tr><td><b>Volume</b>:</td><td><input name=volume size=10></td></tr>
<tr><td><b>Number</b>:</td><td><input name=number size=10></td></tr>
<tr><td><b>ISSN</b>:</td><td><input name=issn size=10 value=$issn></td></tr>
<tr><td><b>Date (or volume description):</td><td><input name=date 
size=20></td></tr>
<tr><td><b>Copies</b>:</td><td><input name=copies value=1 size=5></td></tr>
<tr><td><b>Barcode</b>:<br>(extra barcodes can be<br>entered on next page 
if<br>cataloguing multiple copies)</td><td valign=top><input name=barcode 
size=20></td></tr>
<tr><td valign=top><b>Notes</b>:</td><td><textarea rows=4 cols=40 wrap=physical 
name=notes></textarea></td></tr>
<tr><td colspan=2 align=center><input type=submit value="Add 
Issue(s)"></td></tr>
</table>
</form>
<p><a href=serials.pl>Back to Serials List</a>
EOF
    }
} else {
    my $sth=$dbh->prepare("select biblionumber,title from biblio where 
serial=1");
    $sth->execute;
    print "<table border=1 cellspacing=0 cellpadding=3 bgcolor=#cccccc>\n";
    print "<tr background=/images/background-mem.gif><th colspan=4>Serials 
List</th></tr>\n";
    while (my ($biblionumber, $title) = $sth->fetchrow) {
        print "<tr><td>$title</td>
<td bgcolor=#dddddd><a 
href=serials.pl?biblionumber=$biblionumber&addissue=1>New Issue</a></td>
<td><a href=serials.pl?biblionumber=$biblionumber&removeissues=1>Retire 
Issues</a></td>
<td bgcolor=#dddddd><a 
href=modbib.pl?bibnum=$biblionumber&submit.x=1&submit.y=1>Modify Record</a></td>
        </tr>\n";
    }
    print "</table>\n";
}



print endmenu();
print endpage();

sub tidyhtml {
  my ($inp)address@hidden;
  $inp=~ s/\"/\&quot\;/g;
  return($inp);
}




reply via email to

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