Koha-devel
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 5 participants
- 10627 discussions
CVS: koha/acqui.simple addbiblioitem.pl,1.2,1.3 additem.pl,1.2,1.3 savebiblio.pl,1.2,1.3 savebiblioitem.pl,1.2,1.3 saveitem.pl,1.2,1.3
by Gynn Lomax 06 May '02
by Gynn Lomax 06 May '02
06 May '02
Update of /cvsroot/koha/koha/acqui.simple
In directory usw-pr-cvs1:/tmp/cvs-serv7908
Modified Files:
addbiblioitem.pl additem.pl savebiblio.pl savebiblioitem.pl
saveitem.pl
Log Message:
Fixed bug due to way hashes take values. Was stopping items being saved to
database. Added code to pick up branch list from database.
Index: addbiblioitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/addbiblioitem.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** addbiblioitem.pl 3 May 2002 02:47:33 -0000 1.2
--- addbiblioitem.pl 6 May 2002 02:47:49 -0000 1.3
***************
*** 115,119 ****
</tr>
<tr valign="top">
! <td colspan="4" align="center"><input type="submit" value="Add New Item"></td>
</tr>
--- 115,119 ----
</tr>
<tr valign="top">
! <td colspan="4" align="center"><input type="submit" value="Add New Group"></td>
</tr>
Index: additem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/additem.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** additem.pl 3 May 2002 02:47:33 -0000 1.2
--- additem.pl 6 May 2002 02:47:49 -0000 1.3
***************
*** 12,15 ****
--- 12,17 ----
my $count;
my @results;
+ my $branchcount;
+ my @branches;
if (! $biblioitemnum) {
***************
*** 30,33 ****
--- 32,36 ----
($count, @results) = &getitemsbybiblioitem($biblioitemnum);
+ ($branchcount, @branches) = &branches;
if ($count) {
***************
*** 70,74 ****
<td><input name="barcode" size="10" value="$maxbarcode" /></td>
<td align="right">Home Branch:</td>
! <td><select name="homebranch"><option value="STWE">Stewart Elementary<option value="MEZ">Meziadin Elementary</select></td>
</tr>
<tr>
--- 73,87 ----
<td><input name="barcode" size="10" value="$maxbarcode" /></td>
<td align="right">Home Branch:</td>
! <td><select name="homebranch">
! EOF
!
! for (my $i = 0; $i < $branchcount; $i ++) {
! print << "EOF";
! <option value="$branches[$i]->{'branchcode'}">$branches[$i]->{'branchname'}
! EOF
! } # for
!
! print << "EOF";
! </select></td>
</tr>
<tr>
Index: savebiblio.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/savebiblio.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** savebiblio.pl 3 May 2002 02:47:33 -0000 1.2
--- savebiblio.pl 6 May 2002 02:47:49 -0000 1.3
***************
*** 6,17 ****
my $input = new CGI;
! my $biblio = { title => $input->param('title'),
! subtitle => $input->param('subtitle'),
! author => $input->param('author'),
! seriestitle => $input->param('seriestitle'),
! copyright => $input->param('copyrightdate'),
! abstract => $input->param('abstract'),
! notes => $input->param('notes')
! }; # my $biblio
my $biblionumber;
--- 6,18 ----
my $input = new CGI;
! my $biblio = {
! title => $input->param('title'),
! subtitle => $input->param('subtitle')?$input->param('subtitle'):"",
! author => $input->param('author')?$input->param('author'):"",
! seriestitle => $input->param('seriestitle')?$input->param('seriestitle'):"",
! copyright => $input->param('copyrightdate')?$input->param('copyrightdate'):"",
! abstract => $input->param('abstract')?$input->param('abstract'):"",
! notes => $input->param('notes')?$input->param('notes'):""
! }; # my $biblio
my $biblionumber;
Index: savebiblioitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/savebiblioitem.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** savebiblioitem.pl 3 May 2002 02:47:33 -0000 1.2
--- savebiblioitem.pl 6 May 2002 02:47:49 -0000 1.3
***************
*** 9,31 ****
my $biblioitem = {
biblionumber => $biblionumber,
! publishercode => $input->param('publishercode'),
! publicationyear => $input->param('publicationyear'),
! place => $input->param('year'),
! illus => $input->param('illus'),
! isbn => $input->param('isbn'),
! additionalauthors => $input->param('additionalauthors'),
! subjectheadings => $input->param('subjectheadings'),
! itemtype => $input->param('itemtype'),
! url => $input->param('url'),
! dewey => $input->param('dewey'),
! subclass => $input->param('subclass'),
! issn => $input->param('issn'),
! lccn => $input->param('lccn'),
! volume => $input->param('volume'),
! number => $input->param('number'),
! volumeddesc => $input->param('volumeddesc'),
! pages => $input->param('pages'),
! size => $input->param('size'),
! notes => $input->param('notes')
};
my $biblioitemnum;
--- 9,31 ----
my $biblioitem = {
biblionumber => $biblionumber,
! publishercode => $input->param('publishercode')?$input->param('publishercode'):"",
! publicationyear => $input->param('publicationyear')?$input->param('publicationyear'):"",
! place => $input->param('year')?$input->param('year'):"",
! illus => $input->param('illus')?$input->param('illus'):"",
! isbn => $input->param('isbn')?$input->param('isbn'):"",
! additionalauthors => $input->param('additionalauthors')?$input->param('additionalauthors'):"",
! subjectheadings => $input->param('subjectheadings')?$input->param('subjectheadings'):"",
! itemtype => $input->param('itemtype')?$input->param('itemtype'):"",
! url => $input->param('url')?$input->param('url'):"",
! dewey => $input->param('dewey')?$input->param('dewey'):"",
! subclass => $input->param('subclass')?$input->param('subclass'):"",
! issn => $input->param('issn')?$input->param('issn'):"",
! lccn => $input->param('lccn')?$input->param('lccn'):"",
! volume => $input->param('volume')?$input->param('volume'):"",
! number => $input->param('number')?$input->param('number'):"",
! volumeddesc => $input->param('volumeddesc')?$input->param('volumeddesc'):"",
! pages => $input->param('pages')?$input->param('pages'):"",
! size => $input->param('size')?$input->param('size'):"",
! notes => $input->param('notes')?$input->param('notes'):""
};
my $biblioitemnum;
Index: saveitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/saveitem.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** saveitem.pl 3 May 2002 02:47:33 -0000 1.2
--- saveitem.pl 6 May 2002 02:47:49 -0000 1.3
***************
*** 11,17 ****
biblioitemnumber => $biblioitemnum,
homebranch => $input->param('homebranch'),
! replacementprice => $input->param('replacementprice'),
! itemnotes => $input->param('notes')
! };
my $count;
my @results;
--- 11,17 ----
biblioitemnumber => $biblioitemnum,
homebranch => $input->param('homebranch'),
! replacementprice => $input->param('replacementprice')?$input->param('replacementprice'):"",
! itemnotes => $input->param('notes')?$input->param('notes'):""
! }; # my $item
my $count;
my @results;
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv19047
Added Files:
Tag: rel-1-2
INSTALL Hints
Log Message:
Installation documents
--- NEW FILE ---
Koha - Requirements and quick-start installation guide
INSTALL document included with [Koha]
For information on how to install Koha without requiring multiple virtual servers - See KohaAllInOne.
For additional information on how your Configuration files should look see the Hints file.
Important....
To successfully use Koha you need some additional software:
A webserver (It was built to work with Apache, but there is no reason it shouldnt work with any other webserver).
Mysql (You could intead use postgres, or another sql based database)
Perl (mod_perl isnt needed, tho koha should work with mod_perl but this hasnt been tested yet).
Perl Modules:
Date::Manip
DBI
Set::Scalar
DBD::mysql (or whatever database system you use)
AuthenDBI (if you want to use Database based authentication)
CDK (for the telnet interface not nessecary if you plan to use the web based circulation module) also requires installation of the C CDK libraries http://www.vexus.ca/CDK.html ( CDKModuleHasProblems )
--------------------------------------------------------------------------------
Quick-start Installation Guide
(Assumes the Use of MySQL and Apache)
1. Create a new mysql database called for example Koha
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv20806
Added Files:
INSTALL Hints
Log Message:
No harm in adding these to the main branch either
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv32641
Modified Files:
database.mysql
Log Message:
updated database.mysql : dropped unused tables, created indexes : old database.mysql updated by updatedatabase2.pl script
Index: database.mysql
===================================================================
RCS file: /cvsroot/koha/koha/database.mysql,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** database.mysql 2 May 2002 00:23:26 -0000 1.4
--- database.mysql 2 May 2002 09:19:49 -0000 1.5
***************
*** 1,60 ****
! # MySQL dump 7.1
! #
! # Host: localhost Database: c4test
! #--------------------------------------------------------
! # Server version 3.22.32-log
#
! # Table structure for table 'accountlines'
#
CREATE TABLE accountlines (
[...1500 lines suppressed...]
+
CREATE TABLE systempreferences (
! variable char(50) NOT NULL default '',
! value char(200) default NULL,
! PRIMARY KEY (variable)
! ) TYPE=ISAM PACK_KEYS=1;
! # --------------------------------------------------------
#
! # Table structure for table `users`
#
+
CREATE TABLE users (
! usercode varchar(10) NOT NULL default '',
username text,
password text,
! level smallint(6) default NULL,
! PRIMARY KEY (usercode)
! ) TYPE=ISAM PACK_KEYS=1;
2
1
CVS: koha/acqui.simple addbiblioitem.pl,1.1,1.2 additem.pl,1.1,1.2 savebiblio.pl,1.1,1.2 savebiblioitem.pl,1.1,1.2 saveitem.pl,1.1,1.2
by Gynn Lomax 03 May '02
by Gynn Lomax 03 May '02
03 May '02
Update of /cvsroot/koha/koha/acqui.simple
In directory usw-pr-cvs1:/tmp/cvs-serv25277/acqui.simple
Modified Files:
addbiblioitem.pl additem.pl savebiblio.pl savebiblioitem.pl
saveitem.pl
Log Message:
Bug fixes to get the new acqui.simple system working.
Index: addbiblioitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/addbiblioitem.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** addbiblioitem.pl 29 Apr 2002 05:29:02 -0000 1.1
--- addbiblioitem.pl 3 May 2002 02:47:33 -0000 1.2
***************
*** 17,27 ****
($count, @results) = &getbiblio($biblionumber);
! $title = @results[0]->{'title'};
! print $input->header;
! print startpage();
! print startmenu('acquisitions');
! print << "EOF";
<font size="6"><em>Adding New Group Information - $title</em></font>
<table bgcolor="#ffcc00" width="80%" cellpadding="5">
--- 17,31 ----
($count, @results) = &getbiblio($biblionumber);
!
! if (! $count) {
! print $input->redirect('addbooks.pl');
! } else {
! $title = @results[0]->{'title'};
! print $input->header;
! print startpage();
! print startmenu('acquisitions');
! print << "EOF";
<font size="6"><em>Adding New Group Information - $title</em></font>
<table bgcolor="#ffcc00" width="80%" cellpadding="5">
***************
*** 64,75 ****
EOF
! ($count, @results) = &getitemtypes;
! for (my $i = 0; $i < $count; $i++) {
! print << "EOF";
<option value="$results[$i]->{'itemtype'}">$results[$i]->{'itemtype'} - $results[$i]->{'description'}
EOF
! } # for
! print << "EOF";
</select></td>
</tr>
--- 68,79 ----
EOF
! ($count, @results) = &getitemtypes;
! for (my $i = 0; $i < $count; $i++) {
! print << "EOF";
<option value="$results[$i]->{'itemtype'}">$results[$i]->{'itemtype'} - $results[$i]->{'description'}
EOF
! } # for
! print << "EOF";
</select></td>
</tr>
***************
*** 117,121 ****
EOF
! print endmenu();
! print endpage();
} # else
--- 121,126 ----
EOF
! print endmenu();
! print endpage();
! } # else
} # else
Index: additem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/additem.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** additem.pl 29 Apr 2002 05:29:02 -0000 1.1
--- additem.pl 3 May 2002 02:47:33 -0000 1.2
***************
*** 16,20 ****
print $input->redirect('addbooks.pl');
} else {
!
($count, @results) = &getbiblioitem($biblioitemnum);
--- 16,20 ----
print $input->redirect('addbooks.pl');
} else {
!
($count, @results) = &getbiblioitem($biblioitemnum);
***************
*** 63,67 ****
<center>
<h2>Section Three: Specific Item Information</h2>
! <form action="saveitems" method="post">
<input type="hidden" name="biblioitemnum" value="$biblioitemnum">
<table>
--- 63,67 ----
<center>
<h2>Section Three: Specific Item Information</h2>
! <form action="saveitem.pl" method="post">
<input type="hidden" name="biblioitemnum" value="$biblioitemnum">
<table>
Index: savebiblio.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/savebiblio.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** savebiblio.pl 29 Apr 2002 05:29:02 -0000 1.1
--- savebiblio.pl 3 May 2002 02:47:33 -0000 1.2
***************
*** 6,16 ****
my $input = new CGI;
! my $biblio->{'title'} = $input->param('title');
! my $biblio->{'subtitle'} = $input->param('subtitle');
! my $biblio->{'author'} = $input->param('author');
! my $biblio->{'seriestitle'} = $input->param('seriestitle');
! my $biblio->{'copyright'} = $input->param('copyrightdate');
! my $biblio->{'abstract'} = $input->param('abstract');
! my $biblio->{'notes'} = $input->param('notes');
my $biblionumber;
--- 6,17 ----
my $input = new CGI;
! my $biblio = { title => $input->param('title'),
! subtitle => $input->param('subtitle'),
! author => $input->param('author'),
! seriestitle => $input->param('seriestitle'),
! copyright => $input->param('copyrightdate'),
! abstract => $input->param('abstract'),
! notes => $input->param('notes')
! }; # my $biblio
my $biblionumber;
***************
*** 20,25 ****
$biblionumber = &newbiblio($biblio);
! &newsubtitle($biblionumber, $subtitle);
! print $input->redirect('addbiblioitem.pl?biblionumber=$biblionumber');
} # else
--- 21,26 ----
$biblionumber = &newbiblio($biblio);
! &newsubtitle($biblionumber, $biblio->{'subtitle'});
! print $input->redirect("addbiblioitem.pl?biblionumber=$biblionumber");
} # else
Index: savebiblioitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/savebiblioitem.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** savebiblioitem.pl 29 Apr 2002 05:29:02 -0000 1.1
--- savebiblioitem.pl 3 May 2002 02:47:33 -0000 1.2
***************
*** 37,40 ****
$biblioitemnum = &newbiblioitem($biblioitem);
! print $input->redirect('additem.pl?biblioitemnum=$biblioitemnum');
} # else
--- 37,40 ----
$biblioitemnum = &newbiblioitem($biblioitem);
! print $input->redirect("additem.pl?biblioitemnum=$biblioitemnum");
} # else
Index: saveitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/saveitem.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** saveitem.pl 29 Apr 2002 05:29:02 -0000 1.1
--- saveitem.pl 3 May 2002 02:47:33 -0000 1.2
***************
*** 9,13 ****
my $biblioitemnum = $input->param('biblioitemnum');
my $item = {
! biblioitemnum => $biblioitemnum,
homebranch => $input->param('homebranch'),
replacementprice => $input->param('replacementprice'),
--- 9,13 ----
my $biblioitemnum = $input->param('biblioitemnum');
my $item = {
! biblioitemnumber => $biblioitemnum,
homebranch => $input->param('homebranch'),
replacementprice => $input->param('replacementprice'),
***************
*** 31,35 ****
&newitems($item, ($barcode));
! print $input->redirect('additem.pl?biblioitemnum=$biblioitemnum');
} # else
} # else
--- 31,35 ----
&newitems($item, ($barcode));
! print $input->redirect("additem.pl?biblioitemnum=$biblioitemnum");
} # else
} # else
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv25277
Modified Files:
detail.pl
Log Message:
Bug fixes to get the new acqui.simple system working.
Index: detail.pl
===================================================================
RCS file: /cvsroot/koha/koha/detail.pl,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** detail.pl 15 Mar 2001 10:17:33 -0000 1.3
--- detail.pl 3 May 2002 02:47:33 -0000 1.4
***************
*** 5,9 ****
use strict;
- #use DBI;
use C4::Search;
use CGI;
--- 5,8 ----
***************
*** 11,53 ****
my $input = new CGI;
! print $input->header;
! #whether it is called from the opac of the intranet
! my $type=$input->param('type');
! if ($type eq ''){
! $type='intra';
! }
! #setup colours
my $main;
my $secondary;
if ($type eq 'opac'){
! $main='#99cccc';
! $secondary='#efe5ef';
} else {
! $main='#cccc99';
! $secondary='#ffffcc';
! }
print startpage();
print startmenu($type);
- #print $type;
- my $blah;
- my $bib=$input->param('bib');
- my $title=$input->param('title');
- if ($type ne 'opac'){
- print "<a href=request.pl?bib=$bib><img height=42 WIDTH=120 BORDER=0 src=\"/images/requests.gif\" align=right border=0></a>";
- }
- my @items=ItemInfo(\$blah,$bib,$type);
- my $dat=bibdata($bib);
- my $count=@items;
- my ($count3,$addauthor)=addauthor($bib);
- my $additional=$addauthor->[0]->{'author'};
- for (my $i=1;$i<$count3;$i++){
- $additional=$additional."|".$addauthor->[$i]->{'author'};
- }
- my @temp=split('\t',$items[0]);
if ($type eq 'catmain'){
print mkheadr(3,"Catalogue Maintenance");
! }
if ($dat->{'author'} ne ''){
print mkheadr(3,"$dat->{'title'} ($dat->{'author'}) $temp[4]");
--- 10,56 ----
my $input = new CGI;
! my $type = $input->param('type');
! my $bib = $input->param('bib');
! my $title = $input->param('title');
! my @items = &ItemInfo(undef, $bib, $type);
! my $dat = &bibdata($bib);
! my $count = @items;
! my ($count3, $addauthor) = &addauthor($bib);
! my $additional = $addauthor->[0]->{'author'};
! my @temp = split('\t', $items[0]);
my $main;
my $secondary;
+
+ if ($type eq ''){
+ $type = 'opac';
+ } # if
+
+ # setup colours
if ($type eq 'opac'){
! $main = '#99cccc';
! $secondary = '#efe5ef';
} else {
! $main = '#cccc99';
! $secondary = '#ffffcc';
! } # else
!
! print $input->header;
print startpage();
print startmenu($type);
+ if ($type ne 'opac'){
+ print << "EOF";
+ <a href=request.pl?bib=$bib><img height=42 WIDTH=120 BORDER=0 src=\"/images/requests.gif\" align=right border=0></a>
+ EOF
+ } # if
+
+ for (my $i = 1; $i < $count3; $i++) {
+ $additional .= "|" . $addauthor->[$i]->{'author'};
+ } # for
if ($type eq 'catmain'){
print mkheadr(3,"Catalogue Maintenance");
! } # if
!
if ($dat->{'author'} ne ''){
print mkheadr(3,"$dat->{'title'} ($dat->{'author'}) $temp[4]");
***************
*** 55,59 ****
print mkheadr(3,"$dat->{'title'} $temp[4]");
}
! print <<printend
<TABLE CELLSPACING=0 CELLPADDING=5 border=1 align=left width="220">
--- 58,62 ----
print mkheadr(3,"$dat->{'title'} $temp[4]");
}
! print << "EOF";
<TABLE CELLSPACING=0 CELLPADDING=5 border=1 align=left width="220">
***************
*** 67,83 ****
<td bgcolor="$main"
! printend
! ;
if ($type ne 'opac'){
print "background=\"/images/background-mem.gif\"";
}
! print <<printend
><B>BIBLIO RECORD
! printend
! ;
if ($type ne 'opac'){
print "$bib";
}
! print <<printend
</TD></TR>
--- 70,86 ----
<td bgcolor="$main"
! EOF
!
if ($type ne 'opac'){
print "background=\"/images/background-mem.gif\"";
}
! print << "EOF";
><B>BIBLIO RECORD
! EOF
!
if ($type ne 'opac'){
print "$bib";
}
! print << "EOF";
</TD></TR>
***************
*** 85,103 ****
<tr VALIGN=TOP >
<TD>
! printend
! ;
if ($type ne 'opac'){
print "<INPUT TYPE=\"image\" name=\"submit\" VALUE=\"modify\" height=42 WIDTH=93 BORDER=0 src=\"/images/modify-mem.gif\">
<INPUT TYPE=\"image\" name=\"delete\" VALUE=\"delete\" height=42 WIDTH=93 BORDER=0 src=\"/images/delete-mem.gif\">";
}
! print <<printend
<br>
<FONT SIZE=2 face="arial, helvetica">
! printend
! ;
if ($type ne 'opac'){
! print <<printend
<b>Subtitle:</b> $dat->{'subtitle'}<br>
<b>Author:</b> $dat->{'author'}<br>
--- 88,105 ----
<tr VALIGN=TOP >
<TD>
! EOF
!
if ($type ne 'opac'){
print "<INPUT TYPE=\"image\" name=\"submit\" VALUE=\"modify\" height=42 WIDTH=93 BORDER=0 src=\"/images/modify-mem.gif\">
<INPUT TYPE=\"image\" name=\"delete\" VALUE=\"delete\" height=42 WIDTH=93 BORDER=0 src=\"/images/delete-mem.gif\">";
}
! print << "EOF";
<br>
<FONT SIZE=2 face="arial, helvetica">
! EOF
if ($type ne 'opac'){
! print << "EOF";
<b>Subtitle:</b> $dat->{'subtitle'}<br>
<b>Author:</b> $dat->{'author'}<br>
***************
*** 113,118 ****
<b>Total Number of Items:</b> $count
<p>
! printend
! ;
}
else {
--- 115,120 ----
<b>Total Number of Items:</b> $count
<p>
! EOF
!
}
else {
***************
*** 149,153 ****
}
! print <<printend
</form>
</font></TD>
--- 151,155 ----
}
! print << "EOF";
</form>
</font></TD>
***************
*** 156,165 ****
</TABLE>
<img src="/images/holder.gif" width=16 height=300 align=left>
!
! printend
! ;
!
!
! #print @items;
my $i=0;
--- 158,162 ----
</TABLE>
<img src="/images/holder.gif" width=16 height=300 align=left>
! EOF
my $i=0;
***************
*** 174,179 ****
my $colour=1;
while ($i < $count){
! # print $items[$i],"<br>";
! my @results=split('\t',$items[$i]);
if ($type ne 'opac'){
$results[1]=mklink("/cgi-bin/koha/moredetail.pl?item=$results[5]&bib=$bib&bi=$results[8]&type=$type",$results[1]);
--- 171,176 ----
my $colour=1;
while ($i < $count){
!
! my @results = split('\t', $items[$i]);
if ($type ne 'opac'){
$results[1]=mklink("/cgi-bin/koha/moredetail.pl?item=$results[5]&bib=$bib&bi=$results[8]&type=$type",$results[1]);
***************
*** 217,229 ****
print mktablehdr();
if ($type ne 'opac'){
! print <<printend
<TR VALIGN=TOP>
<TD bgcolor="99cc33" background="/images/background-mem.gif" colspan=2><p><b>HELP</b><br>
<b>Update Biblio for all Items:</b> Click on the <b>Modify</b> button [left] to amend the biblio. Any changes you make will update the record for <b>all</b> the items listed above. <p>
<b>Updating the Biblio for only ONE or SOME Items:</b>
! printend
! ;
if ($type eq 'catmain'){
! print <<printend
If some of the items listed above need a different biblio,
you need to click on the wrong item, then shift the group it belongs to, to the correct biblio.
--- 214,226 ----
print mktablehdr();
if ($type ne 'opac'){
! print << "EOF";
<TR VALIGN=TOP>
<TD bgcolor="99cc33" background="/images/background-mem.gif" colspan=2><p><b>HELP</b><br>
<b>Update Biblio for all Items:</b> Click on the <b>Modify</b> button [left] to amend the biblio. Any changes you make will update the record for <b>all</b> the items listed above. <p>
<b>Updating the Biblio for only ONE or SOME Items:</b>
! EOF
!
if ($type eq 'catmain'){
! print << "EOF";
If some of the items listed above need a different biblio,
you need to click on the wrong item, then shift the group it belongs to, to the correct biblio.
***************
*** 232,245 ****
</TR>
! printend
! ;
} else {
! print <<printend
If some of the items listed above need a different biblio, or are on the wrong biblio, you must use the <a href="acquisitions/">acquisitions</a> process to fix this. You will need to "re-order" the items, and delete them from this biblio.
<p>
</TR>
! printend
! ;
}
}
--- 229,242 ----
</TR>
! EOF
!
} else {
! print << "EOF";
If some of the items listed above need a different biblio, or are on the wrong biblio, you must use the <a href="acquisitions/">acquisitions</a> process to fix this. You will need to "re-order" the items, and delete them from this biblio.
<p>
</TR>
! EOF
!
}
}
1
0
Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv25277/C4
Modified Files:
Acquisitions.pm
Log Message:
Bug fixes to get the new acqui.simple system working.
Index: Acquisitions.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Acquisitions.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** Acquisitions.pm 29 Apr 2002 05:25:41 -0000 1.6
--- Acquisitions.pm 3 May 2002 02:47:33 -0000 1.7
***************
*** 407,411 ****
author = $biblio->{'author'},
copyrightdate = $biblio->{'copyright'},
! series = $series;
seriestitle = $biblio->{'seriestitle'},
notes = $biblio->{'notes'},
--- 407,411 ----
author = $biblio->{'author'},
copyrightdate = $biblio->{'copyright'},
! serial = $series,
seriestitle = $biblio->{'seriestitle'},
notes = $biblio->{'notes'},
***************
*** 413,417 ****
$sth = $dbh->prepare($query);
- # print $query;
$sth->execute;
--- 413,416 ----
***************
*** 913,923 ****
booksellerid = $item->{'booksellerid'},
dateaccessioned = NOW(),
! homebranch = $item->{'branch'},
! holdingbranch = $item->{'branch'},
price = $item->{'price'},
replacementprice = $item->{'replacementprice'},
replacementpricedate = NOW(),
- notforloan = $item->{'loan'},
itemnotes = $item->{'itemnotes'}";
$sth = $dbh->prepare($query);
--- 912,926 ----
booksellerid = $item->{'booksellerid'},
dateaccessioned = NOW(),
! homebranch = $item->{'homebranch'},
! holdingbranch = $item->{'homebranch'},
price = $item->{'price'},
replacementprice = $item->{'replacementprice'},
replacementpricedate = NOW(),
itemnotes = $item->{'itemnotes'}";
+
+ if ($item->{'loan'}) {
+ $query .= ",
+ notforloan = $item->{'loan'}";
+ } # if
$sth = $dbh->prepare($query);
1
0
Update of /cvsroot/koha/koha/updater
In directory usw-pr-cvs1:/tmp/cvs-serv32641/updater
Modified Files:
updatedatabase2.pl
Log Message:
updated database.mysql : dropped unused tables, created indexes : old database.mysql updated by updatedatabase2.pl script
Index: updatedatabase2.pl
===================================================================
RCS file: /cvsroot/koha/koha/updater/updatedatabase2.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** updatedatabase2.pl 19 Mar 2002 15:39:31 -0000 1.1
--- updatedatabase2.pl 2 May 2002 09:19:50 -0000 1.2
***************
*** 43,75 ****
my $dbh=C4Connect;
- my %tables;
my $sth=$dbh->prepare("show tables");
$sth->execute;
while (my ($table) = $sth->fetchrow) {
$tables{$table}=1;
}
! print "creating thesaurus...\n";
! dosql($dbh,"CREATE TABLE bibliothesaurus (code BIGINT not null AUTO_INCREMENT, freelib CHAR (255) not null , stdlib CHAR (255) not null , type CHAR (80) not null , PRIMARY KEY (code), INDEX (freelib),index(stdlib),index(type))");
! my $sti=$dbh->prepare("select subject from bibliosubject");
! $sti->execute;
! $i=0;
! while ($line =$sti->fetchrow_hashref) {
! $i++;
# print "$i $line->{'subject'}\n";
! $sti2=$dbh->prepare("select count(*) as t from bibliothesaurus where freelib=".$dbh->quote($line->{'subject'}));
! $sti2->execute;
! if ($sti2->err) {
! print "error : ".$sti2->errstr." \n tried to execute : $sql_cmd\n";
! die;
! }
! $line2=$sti2->fetchrow_hashref;
! if ($line2->{'t'} ==0) {
! dosql($dbh,"insert into bibliothesaurus (freelib,stdlib) values (".$dbh->quote($line->{'subject'}).",".$dbh->quote($line->{'subject'}).")");
! } else {
! print "pas ecriture pour : $line->{'subject'}\n";
! }
!
! }
#aqbookfund : the sample db is full of trash data. Delete and recreate
--- 43,75 ----
my $dbh=C4Connect;
my $sth=$dbh->prepare("show tables");
$sth->execute;
while (my ($table) = $sth->fetchrow) {
$tables{$table}=1;
+ print "table $table\n";
}
! #print "creating thesaurus...\n";
! #dosql($dbh,"CREATE TABLE bibliothesaurus (code BIGINT not null AUTO_INCREMENT, freelib CHAR (255) not null , stdlib CHAR (255) not null , type CHAR (80) not null , PRIMARY KEY (code), INDEX (freelib),index(stdlib),index(type))");
! # my $sti=$dbh->prepare("select subject from bibliosubject");
! # $sti->execute;
! # $i=0;
! # while ($line =$sti->fetchrow_hashref) {
! # $i++;
# print "$i $line->{'subject'}\n";
! # $sti2=$dbh->prepare("select count(*) as t from bibliothesaurus where freelib=".$dbh->quote($line->{'subject'}));
! # $sti2->execute;
! # if ($sti2->err) {
! # print "error : ".$sti2->errstr." \n tried to execute : $sql_cmd\n";
! # die;
! # }
! # $line2=$sti2->fetchrow_hashref;
! # if ($line2->{'t'} ==0) {
! # dosql($dbh,"insert into bibliothesaurus (freelib,stdlib) values (".$dbh->quote($line->{'subject'}).",".$dbh->quote($line->{'subject'}).")");
! # } else {
! # print "pas ecriture pour : $line->{'subject'}\n";
! # }
! #
! # }
#aqbookfund : the sample db is full of trash data. Delete and recreate
***************
*** 124,130 ****
dosql($dbh,"ALTER TABLE aqorderdelivery DROP PRIMARY KEY, ADD PRIMARY KEY(ordernumber);");
dosql($dbh,"ALTER TABLE aqorders DROP PRIMARY KEY, ADD PRIMARY KEY(ordernumber);");
! dosql($dbh,"ALTER TABLE biblio DROP PRIMARY KEY, ADD PRIMARY KEY(biblionumber, biblionumber);");
dosql($dbh,"ALTER TABLE biblioitems DROP PRIMARY KEY, ADD PRIMARY KEY(biblionumber, biblioitemnumber)");
! dosql($dbh,"CREATE INDEX SUBTITLE ON bibliosubtitle (subtitle(80))");
dosql($dbh,"ALTER TABLE borexp CHANGE borrowernumber borrowernumber INT (11) not null");
dosql($dbh,"ALTER TABLE borexp CHANGE newexp newexp DATE not null");
--- 124,130 ----
dosql($dbh,"ALTER TABLE aqorderdelivery DROP PRIMARY KEY, ADD PRIMARY KEY(ordernumber);");
dosql($dbh,"ALTER TABLE aqorders DROP PRIMARY KEY, ADD PRIMARY KEY(ordernumber);");
! dosql($dbh,"ALTER TABLE biblio DROP PRIMARY KEY, ADD PRIMARY KEY(biblionumber);");
dosql($dbh,"ALTER TABLE biblioitems DROP PRIMARY KEY, ADD PRIMARY KEY(biblionumber, biblioitemnumber)");
! # dosql($dbh,"CREATE INDEX SUBTITLE ON bibliosubtitle (subtitle(80))");
dosql($dbh,"ALTER TABLE borexp CHANGE borrowernumber borrowernumber INT (11) not null");
dosql($dbh,"ALTER TABLE borexp CHANGE newexp newexp DATE not null");
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv18536
Modified Files:
database.mysql
Log Message:
added branchrelations table and changed branchcategories table to allow
admin/branches.pl to work properly.
Index: database.mysql
===================================================================
RCS file: /cvsroot/koha/koha/database.mysql,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** database.mysql 29 Apr 2002 05:25:41 -0000 1.3
--- database.mysql 2 May 2002 00:23:26 -0000 1.4
***************
*** 305,310 ****
CREATE TABLE branchcategories (
categorycode char(2) DEFAULT '' NOT NULL,
! branchcode char(4) DEFAULT '' NOT NULL,
! branchholding int(11)
);
--- 305,319 ----
CREATE TABLE branchcategories (
categorycode char(2) DEFAULT '' NOT NULL,
! categoryname text,
! codedescription text,
! PRIMARY KEY (categorycode)
! );
!
! #
! # Table structure for table 'branchrelations'
! #
! CREATE TABLE branchrelations (
! branchcode varchar(4) DEFAULT '' NOT NULL,
! categorycode varchar(4) DEFAULT '' NOT NULL
);
***************
*** 330,336 ****
CREATE TABLE branchtransfers (
itemnumber int(11) DEFAULT '0' NOT NULL,
! datesent date DEFAULT '0000-00-00' NOT NULL,
frombranch varchar(4),
! datearrived date,
tobranch varchar(4),
comments text
--- 339,345 ----
CREATE TABLE branchtransfers (
itemnumber int(11) DEFAULT '0' NOT NULL,
! datesent datetime DEFAULT '0000-00-00' NOT NULL,
frombranch varchar(4),
! datearrived datetime,
tobranch varchar(4),
comments text
1
0
CVS: koha/circ circulationold.pl,NONE,1.1 returns.pl,NONE,1.1 branchtransfers.pl,1.3,1.4 circulation.pl,1.23,1.24
by Finlay Thompson 01 May '02
by Finlay Thompson 01 May '02
01 May '02
Update of /cvsroot/koha/koha/circ
In directory usw-pr-cvs1:/tmp/cvs-serv14842
Modified Files:
branchtransfers.pl circulation.pl
Added Files:
circulationold.pl returns.pl
Log Message:
Changes to circulations:
added returns.pl -> deals with the returns only
moved old circulation.pl to circulationold.pl which still deals with issues.
fixed up branchtransfers.pl
moved circulation2.pl to circulation.pl
Note more changes coming next week
--- NEW FILE ---
#!/usr/bin/perl
use CGI qw/:standard/;
use C4::Circulation::Circ2;
use C4::Output;
use C4::Print;
use DBI;
my %env;
my $headerbackgroundcolor='#99cc33';
my $circbackgroundcolor='#ffffcc';
my $circbackgroundcolor='white';
my $linecolor1='#ffffcc';
my $linecolor2='white';
my $backgroundimage="/images/background-mem.gif";
my $query=new CGI;
my $branches=getbranches(\%env);
my $printers=getprinters(\%env);
my $branch=$query->param('branch');
my $printer=$query->param('printer');
#print $query->header;
($branch) || ($branch=$query->cookie('branch'));
($printer) || ($printer=$query->cookie('printer'));
my ($oldbranch, $oldprinter);
if ($query->param('selectnewbranchprinter')) {
$oldbranch=$branch;
$oldprinter=$printer;
$branch='';
$printer='';
}
$env{'branchcode'}=$branch;
$env{'printer'}=$printer;
$env{'queue'}=$printer;
my $branchcount=0;
my $printercount=0;
my $branchoptions;
my $printeroptions;
foreach (keys %$branches) {
(next) unless ($_);
(next) if (/^TR$/);
$branchcount++;
my $selected='';
($selected='selected') if ($_ eq $oldbranch);
$branchoptions.="<option value=$_ $selected>$branches->{$_}->{'branchname'}\n";
}
foreach (keys %$printers) {
(next) unless ($_);
$printercount++;
my $selected='';
($selected='selected') if ($_ eq $oldprinter);
$printeroptions.="<option value=$_ $selected>$printers->{$_}->{'printername'}\n";
}
if ($printercount==1) {
($printer)=keys %$printers;
}
if ($branchcount==1) {
($branch)=keys %$branches;
}
my $branchname='';
my $printername='';
if ($branch && $printer) {
$branchname=$branches->{$branch}->{'branchname'};
$printername=$printers->{$printer}->{'printername'};
}
my $branchcookie=$query->cookie(-name=>'branch', -value=>"$branch", -expires=>'+1y');
my $printercookie=$query->cookie(-name=>'printer', -value=>"$printer", -expires=>'+1y');
print $query->header(-type=>'text/html',-expires=>'now', -cookie=>[$branchcookie,$printercookie]);
#print $query->dump;
print startpage();
#print startmenu('circulation');
my @inp=startmenu('circulation');
if ($query->param('module') eq 'issues' && $query->param('barcode') eq '' && $query->param('charges') eq 'yes'){
my $count=@inp;
for (my $i=0;$i<$count;$i++){
my $bornum=$query->param('borrnumber');
$inp[$i]=~ s/onLoad=focusinput\(\)/onLoad=focusinput\(\)\;messenger\(\"\/cgi-bin\/koha\/pay.pl?bornum=$bornum\"\)\;window1.focus\(\)/;
}
}
print @inp;
print <<EOF
<script language="javascript" type="text/javascript">
<!--
function messenger(url){
window1=window.open(url,"window1","height=700,width=600,left=150,top=50,350,screenY=50");
}
//-->
</script>
EOF
;
if ($printer && $branch) {
SWITCH: {
if ($query->param('module') eq 'issues') { issues(); last SWITCH; }
if ($query->param('module') eq 'returns') { returns(); last SWITCH; }
issues();
}
} else {
my ($printerform, $branchform);
if ($printercount>1) {
$printerform=<<"EOF";
<table border=0 cellspacing=0 cellpadding=5>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Choose a Printer</font></td></tr>
<tr><td>
<select name=printer>
$printeroptions
</select>
</td></tr>
</table>
EOF
} else {
my ($printer) = keys %$printers;
$printerform=<<"EOF";
<input type=hidden name=printer value=$printer>
EOF
}
if ($branchcount>1) {
$branchform=<<"EOF";
<table border=0 cellpadding=5 cellspacing=0>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Choose a Branch</font></td></tr>
<tr><td>
<select name=branch>
$branchoptions
</select>
</td></tr>
</table>
EOF
}
print << "EOF";
<center>
Select a branch and a printer
<form method=get>
<table border=0>
<tr><td>
$branchform
</td><td>
$printerform
</td></tr>
</table>
<input type=submit>
</form>
EOF
}
print endmenu('circulation');
print endpage();
sub default {
print << "EOF";
<a href=cirulationold.pl?module=issues&branch=$branch&printer=$printer>Issues</a>
<a href=cirulationold.pl?module=returns&branch=$branch&printer=$printer>Returns</a>
EOF
}
sub decode {
($encoded) = @_;
$seq = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-';
@s = map { index($seq,$_); } split(//,$encoded);
$l = ($#s+1) % 4;
if ($l)
{
if ($l == 1)
{
print "Error!";
return;
}
$l = 4-$l;
$#s += $l;
}
$r = '';
while ($#s >= 0)
{
$n = (($s[0] << 6 | $s[1]) << 6 | $s[2]) << 6 | $s[3];
$r .=chr(($n >> 16) ^ 67) .
chr(($n >> 8 & 255) ^ 67) .
chr(($n & 255) ^ 67);
@s = @s[4..$#s];
}
$r = substr($r,0,length($r)-$l);
return $r;
}
sub returns {
my %returneditems;
print "<FONT SIZE=6><em>Circulation: Returns</em></FONT><br>";
foreach ($query->param) {
(next) unless (/ri-(\d*)/);
my $counter=$1;
(next) if ($counter>20);
my $barcode=$query->param("ri-$counter");
# I'm not POSITIVE this decode belongs here - can't tell what causes it to run.
# decode cuecat
chomp($barcode);
@fields = split(/\./,$barcode);
@results = map(decode($_), @fields[1..$#fields]);
if ($#results == 2)
{
$barcode=$results[2];
}
# end decode
my $duedate=$query->param("dd-$counter");
my $borrowernumber=$query->param("bn-$counter");
$counter++;
$returneditems{$counter}=$barcode;
$riduedate{$counter}=$duedate;
$riborrowernumber{$counter}=$borrowernumber;
$ritext.="<input type=hidden name=ri-$counter value=$barcode>\n";
$ritext.="<input type=hidden name=dd-$counter value=$duedate>\n";
$ritext.="<input type=hidden name=bn-$counter value=$borrowernumber>\n";
}
if (my $barcode=$query->param('barcode')) {
# decode cuecat
chomp($barcode);
@fields = split(/\./,$barcode);
@results = map(decode($_), @fields[1..$#fields]);
if ($#results == 2)
{
$barcode=$results[2];
}
# end decode
$ritext.="<input type=hidden name=ri-0 value=$barcode>\n";
$returneditems{0}=$barcode;
}
my $barcodeentrytext= << "EOF";
<form method=post action=/cgi-bin/koha/circ/cirulationold.pl>
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><td colspan=2 bgcolor=$headerbackgroundcolor align=center background=$backgroundimage><font color=black><b>Enter Book Barcode</b></font></td></tr>
<tr><td>Item Barcode:</td><td><input name=barcode size=10></td></tr>
</table>
<input type=hidden name=module value=returns>
<input type=hidden name=branch value=$branch>
<input type=hidden name=printer value=$printer>
$ritext
EOF
if ((my $barcode=$query->param('barcode')) || (%returneditems)) {
# decode cuecat
chomp($barcode);
@fields = split(/\./,$barcode);
@results = map(decode($_), @fields[1..$#fields]);
if ($#results == 2)
{
$barcode=$results[2];
}
# end decode
my ($iteminformation, $borrower, $messages, $overduecharge) = returnbook(\%env, $barcode);
(my $nosuchitem=1) unless ($iteminformation);
$riborrowernumber{0}=$borrower->{'borrowernumber'};
$riduedate{0}=$iteminformation->{'date_due'};
$barcodeentrytext.= "<input type=hidden name=dd-0 value=$iteminformation->{'date_due'}>\n";
$barcodeentrytext.= "<input type=hidden name=bn-0 value=$borrower->{'borrowernumber'}>\n";
my @datearr = localtime(time());
my $todaysdate = (1900+$datearr[5]).'-'.sprintf ("%0.2d", ($datearr[4]+1)).'-'.
sprintf ("%0.2d", $datearr[3]);
my $itemtable=<<"EOF";
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Returned Item Information</font></th></tr>
<tr><td>
Title: $iteminformation->{'title'}<br>
<!--Hlt decided they dont want these showing, uncoment the html to make it work
Author: $iteminformation->{'author'}<br>
Barcode: <a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra onClick="openWindow(this, 'Item', 480, 640)">$iteminformation->{'barcode'}</a><br>
Date Due: $iteminformation->{'date_due'}-->
</td></tr>
</table>
EOF
if ($messages) {
my $messagetext='';
foreach (@$messages) {
$messagetext.="$_<p>\n";
}
print << "EOF";
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor $background=$backgroundimage><font color=black>Messages</font></th></tr>
<tr><td>
$messagetext
</td></tr>
</table>
<p>
EOF
}
if (($nosuchitem) && ($barcode)) {
print << "EOF";
<table border=0 cellpadding=1>
<tr>
<td valign=top>
$barcodeentrytext
</td>
<td valign=top>
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Error</font></th></tr>
<tr><td>
<table border=0 cellpadding=5>
<tr><td>
$barcode is not a valid barcode.
</td></tr>
</table>
</td></tr>
</table>
</td>
</tr>
</table>
EOF
} elsif ($nosuchitem) {
print << "EOF";
<table border=0 cellpadding=1>
<tr>
<td valign=top>
$barcodeentrytext
</td>
</tr>
</table>
EOF
} else {
if ($borrower->{'borrowernumber'}) {
my ($patrontable, $flaginfotext) = patrontable($borrower);
print << "EOF";
<table border=0 cellpadding=5>
<tr>
<td>
$barcodeentrytext
</td>
<td align=center valign=top>
$itemtable
</td>
</tr>
<tr>
<td valign=top align=center colspan=2>
<table border=0>
<tr><td valign=top>
$patrontable
</td>
<td valign=top>
$flaginfotext
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
EOF
} else {
print << "EOF";
<table border=0 cellpadding=5>
<tr><td>
$barcodeentrytext
</td>
<td>
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Error</font></th></tr>
<tr><td>
<table border=0 cellpadding=5>
<tr><td>
$iteminformation->{'title'} by $iteminformation->{'author'} was not loaned out.
</td></tr>
</table>
</td></tr>
</table>
</td>
</tr>
</table>
EOF
}
}
print << "EOF";
<p>
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th colspan=6 bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Returned Items</font></th></tr>
<tr><th>Due Date</th><th>Bar Code</th><th>Title</th><th>Author</th><th>Type</th><th>Borrower</th></tr>
EOF
my $color='';
#set up so only the lat 8 returned items display (make for faster loading pages)
my $count=0;
foreach (sort {$a <=> $b} keys %returneditems) {
if ($count < 8){
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
my $barcode=$returneditems{$_};
my $duedate=$riduedate{$_};
my @datearr = localtime(time());
###
# convert to nz date format
my @tempdate=split(/-/,$duedate);
$duedate="$tempdate[2]/$tempdate[1]/$tempdate[0]";
####
my $todaysdate = (1900+$datearr[5]).'-'.sprintf ("%0.2d", ($datearr[4]+1)).'-'.sprintf ("%0.2d", $datearr[3]);
my $overduetext="$duedate";
($overduetext="<font color=red>$duedate</font>") if ($duedate lt $todaysdate);
($duedate) || ($overduetext="<img src=/koha/images/blackdot.gif>");
my $borrowernumber=$riborrowernumber{$_};
my ($borrower) = getpatroninformation(\%env,$borrowernumber,0);
my ($iteminformation) = getiteminformation(\%env, 0, $barcode);
print "<tr><td bgcolor=$color>$overduetext</td><td bgcolor=$color align=center><a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$barcode</a></td><td bgcolor=$color>$iteminformation->{'title'}</td><td bgcolor=$color>$iteminformation->{'author'}</td><td bgcolor=$color align=center>$iteminformation->{'itemtype'}</td><td bgcolor=$color><img src=/koha/images/blackdot.gif><a href=/cgi-bin/koha/moremember.pl?bornum=$borrower->{'borrowernumber'} onClick=\"openWindow(this,'Member', 480, 640)\">$borrower->{'cardnumber'}</a> $borrower->{'firstname'} $borrower->{'surname'}</td></tr>\n";
} else {
last
}
$count++;
}
print "</table>\n";
} else {
print $barcodeentrytext;
}
print "</form>\n";
print "</td></tr></table>\n";
}
sub issues {
my ($noheader) = shift;
my $print=$query->param('print');
my $borrowernumber=$query->param('borrnumber');
my $barcode=$query->param('barcode');
if ($barcode eq ''){
$print='yes';
} elsif ($barcode eq ' '){
$query->param('barcode','');
$barcode='';
}
if ($print eq 'yes' && $borrowernumber ne ''){
my ($borrower, $flags) = getpatroninformation(\%env,$borrowernumber,0);
$env{'todaysissues'}=1;
my ($borrowerissues) = currentissues(\%env, $borrower);
$env{'nottodaysissues'}=1;
$env{'todaysissues'}=0;
my ($borroweriss2)=currentissues(\%env, $borrower);
$env{'nottodaysissues'}=0;
my $i=0;
my @issues;
foreach (sort keys %$borrowerissues) {
$issues[$i]=$borrowerissues->{$_};
my $dd=$issues[$i]->{'date_due'};
#convert to nz style dates
#this should be set with some kinda config variable
my @tempdate=split(/-/,$dd);
$issues[$i]->{'date_due'}="$tempdate[2]/$tempdate[1]/$tempdate[0]";
$i++;
}
foreach (sort keys %$borroweriss2) {
$issues[$i]=$borroweriss2->{$_};
my $dd=$issues[$i]->{'date_due'};
#convert to nz style dates
#this should be set with some kinda config variable
my @tempdate=split(/-/,$dd);
$issues[$i]->{'date_due'}="$tempdate[2]/$tempdate[1]/$tempdate[0]";
$i++;
}
remoteprint(\%env,\@issues,$borrower);
$query->param('borrnumber','')
}
unless ($noheader) {
print <<EOF
<p align=right>
<FONT SIZE=2 face="arial, helvetica">
<a href=circulationold.pl?borrnumber=$borrowernumber&module=issues&branch=$branch&printer=$printer&print>Next Borrower</a> ||
<a href=returns.pl>Returns</a> ||
<a href=branchtransfers.pl>Transfers</a></font><p>
</p>
<FONT SIZE=6><em>Circulation: Issues</em></FONT><br>
EOF
}
if (my $borrnumber=$query->param('borrnumber')) {
my ($borrower, $flags) = getpatroninformation(\%env,$borrnumber,0);
my $year=$query->param('year');
my $month=$query->param('month');
my $day=$query->param('day');
if (my $barcode=$query->param('barcode')) {
# decode cuecat
chomp($barcode);
@fields = split(/\./,$barcode);
@results = map(decode($_), @fields[1..$#fields]);
if ($#results == 2)
{
$barcode=$results[2];
}
# end decode
my $invalidduedate=0;
$env{'datedue'}='';
if (($year eq 0) && ($month eq 0) && ($year eq 0)) {
$env{'datedue'}='';
} else {
if (($year eq 0) || ($month eq 0) || ($year eq 0)) {
print "Invalid Due Date Specified. Book was not issued.<p>\n";
$invalidduedate=1;
} else {
if (($day>30) && (($month==4) || ($month==6) || ($month==9) || ($month==11))) {
print "Invalid Due Date Specified. Book was not issued. Only 30 days in $month month.<p>\n";
$invalidduedate=1;
} elsif (($day>29) && ($month==2)) {
print "Invalid Due Date Specified. Book was not issued. Never that many days in February!<p>\n";
$invalidduedate=1;
} elsif (($month==2) && ($day>28) && (($year%4) && ((!($year%100) || ($year%400))))) {
print "Invalid Due Date Specified. Book was not issued. $year is not a leap year.<p>\n";
$invalidduedate=1;
} else {
$env{'datedue'}="$year-$month-$day";
}
}
}
my %responses;
foreach (sort $query->param) {
if ($_ =~ /response-(\d*)/) {
$responses{$1}=$query->param($_);
}
}
if (my $qnumber=$query->param('questionnumber')) {
$responses{$qnumber}=$query->param('answer');
}
unless ($invalidduedate) {
my @time=localtime(time);
my $date= (1900+$time[5])."-".($time[4]+1)."-".$time[3];
my ($iteminformation, $duedate, $rejected, $question, $questionnumber, $defaultanswer, $message) = issuebook(\%env, $borrower, $barcode, \%responses,$date);
unless ($iteminformation) {
print << "EOF";
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Error</font></th></tr>
<tr><td>
<table border=0 cellpadding=5>
<tr><td>
$barcode is not a valid barcode.
</td></tr>
</table>
EOF
}
if ($rejected) {
if ($rejected == -1) {
} else {
print << "EOF"
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th><font color=black size=6>Error Issuing Book</font></th></tr>
<tr><td><font color=red size=6>$rejected</font></td></tr>
</table>
<br>
EOF
}
}
my $responsesform='';
foreach (keys %responses) {
$responsesform.="<input type=hidden name=response-$_ value=$responses{$_}>\n";
}
if ($question) {
my $stickyduedate=$query->param('stickyduedate');
print << "EOF";
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black><b>Issuing Question</b></font></td></tr>
<tr><td>
<table border=0 cellpadding=10>
<tr><td>
Attempting to issue $iteminformation->{'title'} by $iteminformation->{'author'} to $borrower->{'firstname'} $borrower->{'surname'}.
<p>
$question
</td></tr>
</table>
</td></tr>
<tr><td align=center>
<table border=0>
<tr><td>
<form method=get>
<input type=hidden name=module value=issues>
<input type=hidden name=borrnumber value=$borrnumber>
<input type=hidden name=barcode value=$barcode>
<input type=hidden name=questionnumber value=$questionnumber>
<input type=hidden name=day value=$day>
<input type=hidden name=month value=$month>
<input type=hidden name=year value=$year>
<input type=hidden name=stickyduedate value=$stickyduedate>
<input type=hidden name=branch value=$branch>
<input type=hidden name=printer value=$printer>
$responsesform
<input type=hidden name=answer value=Y>
<input type=submit value=Yes>
</form>
</td>
<td>
<form method=get>
<input type=hidden name=module value=issues>
<input type=hidden name=borrnumber value=$borrnumber>
<input type=hidden name=barcode value=$barcode>
<input type=hidden name=questionnumber value=$questionnumber>
<input type=hidden name=day value=$day>
<input type=hidden name=month value=$month>
<input type=hidden name=year value=$year>
<input type=hidden name=stickyduedate value=$stickyduedate>
<input type=hidden name=branch value=$branch>
<input type=hidden name=printer value=$printer>
$responsesform
<input type=hidden name=answer value=N>
<input type=submit value=No>
</form>
</td>
</tr>
</table>
</td></tr>
</table>
</td></tr>
</table>
EOF
return;
}
if ($message) {
print << "EOF";
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Message</font></th></tr>
<tr><td>$message</td></tr>
</table>
<p>
EOF
}
}
}
my $issueid=$query->param('issueid');
($issueid) || ($issueid=int(rand()*1000000000));
my $flag='';
my $flagtext='';
my $flaginfotext='';
foreach $flag (sort keys %$flags) {
if ($flags->{$flag}->{'noissues'}) {
$flagtext.="<font color=red>$flag</font> ";
} else {
$flagtext.="$flag ";
}
$flags->{$flag}->{'message'}=~s/\n/<br>/g;
if ($flags->{$flag}->{'noissues'}) {
$flaginfotext.="<tr><td bgcolor=red valign=top><font color=black><b>$flag</b></font></td><td bgcolor=red><font color=black><b>$flags->{$flag}->{'message'}</b></font></td></tr>\n";
} else {
$flaginfotext.="<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
}
}
if ($flaginfotext) {
$flaginfotext="<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd><tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage colspan=2><font color=black>Patron Flags</font></th></tr>$flaginfotext</table>\n";
}
$env{'nottodaysissues'}=1;
my ($borrowerissues) = currentissues(\%env, $borrower);
$env{'nottodaysissues'}=0;
$env{'todaysissues'}=1;
my ($today) = currentissues(\%env, $borrower);
$env{'todaysissues'}=0;
my $previssues='';
my @datearr = localtime(time());
my $todaysdate = (1900+$datearr[5]).sprintf ("%0.2d", ($datearr[4]+1)).sprintf ("%0.2d", $datearr[3]);
my $color='';
foreach (sort keys %$borrowerissues) {
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
my $bookissue=$borrowerissues->{$_};
my $bgcolor='';
my $datedue=$bookissue->{'date_due'};
my $dd=$bookissue->{'date_due'};
#convert to nz style dates
#this should be set with some kinda config variable
my @tempdate=split(/-/,$dd);
$dd="$tempdate[2]/$tempdate[1]/$tempdate[0]";
#####
$datedue=~s/-//g;
if ($datedue < $todaysdate) {
$dd="<font color=red>$dd</font>\n";
}
$previssues.="<tr><td bgcolor=$color align=center>$dd</td><td bgcolor=$color align=center><a href=/cgi-bin/koha/detail.pl?bib=$bookissue->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$bookissue->{'barcode'}</a></td><td bgcolor=$color>$bookissue->{'title'}</td><td bgcolor=$color>$bookissue->{'author'}</td><td bgcolor=$color align=center>$bookissue->{'dewey'} $bookissue->{'subclass'}</td></tr>\n";
}
my $todaysissues='';
$color='';
foreach (sort keys %$today) {
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
my $bookissue=$today->{$_};
$todaysissues.="<tr><td bgcolor=$color align=center>$bookissue->{'date_due'}</td><td bgcolor=$color align=center><a href=/cgi-bin/koha/detail.pl?bib=$bookissue->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$bookissue->{'barcode'}</a></td><td bgcolor=$color>$bookissue->{'title'}</td><td bgcolor=$color>$bookissue->{'author'}</td><td bgcolor=$color align=center>$bookissue->{'dewey'} $bookissue->{'subclass'}</td></tr>\n";
}
for ($i=1; $i<32; $i++) {
my $selected='';
if (($query->param('stickyduedate')) && ($day==$i)) {
$selected='selected';
}
$dayoptions.="<option value=$i $selected>$i";
}
my $counter=1;
foreach (('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) {
my $selected='';
if (($query->param('stickyduedate')) && ($month==$counter)) {
$selected='selected';
}
$monthoptions.="<option value=$counter $selected>$_";
$counter++;
}
for ($i=$datearr[5]+1900; $i<$datearr[5]+1905; $i++) {
my $selected='';
if (($query->param('stickyduedate')) && ($year==$i)) {
$selected='selected';
}
$yearoptions.="<option value=$i $selected>$i";
}
my $selected='';
($query->param('stickyduedate')) && ($selected='checked');
my ($borrower, $flags) = getpatroninformation(\%env,$borrnumber,0);
my ($patrontable, $flaginfotable) = patrontable($borrower);
print << "EOF";
$patrontable
$flaginfotable
<br> <a href=cirulationold.pl?selectnewbranchprinter=1><b>Branch:</b></a> $branch,
<a href=cirulationold.pl?selectnewbranchprinter=1><b>Printer:</b></a> $printer<P>
<p>
<form method=get>
<table border=1 cellpadding=5>
<tr>
<td align=center valign=top>
<table border=0 cellspacing=0 cellpadding=5>
<tr><th align=center background=$backgroundimage><font color=black><b>Enter Book Barcode</b></font></th></tr>
<tr><td align=center>
<table border=0>
<tr><td>Item Barcode:</td><td><input name=barcode size=10></td><td><input type=submit value=Issue></tr>
<tr><td colspan=3 align=center>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td>
<select name=day><option value=0>Day$dayoptions</select>
</td><td>
<select name=month><option value=0>Month$monthoptions</select>
</td><td>
<select name=year><option value=0>Year$yearoptions</select>
</td></tr>
</table>
<input type=checkbox name=stickyduedate $selected> Sticky Due Date
</td></tr>
</table>
<input type=hidden name=module value=issues>
<input type=hidden name=borrnumber value=$borrnumber>
<input type=hidden name=branch value=$branch>
<input type=hidden name=printer value=$printer>
EOF
;
if ($flags->{'CHARGES'}){
print "<input type=hidden name=charges value=yes>";
}
my $amountold=$flags->{'CHARGES'}->{'message'};
my @temp=split(/\$/,$amountold);
$amountold=$temp[1];
print "<input type=hidden name=oldamount value=$amountold>";
print <<EOF
</form>
</td>
</tr>
</table>
</table>
<p clear=all>
<!-- issues tables-->
<table border=1 cellpadding=5 cellspacing=0 width=90%>
<td colspan=2 align=center>
<table border=0 cellpadding=5 cellspacing=0 width=100% >
<tr><th colspan=5 bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black><b>Issues Today</b></font></th></tr>
<tr><th>Due Date</th><th>Bar Code</th><th>Title</th><th>Author</th><th>Class</th></tr>
$todaysissues
</table>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<table border=0 cellpadding=5 cellspacing=0 width=100%>
<tr><th colspan=5 bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black><b>Previous Issues</b></font></th></tr>
<tr><th>Due Date</th><th>Bar Code</th><th>Title</th><th>Author</th><th>Class</th></tr>
$previssues
</table>
</td>
</tr>
</table>
</td></tr></table>
<p>
EOF
} else {
if (my $findborrower=$query->param('findborrower')) {
my ($borrowers, $flags) = findborrower(\%env, $findborrower);
my @borrowers=@$borrowers;
if ($#borrowers == -1) {
$query->param('findborrower', '');
print "No borrower matched '$findborrower'<p>\n";
issues(1);
return;
}
if ($#borrowers == 0) {
$query->param('borrnumber', $borrowers[0]->{'borrowernumber'});
$query->param('barcode',' ');
issues(1);
return;
} else {
print "<form method=get>\n";
print "<input type=hidden name=module value=issues>\n";
print "<input type=hidden name=branch value=$branch>\n";
print "<input type=hidden name=printer value=$printer>\n";
print "<input type=hidden name=barcode value=\" \">\n";
print "<table border=0 cellspacing=0 cellpadding=5 bgcolor=#dddddd>";
print "<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black><b>Select a borrower</b></font></th></tr>\n";
print "<tr><td align=center>\n";
print "<select name=borrnumber size=7>\n";
foreach (sort {$a->{'surname'}.$a->{'firstname'} cmp $b->{'surname'}.$b->{'firstname'}} @$borrowers) {
print "<option value=$_->{'borrowernumber'}>$_->{'surname'}, $_->{'firstname'} ($_->{'cardnumber'})\n";
}
print "</select><br>";
print "<input type=submit>\n";
print "</td></tr></table>\n";
print "</td></tr></table>\n";
}
} else {
print << "EOF";
<form method=get>
<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black><b>Enter borrower card number<br> or partial last name</b></font></td></tr>
<tr><td><input name=findborrower></td></tr>
</table>
<input type=hidden name=module value=issues>
<input type=hidden name=branch value=$branch>
<input type=hidden name=printer value=$printer>
<input type=hidden name=barcode value=" ">
</form>
</td></tr></table>
EOF
}
}
}
sub patrontable {
my ($borrower) = @_;
my $flags=$borrower->{'flags'};
my $flagtext='';
my $flaginfotable='';
my $flaginfotext='';
my $flag;
foreach $flag (sort keys %$flags) {
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
if ($flags->{$flag}->{'noissues'}) {
$flagtext.="<font color=red>$flag</font> ";
} else {
$flagtext.="$flag ";
}
$flags->{$flag}->{'message'}=~s/\n/<br>/g;
if ($flags->{$flag}->{'noissues'}) {
if ($flag eq 'CHARGES') {
$flaginfotext.="<tr><td valign=top><font color=red>$flag</font></td><td bgcolor=$color><b>$flags->{$flag}->{'message'}</b> <a href=/cgi-bin/koha/pay.pl?bornum=$borrower->{'borrowernumber'} onClick=\"openWindow(this, 'Payment', 480,640)\">Payment</a></td></tr>\n";
} else {
$flaginfotext.="<tr><td valign=top><font color=red>$flag</font></td><td bgcolor=$color>$flags->{$flag}->{'message'}</td></tr>\n";
}
} else {
if ($flag eq 'CHARGES') {
$flaginfotext.="<tr><td valign=top>$flag</td><td> $flags->{$flag}->{'message'} <a href=/cgi-bin/koha/pay.pl?bornum=$borrower->{'borrowernumber'} onClick=\"openWindow(this, 'Payment', 480,640)\">Payment</a></td></tr>\n";
} elsif ($flag eq 'WAITING') {
my $itemswaiting='';
my $items=$flags->{$flag}->{'itemlist'};
foreach $item (@$items) {
my ($iteminformation) = getiteminformation($env, $item->{'itemnumber'}, 0);
$itemswaiting.="<a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$iteminformation->{'barcode'}</a> $iteminformation->{'title'} ($branches->{$iteminformation->{'holdingbranch'}}->{'branchname'})<br>\n";
}
$flaginfotext.="<tr><td valign=top>$flag</td><td>$itemswaiting</td></tr>\n";
} elsif ($flag eq 'ODUES') {
my $items=$flags->{$flag}->{'itemlist'};
my $itemswaiting="<table border=0 cellspacing=0 cellpadding=2>\n";
my $currentcolor=$color;
{
my $color=$currentcolor;
foreach $item (@$items) {
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
my ($iteminformation) = getiteminformation($env, $item->{'itemnumber'}, 0);
$itemswaiting.="<tr><td><font color=red>$iteminformation->{'date_due'}</font></td><td bgcolor=$color><a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$iteminformation->{'barcode'}</a></td><td>$iteminformation->{'title'}</td></tr>\n";
}
}
$itemswaiting.="</table>\n";
if ($query->param('module') ne 'returns'){
$flaginfotext.="<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}, See below</td></tr>\n";
} else {
$flaginfotext.="<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
}
} else {
$flaginfotext.="<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
}
}
}
($flaginfotext) && ($flaginfotext="<tr><td bgcolor=$headerbackgroundcolor background=$backgroundimage colspan=2><b>Flags</b></td></tr>$flaginfotext\n");
$flaginfotext.="</table>";
my $patrontable= << "EOF";
<table border=1
cellpadding=5 cellspacing=0 align=right>
<tr><td bgcolor=$headerbackgroundcolor background=$backgroundimage colspan=2><font color=black><b>Patron Information</b></font></td></tr>
<tr><td colspan=2>
<a href=/cgi-bin/koha/moremember.pl?bornum=$borrower->{'borrowernumber'} onClick="openWindow(this,'Member', 480, 640)">$borrower->{'cardnumber'}</a> $borrower->{'surname'}, $borrower->{'title'} $borrower->{'firstname'}<br>
EOF
if ($query->param('module') ne 'returns'){
$patrontable.="$borrower->{'streetaddress'} $borrower->{'city'} Cat:
$borrower->{'categorycode'} ";
}
$patrontable.=<< "EOF";
</td></tr>
EOF
return($patrontable, $flaginfotext);
}
--- NEW FILE ---
#!/usr/bin/perl
#written 11/3/2002 by Finlay
#script to execute returns of books
use strict;
use CGI;
use C4::Circulation::Circ2;
use C4::Search;
use C4::Output;
my %env;
my $headerbackgroundcolor='#99cc33';
my $circbackgroundcolor='#ffffcc';
my $circbackgroundcolor='white';
my $linecolor1='#ffffcc';
my $linecolor2='white';
my $backgroundimage="/images/background-mem.gif";
my $query=new CGI;
my $branches = getbranches();
my $branch = $query->param("branch");
my $printer = $query->param("printer");
($branch) || ($branch=$query->cookie('branch')) ;
($printer) || ($printer=$query->cookie('printer')) ;
#
# Some code to handle the error if there is no branch or printer setting.....
#
$env{'branchcode'}=$branch;
$env{'printer'}=$printer;
$env{'queue'}=$printer;
# Set up the item stack ....
my $ritext = '';
my %returneditems;
my %riduedate;
my %riborrowernumber;
foreach ($query->param) {
(next) unless (/ri-(\d*)/);
my $counter=$1;
(next) if ($counter>20);
my $barcode=$query->param("ri-$counter");
my $duedate=$query->param("dd-$counter");
my $borrowernumber=$query->param("bn-$counter");
$counter++;
# decode cuecat
$barcode = cuecatbarcodedecode($barcode);
$returneditems{$counter}=$barcode;
$riduedate{$counter}=$duedate;
$riborrowernumber{$counter}=$borrowernumber;
$ritext.="<input type=hidden name=ri-$counter value=$barcode>\n";
$ritext.="<input type=hidden name=dd-$counter value=$duedate>\n";
$ritext.="<input type=hidden name=bn-$counter value=$borrowernumber>\n";
}
my $iteminformation;
my $borrower;
my $returned = 0;
my $messages;
# actually return book (SQL CALL) and prepare item table.....
if (my $barcode = $query->param('barcode')) {
# decode cuecat
$barcode = cuecatbarcodedecode($barcode);
($returned, $messages, $iteminformation, $borrower) = returnbook2(\%env, $barcode);
if ($returned) {
$returneditems{0} = $barcode;
$riborrowernumber{0} = $borrower->{'borrowernumber'};
$riduedate{0} = $iteminformation->{'date_due'};
$ritext.= "<input type=hidden name=ri-0 value=$barcode>\n";
$ritext.= "<input type=hidden name=dd-0 value=$iteminformation->{'date_due'}>\n";
$ritext.= "<input type=hidden name=bn-0 value=$borrower->{'borrowernumber'}>\n";
}
}
##################################################################################
# HTML code....
# title....
my $title = <<"EOF";
<p align=right>
<FONT SIZE=2 face="arial, helvetica">
<a href=circulationold.pl?module=issues&branch=$branch&printer=$printer&print>Next Borrower</a> ||
<a href=returns.pl>Returns</a> ||
<a href=branchtransfers.pl>Transfers</a></font></p>
<FONT SIZE=6><em>Circulation: Returns</em></FONT>
EOF
my $itemtable;
if ($iteminformation) {
$itemtable = <<"EOF";
<table border=1 cellpadding=5 cellspacing=0>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage>
<font color=black>Returned Item Information</font></th></tr>
<tr><td>
Title: $iteminformation->{'title'}<br>
<!--Hlt decided they dont want these showing, uncoment the html to make it work
Author: $iteminformation->{'author'}<br>
Barcode: <a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}
&type=intra onClick="openWindow(this, 'Item', 480, 640)">$iteminformation->{'barcode'}</a><br>
Date Due: $iteminformation->{'date_due'}-->
</td></tr>
</table>
<p>
EOF
}
# Barcode entry box, with hidden inputs attached....
my $barcodeentrytext= << "EOF";
<form method=post action=/cgi-bin/koha/circ/returns.pl>
<table border=1 cellpadding=5 cellspacing=0 align=left>
<tr><td colspan=2 bgcolor=$headerbackgroundcolor align=center background=$backgroundimage>
<font color=black><b>Enter Book Barcode</b></font></td></tr>
<tr><td>Item Barcode:</td><td><input name=barcode size=10></td></tr>
</table>
<input type=hidden name=branch value=$branch>
<input type=hidden name=printer value=$printer>
$ritext
</form>
EOF
# collect the messages and put into message table....
my $messagetable;
if ($messages) {
my $messagetext='';
foreach (@$messages) {
$messagetext .= "$_<br>";
}
$messagetext = substr($messagetext, 0, -4);
if ($messagetext) {
$messagetable = << "EOF";
<table border=1 cellpadding=5 cellspacing=0>
<tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Messages</font></th></tr>
<tr><td>
$messagetext
</td></tr>
</table>
<p>
EOF
}
}
# patrontable ....
my $borrowertable;
if ($borrower) {
my $patrontable = << "EOF";
<table border=1 cellpadding=5 cellspacing=0 align=right>
<tr><td colspan=2 bgcolor=$headerbackgroundcolor background=$backgroundimage>
<font color=black><b>Patron Information</b></font></td></tr>
<tr><td colspan=2>
<a href=/cgi-bin/koha/moremember.pl?bornum=$borrower->{'borrowernumber'}
onClick="openWindow(this,'Member', 480, 640)">$borrower->{'cardnumber'}</a>
$borrower->{'surname'}, $borrower->{'title'} $borrower->{'firstname'}<br>
</td></tr></table>
EOF
my $flags = $borrower->{'flags'};
my $flaginfotext='';
my $flag;
my $color = '';
foreach $flag (sort keys %$flags) {
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
$flags->{$flag}->{'message'}=~s/\n/<br>/g;
if ($flags->{$flag}->{'noissues'}) {
if ($flag eq 'CHARGES') {
$flaginfotext.= <<"EOF";
<tr><td valign=top><font color=red>$flag</font></td>
<td bgcolor=$color><b>$flags->{$flag}->{'message'}</b>
<a href=/cgi-bin/koha/pay.pl?bornum=$borrower->{'borrowernumber'}
onClick=\"openWindow(this, 'Payment', 480,640)\">Payment</a></td></tr>
EOF
} else {
$flaginfotext.= <<"EOF";
<tr><td valign=top><font color=red>$flag</font></td>
<td bgcolor=$color>$flags->{$flag}->{'message'}</td></tr>
EOF
}
} else {
if ($flag eq 'CHARGES') {
$flaginfotext .= << "EOF";
<tr><td valign=top>$flag</td>
<td> $flags->{$flag}->{'message'} <a href=/cgi-bin/koha/pay.pl?bornum=$borrower->{'borrowernumber'}
onClick=\"openWindow(this, 'Payment', 480,640)\">Payment</a></td></tr>
EOF
} elsif ($flag eq 'WAITING') {
my $itemswaiting='';
my $items = $flags->{$flag}->{'itemlist'};
foreach my $item (@$items) {
my ($iteminformation) = getiteminformation(\%env, $item->{'itemnumber'}, 0);
$itemswaiting .= <<"EOF";
<a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra
onClick=\"openWindow(this, 'Item', 480, 640)\">$iteminformation->{'barcode'}</a>
$iteminformation->{'title'} ($branches->{$iteminformation->{'holdingbranch'}}->{'branchname'})<br>
EOF
}
$flaginfotext.="<tr><td valign=top>$flag</td><td>$itemswaiting</td></tr>\n";
} elsif ($flag eq 'ODUES') {
my $items = $flags->{$flag}->{'itemlist'};
$flaginfotext .= <<"EOF";
<tr><td bgcolor=$color><font color=red>$flag</font></td>
<td bgcolor=$color>Patron has Overdue books</td></tr>
EOF
} else {
$flaginfotext .= "<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
}
}
}
if ($flaginfotext) {
$flaginfotext = << "EOF";
<table border=1 cellpadding=5 cellspacing=0> <tr><td bgcolor=$headerbackgroundcolor background=$backgroundimage colspan=2><b>Flags</b></td></tr>
$flaginfotext
</table>
EOF
}
$borrowertable = << "EOF";
<table border=0 cellpadding=5>
<tr>
<td valign=top>$patrontable</td>
<td valign=top>$flaginfotext</td>
</tr>
</table>
EOF
}
# the returned items.....
my $returneditemstable = << "EOF";
<br><p>
<table border=1 cellpadding=5 cellspacing=0 align=left>
<tr><th colspan=6 bgcolor=$headerbackgroundcolor background=$backgroundimage>
<font color=black>Returned Items</font></th></tr>
<tr><th>Due Date</th><th>Bar Code</th><th>Title</th><th>Author</th><th>Type</th><th>Borrower</th></tr>
EOF
my $color='';
#set up so only the lat 8 returned items display (make for faster loading pages)
my $count=0;
foreach (sort {$a <=> $b} keys %returneditems) {
if ($count < 8) {
($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
my $barcode = $returneditems{$_};
my $duedate = $riduedate{$_};
my @datearr = localtime(time());
###
# convert to nz date format
my @tempdate = split(/-/,$duedate);
$duedate = "$tempdate[2]/$tempdate[1]/$tempdate[0]";
####
my $todaysdate
= (1900+$datearr[5]).'-'.sprintf ("%0.2d", ($datearr[4]+1)).'-'.sprintf ("%0.2d", $datearr[3]);
my $overduetext = "$duedate";
($overduetext="<font color=red>$duedate</font>") if ($duedate lt $todaysdate);
($duedate) || ($overduetext = "<img src=/images/blackdot.gif>");
my $borrowernumber = $riborrowernumber{$_};
my ($borrower) = getpatroninformation(\%env,$borrowernumber,0);
my ($iteminformation) = getiteminformation(\%env, 0, $barcode);;
$returneditemstable .= << "EOF";
<tr><td bgcolor=$color>$overduetext</td>
<td bgcolor=$color align=center>
<a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$barcode</a></td>
<td bgcolor=$color>$iteminformation->{'title'}</td>
<td bgcolor=$color>$iteminformation->{'author'}</td>
<td bgcolor=$color align=center>$iteminformation->{'itemtype'}</td>
<td bgcolor=$color>
<a href=/cgi-bin/koha/moremember.pl?bornum=$borrower->{'borrowernumber'} onClick=\"openWindow(this,'Member', 480, 640)\">$borrower->{'cardnumber'}</a> $borrower->{'firstname'} $borrower->{'surname'}</td></tr>
EOF
} else {
last;
}
$count++;
}
$returneditemstable .= "</table>\n";
# actually print the page!
print $query->header();
print startpage();
print startmenu('circulation');
print $title;
# my $flags = $borrower->{'flags'};
# foreach my $key (keys %$flags) {
# print "$key : $flags->{$key} <br> ";
# }
print $barcodeentrytext;
print $messagetable;
if ($returned) {
print $itemtable;
print $borrowertable;
}
(print $returneditemstable) if (%returneditems);
print endmenu('circulation');
print endpage();
sub cuecatbarcodedecode {
my ($barcode) = @_;
chomp($barcode);
my @fields = split(/\./,$barcode);
my @results = map(decode($_), @fields[1..$#fields]);
if ($#results == 2){
return $results[2];
} else {
return $barcode;
}
}
Index: branchtransfers.pl
===================================================================
RCS file: /cvsroot/koha/koha/circ/branchtransfers.pl,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** branchtransfers.pl 14 Mar 2002 01:51:16 -0000 1.3
--- branchtransfers.pl 2 May 2002 00:06:28 -0000 1.4
***************
*** 7,13 ****
use CGI;
use C4::Circulation::Circ2;
- use C4::Search;
use C4::Output;
my %env;
--- 7,14 ----
use CGI;
use C4::Circulation::Circ2;
use C4::Output;
+ ###############################################
+ # constants
my %env;
***************
*** 19,42 ****
my $backgroundimage="/images/background-mem.gif";
my $query=new CGI;
- my $branches=getbranches(\%env);
my $tobranchcd=$query->param('tobranchcd');
my $frbranchcd='';
- $env{'tobranchcd'}=$tobranchcd;
-
my $tobranchoptions;
! foreach (keys %$branches) {
! (next) unless ($_);
! (next) if (/^TR$/);
! my $selected='';
! ($selected='selected') if ($_ eq $tobranchcd);
! $tobranchoptions.="<option value=$_ $selected>$branches->{$_}->{'branchname'}\n";
}
# collect the stack of books already transfered so they can printed...
- my @messages;
my %transfereditems;
my $ritext = '';
--- 20,44 ----
my $backgroundimage="/images/background-mem.gif";
+ my $branches=getbranches();
+
+ ###############################################
+ # Getting state
+
my $query=new CGI;
my $tobranchcd=$query->param('tobranchcd');
my $frbranchcd='';
+ # set up the branchselect options....
my $tobranchoptions;
! foreach my $br (keys %$branches) {
! (next) if $branches->{$br}->{'PE'};
! my $selected='';
! ($selected='selected') if ($br eq $tobranchcd);
! $tobranchoptions.="<option value=$br $selected>$branches->{$br}->{'branchname'}\n";
}
# collect the stack of books already transfered so they can printed...
my %transfereditems;
my $ritext = '';
***************
*** 58,94 ****
}
#if the barcode has been entered action that and write a message and onto the top of the stack...
my $iteminformation;
-
- my $todaysdate;
if (my $barcode=$query->param('barcode')) {
! my $iteminformation = getiteminformation(\%env,0, $barcode);
! my $fail=0;
! if (not $iteminformation) {
! $fail=1;
! @messages = ("There is no book with barcode: $barcode ", @messages);
}
! $frbranchcd = $iteminformation->{'holdingbranch'};
! %env->{'frbranchcd'} = $frbranchcd;
! if ($frbranchcd eq $tobranchcd) {
! $fail=1;
! @messages = ("You can't transfer the book to the branch it is already at!", @messages);
! }
! # should add some more tests ... like is the book already out, maybe it cant be moved....
! if (not $fail) {
! my ($transfered, $message) = transferbook(\%env, $iteminformation, $barcode);
! if (not $transfered) {@messages = ($message, @messages);}
! else {
! $ritext.="<input type=hidden name=bc-0 value=$barcode>\n";
! $ritext.="<input type=hidden name=fb-0 value=$frbranchcd>\n";
! $ritext.="<input type=hidden name=tb-0 value=$tobranchcd>\n";
! $transfereditems{0}=$barcode;
! $frbranchcds{0}=$frbranchcd;
! $tobranchcds{0}=$tobranchcd;
! @messages = ("Book: $barcode has been transfered", @messages);
! }
}
}
my $entrytext= << "EOF";
<form method=post action=/cgi-bin/koha/circ/branchtransfers.pl>
--- 60,89 ----
}
+ # Warnings etc that get displayed at top of next page....
+ my @messages;
+
#if the barcode has been entered action that and write a message and onto the top of the stack...
my $iteminformation;
if (my $barcode=$query->param('barcode')) {
! my $iteminformation = getiteminformation(\%env,0 ,$barcode);
! my ($transfered, $message, $iteminformation) = transferbook($tobranchcd, $barcode);
! if (not $transfered) {
! push(@messages, $message);
}
! else {
! my $frbranchcd = $iteminformation->{'holdingbranch'};
! $ritext.="<input type=hidden name=bc-0 value=$barcode>\n";
! $ritext.="<input type=hidden name=fb-0 value=$frbranchcd>\n";
! $ritext.="<input type=hidden name=tb-0 value=$tobranchcd>\n";
! $transfereditems{0}=$barcode;
! $frbranchcds{0}=$frbranchcd;
! $tobranchcds{0}=$tobranchcd;
! push(@messages, "Book: $barcode has been transfered");
}
}
+ #################################################################################
+ # Html code....
+
my $entrytext= << "EOF";
<form method=post action=/cgi-bin/koha/circ/branchtransfers.pl>
***************
*** 115,137 ****
my $messagetext='';
foreach (@messages) {
! $messagetext.="$_<p>\n";
}
$messagetable = << "EOF";
! <table border=0 cellpadding=5 cellspacing=0 bgcolor='#dddddd'>
! <tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font color=black>Messages</font></th></tr>
<tr><td> $messagetext </td></tr></table>
EOF
}
!
print $query->header;
print startpage;
print startmenu('circulation');
! print "<FONT SIZE=6><em>Circulation: Transfers</em></FONT><br>";
!
!
! print $messagetable if (@messages);
print $entrytext;
--- 110,138 ----
my $messagetext='';
foreach (@messages) {
! $messagetext.="$_<br>";
}
+ $messagetext = substr($messagetext, 0, -4);
$messagetable = << "EOF";
! <table border=1 cellpadding=5 cellspacing=0 bgcolor='#dddddd'>
! <tr><th bgcolor=$headerbackgroundcolor background=$backgroundimage><font>Messages</font></th></tr>
<tr><td> $messagetext </td></tr></table>
EOF
}
! #######################################################################################
! # Make the page .....
print $query->header;
print startpage;
print startmenu('circulation');
! print <<"EOF";
! <p align=right>
! <FONT SIZE=2 face="arial, helvetica">
! <a href=circulationold.pl?module=issues>Next Borrower</a> ||
! <a href=returns.pl>Returns</a> ||
! <a href=branchtransfers.pl>Transfers</a></font></p><FONT SIZE=6><em>Circulation: Transfers</em></FONT><br>
! EOF
+ print $messagetable;
print $entrytext;
Index: circulation.pl
===================================================================
RCS file: /cvsroot/koha/koha/circ/circulation.pl,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -r1.23 -r1.24
*** circulation.pl 14 Mar 2002 01:50:17 -0000 1.23
--- circulation.pl 2 May 2002 00:06:28 -0000 1.24
***************
*** 1,4 ****
--- 1,5 ----
#!/usr/bin/perl
+ use strict;
use CGI qw/:standard/;
use C4::Circulation::Circ2;
***************
*** 8,12 ****
[...1030 lines suppressed...]
! <table border=1 cellpadding=5 cellspacing=0>
! <tr><td colspan=2 bgcolor=$headerbackgroundcolor align=center background=$backgroundimage>
! <font color=black><b>Please Set Branch and Printer</b></font></td></tr>
! <tr><td>
! $branchform
! </td>
! <td>
! $printerform
! </td></tr>
! </table>
! <input type="submit" value="Change Settings" type="changesettings">
! </form>
!
EOF
}
+
+ print endmenu('circulation');
+ print endpage();
+
1
0