[Top][All Lists]
[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> </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/\"/\"\;/g;
return($inp);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha serials.pl,NONE,1.1.2.1,
Steve Tonnesen <=
- Prev by Date:
[Koha-cvs] CVS: koha/C4 Biblio.pm,1.1.2.7,1.1.2.8
- Next by Date:
[Koha-cvs] CVS: koha/acqui.simple addbooks.pl,1.5.2.6,1.5.2.7 marcimport.pl,1.6.2.37,1.6.2.38
- Previous by thread:
[Koha-cvs] CVS: koha/C4 Biblio.pm,1.1.2.7,1.1.2.8
- Next by thread:
[Koha-cvs] CVS: koha/acqui.simple addbooks.pl,1.5.2.6,1.5.2.7 marcimport.pl,1.6.2.37,1.6.2.38
- Index(es):