Refined Returns module.
Added ability to select branch and printer. Fixed charges for rental items.
This commit is contained in:
parent
eaa9677292
commit
d389b68e6d
2 changed files with 295 additions and 55 deletions
|
@ -23,7 +23,7 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
|
|||
$VERSION = 0.01;
|
||||
|
||||
@ISA = qw(Exporter);
|
||||
@EXPORT = qw(&getpatroninformation ¤tissues &getiteminformation &findborrower &issuebook &returnbook);
|
||||
@EXPORT = qw(&getbranches &getprinters &getpatroninformation ¤tissues &getiteminformation &findborrower &issuebook &returnbook);
|
||||
%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
|
||||
|
||||
# your exported package globals go here,
|
||||
|
@ -80,7 +80,7 @@ sub getprinters {
|
|||
my $sth=$dbh->prepare("select * from printers");
|
||||
$sth->execute;
|
||||
while (my $printer=$sth->fetchrow_hashref) {
|
||||
$printers{$printer->{'printername'}}=$printer;
|
||||
$printers{$printer->{'printqueue'}}=$printer;
|
||||
}
|
||||
return (\%printers);
|
||||
}
|
||||
|
@ -184,6 +184,11 @@ sub issuebook {
|
|||
$rejected="Patron's card has been reported lost.";
|
||||
last SWITCH;
|
||||
}
|
||||
my $amount = checkaccount($env,$patroninformation->{'borrowernumber'}, $dbh);
|
||||
if ($amount>5) {
|
||||
$rejected=sprintf "Patron owes \$%.02f.", $amount;
|
||||
last SWITCH;
|
||||
}
|
||||
if ($iteminformation->{'notforloan'} == 1) {
|
||||
$rejected="Item not for loan.";
|
||||
last SWITCH;
|
||||
|
@ -214,6 +219,12 @@ sub issuebook {
|
|||
$defaultanswer='Y';
|
||||
last SWITCH;
|
||||
} elsif ($responses->{4} eq 'Y') {
|
||||
my $charge=calc_charges($env, $dbh, $iteminformation->{'itemnumber'}, $patroninformation->{'borrowernumber'});
|
||||
if ($charge > 0) {
|
||||
createcharge($env, $dbh, $iteminformation->{'itemnumber'}, $patroninformation->{'borrowernumber'}, $charge);
|
||||
$iteminformation->{'charge'}=$charge;
|
||||
}
|
||||
&UpdateStats($env,$env->{'branchcode'},'renew',$charge,'',$iteminformation->{'itemnumber'},$iteminformation->{'itemtype'});
|
||||
renewbook($env,$dbh, $patroninformation->{'borrowernumber'}, $iteminformation->{'itemnumber'});
|
||||
$noissue=1;
|
||||
} else {
|
||||
|
@ -289,9 +300,19 @@ sub issuebook {
|
|||
$sth=$dbh->prepare("update items set issues=$iteminformation->{'issues'} where itemnumber=$iteminformation->{'itemnumber'}");
|
||||
$sth->execute;
|
||||
$sth->finish;
|
||||
my $charge=calc_charges($env, $dbh, $iteminformation->{'itemnumber'}, $patroninformation->{'borrowernumber'});
|
||||
if ($charge > 0) {
|
||||
createcharge($env, $dbh, $iteminformation->{'itemnumber'}, $patroninformation->{'borrowernumber'}, $charge);
|
||||
$iteminformation->{'charge'}=$charge;
|
||||
}
|
||||
&UpdateStats($env,$env->{'branchcode'},'issue',$charge,'',$iteminformation->{'itemnumber'},$iteminformation->{'itemtype'});
|
||||
}
|
||||
my $message='';
|
||||
if ($iteminformation->{'charge'}) {
|
||||
$message=sprintf "Rental charge of \$%.02f applies.", $iteminformation->{'charge'};
|
||||
}
|
||||
$dbh->disconnect;
|
||||
return ($iteminformation, $dateduef, $rejected, $question, $questionnumber, $defaultanswer);
|
||||
return ($iteminformation, $dateduef, $rejected, $question, $questionnumber, $defaultanswer, $message);
|
||||
}
|
||||
|
||||
|
||||
|
@ -384,7 +405,7 @@ sub patronflags {
|
|||
my $amount = checkaccount($env,$patroninformation->{'borrowernumber'}, $dbh);
|
||||
if ($amount>0) {
|
||||
my %flaginfo;
|
||||
$flaginfo{'message'}='Patron owes $amount';
|
||||
$flaginfo{'message'}=sprintf "Patron owes \$%.02f", $amount;
|
||||
if ($amount>5) {
|
||||
$flaginfo{'noissues'}=1;
|
||||
}
|
||||
|
@ -404,7 +425,7 @@ sub patronflags {
|
|||
}
|
||||
if ($patroninformation->{'borrowernotes'}) {
|
||||
my %flaginfo;
|
||||
$flaginfo{'message'}="Note: $patroninformation->{'borrowernotes'}";
|
||||
$flaginfo{'message'}="$patroninformation->{'borrowernotes'}";
|
||||
$flags{'NOTES'}=\%flaginfo;
|
||||
}
|
||||
my ($odues, $itemsoverdue) = checkoverdues($env,$patroninformation->{'borrowernumber'},$dbh);
|
||||
|
@ -628,6 +649,7 @@ sub renewbook {
|
|||
# Stolen from Renewals.pm
|
||||
# mark book as renewed
|
||||
my ($env,$dbh,$bornum,$itemno,$datedue)=@_;
|
||||
$datedue=$env->{'datedue'};
|
||||
if ($datedue eq "" ) {
|
||||
my $loanlength=21;
|
||||
my $query= "Select * from biblioitems,items,itemtypes
|
||||
|
@ -665,5 +687,58 @@ sub renewbook {
|
|||
return($odatedue);
|
||||
}
|
||||
|
||||
sub calc_charges {
|
||||
# Stolen from Issues.pm
|
||||
# calculate charges due
|
||||
my ($env, $dbh, $itemno, $bornum)=@_;
|
||||
my $charge=0;
|
||||
my $item_type;
|
||||
my $q1 = "select itemtypes.itemtype,rentalcharge from items,biblioitems,itemtypes where (items.itemnumber ='$itemno') and (biblioitems.biblioitemnumber = items.biblioitemnumber) and (biblioitems.itemtype = itemtypes.itemtype)";
|
||||
my $sth1= $dbh->prepare($q1);
|
||||
$sth1->execute;
|
||||
if (my $data1=$sth1->fetchrow_hashref) {
|
||||
$item_type = $data1->{'itemtype'};
|
||||
$charge = $data1->{'rentalcharge'};
|
||||
my $q2 = "select rentaldiscount from borrowers,categoryitem
|
||||
where (borrowers.borrowernumber = '$bornum')
|
||||
and (borrowers.categorycode = categoryitem.categorycode)
|
||||
and (categoryitem.itemtype = '$item_type')";
|
||||
my $sth2=$dbh->prepare($q2);
|
||||
$sth2->execute;
|
||||
if (my $data2=$sth2->fetchrow_hashref) {
|
||||
my $discount = $data2->{'rentaldiscount'};
|
||||
$charge = ($charge *(100 - $discount)) / 100;
|
||||
}
|
||||
$sth2->{'finish'};
|
||||
}
|
||||
$sth1->finish;
|
||||
return ($charge);
|
||||
}
|
||||
|
||||
sub createcharge {
|
||||
#Stolen from Issues.pm
|
||||
my ($env,$dbh,$itemno,$bornum,$charge) = @_;
|
||||
my $nextaccntno = getnextacctno($env,$bornum,$dbh);
|
||||
my $query = "insert into accountlines (borrowernumber,itemnumber,accountno,date,amount, description,accounttype,amountoutstanding) values ($bornum,$itemno,$nextaccntno,now(),$charge,'Rental','Rent',$charge)";
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute;
|
||||
$sth->finish;
|
||||
}
|
||||
|
||||
|
||||
sub getnextacctno {
|
||||
# Stolen from Accounts.pm
|
||||
my ($env,$bornumber,$dbh)=@_;
|
||||
my $nextaccntno = 1;
|
||||
my $query = "select * from accountlines where (borrowernumber = '$bornumber') order by accountno desc";
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute;
|
||||
if (my $accdata=$sth->fetchrow_hashref){
|
||||
$nextaccntno = $accdata->{'accountno'} + 1;
|
||||
}
|
||||
$sth->finish;
|
||||
return($nextaccntno);
|
||||
}
|
||||
|
||||
|
||||
END { } # module clean-up code here (global destructor)
|
||||
|
|
|
@ -10,55 +10,157 @@ my %env;
|
|||
my $query=new CGI;
|
||||
print $query->header;
|
||||
print startpage();
|
||||
print startmenu('catalogue');
|
||||
print startmenu('circulation');
|
||||
my $branches=getbranches(\%env);
|
||||
my $printers=getprinters(\%env);
|
||||
my $branch=$query->param('branch');
|
||||
my $printer=$query->param('printer');
|
||||
$env{'branchcode'}=$branch;
|
||||
$env{'printer'}=$printer;
|
||||
|
||||
my $branchname='';
|
||||
my $printername='';
|
||||
if ($branch && $printer) {
|
||||
$branchname=$branches->{$branch}->{'branchname'};
|
||||
$printername=$printers->{$printer}->{'printername'};
|
||||
}
|
||||
print << "EOF";
|
||||
<center>
|
||||
<a href=circulation.pl?module=issues>Issues</a> |
|
||||
<a href=circulation.pl?module=returns>Returns</a>
|
||||
<hr>
|
||||
<p>
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td width=5%></td>
|
||||
<td align=right width=30%><table border=1 bgcolor=black width=100%><tr><th><font color=white>$branchname</font></th></tr></table></td>
|
||||
<td align=center width=20%>
|
||||
<a href=circulation.pl?module=issues&branch=$branch&printer=$printer><img src=/images/issues.gif border=0 width=60></a>
|
||||
<a href=circulation.pl?module=returns&branch=$branch&printer=$printer><img src=/images/returns.gif border=0 width=60></a>
|
||||
</td><td align=left width=30%>
|
||||
<table border=1 bgcolor=black width=100%><tr><th><font color=white>$printername</font></th></tr></table>
|
||||
</td>
|
||||
<td width=5%></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
EOF
|
||||
|
||||
SWITCH: {
|
||||
if ($query->param('module') eq 'issues') { issues(); last SWITCH; }
|
||||
if ($query->param('module') eq 'returns') { returns(); last SWITCH; }
|
||||
issues();
|
||||
|
||||
|
||||
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 $branchcount=0;
|
||||
my $printercount=0;
|
||||
my $branchoptions;
|
||||
my $printeroptions;
|
||||
foreach (keys %$branches) {
|
||||
(next) unless ($_);
|
||||
$branchcount++;
|
||||
$branchoptions.="<option value=$_>$branches->{$_}->{'branchname'}\n";
|
||||
}
|
||||
foreach (keys %$printers) {
|
||||
(next) unless ($_);
|
||||
$printercount++;
|
||||
$printeroptions.="<option value=$_>$printers->{$_}->{'printername'}\n";
|
||||
}
|
||||
my ($printerform, $branchform);
|
||||
if ($printercount>1) {
|
||||
$printerform=<<"EOF";
|
||||
<table border=1>
|
||||
<tr><th bgcolor=black><font color=white>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=1>
|
||||
<tr><th bgcolor=black><font color=white>Choose a Branch</font></td></tr>
|
||||
<tr><td>
|
||||
<select name=branch>
|
||||
$branchoptions
|
||||
</select>
|
||||
</td></tr>
|
||||
</table>
|
||||
EOF
|
||||
}
|
||||
print << "EOF";
|
||||
Select a printer and a branch
|
||||
<form method=get>
|
||||
<table border=0>
|
||||
<tr><td>
|
||||
$branchform
|
||||
</td><td>
|
||||
$printerform
|
||||
</td></tr>
|
||||
</table>
|
||||
<input type=submit>
|
||||
</form>
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
print endmenu();
|
||||
print endmenu('circulation');
|
||||
print endpage();
|
||||
sub default {
|
||||
print << "EOF";
|
||||
<a href=circulation.pl?module=issues>Issues</a>
|
||||
<a href=circulation.pl?module=returns>Returns</a>
|
||||
<a href=circulation.pl?module=issues&branch=$branch&printer=$printer>Issues</a>
|
||||
<a href=circulation.pl?module=returns&branch=$branch&printer=$printer>Returns</a>
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
sub returns {
|
||||
print << "EOF";
|
||||
<form method=get>
|
||||
<table border=3 bgcolor=#dddddd>
|
||||
<tr><td colspan=2 bgcolor=black align=center><font color=white><b><font size=+1>Returns</font><br>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>
|
||||
</form>
|
||||
EOF
|
||||
if (my $barcode=$query->param('barcode')) {
|
||||
print "Returning $barcode<br>\n";
|
||||
my ($iteminformation, $borrower, $messages, $overduecharge) = returnbook(\%env, $barcode);
|
||||
my $itemtable=<<"EOF";
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white>Item Information</font></th></tr>
|
||||
<tr><td>
|
||||
Title: $iteminformation->{'title'}<br>
|
||||
Author: $iteminformation->{'author'}<br>
|
||||
Barcode: $iteminformation->{'barcode'}
|
||||
</td></tr>
|
||||
</table>
|
||||
EOF
|
||||
if ($borrower) {
|
||||
print "Borrowed by $borrower->{'title'} $borrower->{'firstname'} $borrower->{'surname'}<p>\n";
|
||||
my ($patrontable, $flaginfotext) = patrontable($borrower);
|
||||
print "<table border=0><tr><td valign=top align=center>$patrontable</td><td valign=top align=center>$flaginfotext</td></tr><tr><td colspan=2 align=center>$itemtable</td></tr></table><br>\n";
|
||||
} else {
|
||||
print "Not loaned out.\n";
|
||||
}
|
||||
}
|
||||
print << "EOF";
|
||||
<form method=post name=barcode>
|
||||
<table border=3 bgcolor=#dddddd>
|
||||
<tr><td colspan=2 bgcolor=black><font color=white><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>
|
||||
</form>
|
||||
EOF
|
||||
}
|
||||
|
||||
sub issues {
|
||||
if (my $borrnumber=$query->param('borrnumber')) {
|
||||
my ($borrower, $flags) = getpatroninformation(\%env,$borrnumber,0);
|
||||
my ($borrower, $flags) = getpatroninformation(\%env,$borrnumber,0);
|
||||
my $year=$query->param('year');
|
||||
my $month=$query->param('month');
|
||||
|
@ -97,11 +199,17 @@ sub issues {
|
|||
$responses{$qnumber}=$query->param('answer');
|
||||
}
|
||||
unless ($invalidduedate) {
|
||||
my ($iteminformation, $duedate, $rejected, $question, $questionnumber, $defaultanswer) = issuebook(\%env, $borrower, $barcode, \%responses);
|
||||
my ($iteminformation, $duedate, $rejected, $question, $questionnumber, $defaultanswer, $message) = issuebook(\%env, $borrower, $barcode, \%responses);
|
||||
if ($rejected) {
|
||||
if ($rejected == -1) {
|
||||
} else {
|
||||
print "Error issuing book: $rejected<br>\n";
|
||||
print << "EOF"
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white>Error Issuing Book</font></th></tr>
|
||||
<tr><td><font color=red>$rejected</font></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
EOF
|
||||
}
|
||||
}
|
||||
my $responsesform='';
|
||||
|
@ -114,10 +222,14 @@ sub issues {
|
|||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white><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'}.
|
||||
<br>
|
||||
<p>
|
||||
$question
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align=center>
|
||||
<table border=0>
|
||||
|
@ -131,6 +243,8 @@ sub issues {
|
|||
<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>
|
||||
|
@ -146,6 +260,8 @@ sub issues {
|
|||
<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>
|
||||
|
@ -158,6 +274,15 @@ sub issues {
|
|||
EOF
|
||||
return;
|
||||
}
|
||||
if ($message) {
|
||||
print << "EOF";
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white>Message</font></th></tr>
|
||||
<tr><td>$message</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
EOF
|
||||
}
|
||||
}
|
||||
}
|
||||
my $issueid=$query->param('issueid');
|
||||
|
@ -173,13 +298,13 @@ EOF
|
|||
}
|
||||
$flags->{$flag}->{'message'}=~s/\n/<br>/g;
|
||||
if ($flags->{$flag}->{'noissues'}) {
|
||||
$flaginfotext.="<tr><td bgcolor=red><font color=white><b>$flag</b></font></td><td bgcolor=red><font color=white><b>$flags->{$flag}->{'message'}</b></font></td></tr>\n";
|
||||
$flaginfotext.="<tr><td bgcolor=red valign=top><font color=white><b>$flag</b></font></td><td bgcolor=red><font color=white><b>$flags->{$flag}->{'message'}</b></font></td></tr>\n";
|
||||
} else {
|
||||
$flaginfotext.="<tr><td>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
|
||||
$flaginfotext.="<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
|
||||
}
|
||||
}
|
||||
if ($flaginfotext) {
|
||||
$flaginfotext="<table border=1 width=70%><tr><th bgcolor=black colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n";
|
||||
$flaginfotext="<table border=1 width=70% bgcolor=#dddddd><tr><th bgcolor=black colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n";
|
||||
}
|
||||
$env{'nottodaysissues'}=1;
|
||||
my ($borrowerissues) = currentissues(\%env, $borrower);
|
||||
|
@ -213,7 +338,7 @@ EOF
|
|||
$dayoptions.="<option value=$i $selected>$i";
|
||||
}
|
||||
my $counter=1;
|
||||
foreach (('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')) {
|
||||
foreach (('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) {
|
||||
my $selected='';
|
||||
if (($query->param('stickyduedate')) && ($month==$counter)) {
|
||||
$selected='selected';
|
||||
|
@ -231,20 +356,20 @@ EOF
|
|||
|
||||
my $selected='';
|
||||
($query->param('stickyduedate')) && ($selected='checked');
|
||||
my ($borrower, $flags) = getpatroninformation(\%env,$borrnumber,0);
|
||||
my ($patrontable, $flaginfotable) = patrontable($borrower);
|
||||
print << "EOF";
|
||||
<form method=get>
|
||||
<table border=0 cellpadding=5>
|
||||
<table border=0 cellpadding=5 width=90%>
|
||||
<tr>
|
||||
<td align=left>
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><td bgcolor=black><font color=white><b>Enter Book Barcode</b></font></td></tr>
|
||||
<tr><td>
|
||||
<td align=center>
|
||||
<table border=1 bgcolor=#dddddd width=100%>
|
||||
<tr><td align=center bgcolor=black><font color=white><b>Enter Book Barcode</b></font></td></tr>
|
||||
<tr><td align=center>
|
||||
<table border=0 bgcolor=#dddddd>
|
||||
<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>
|
||||
<select name=day><option value=0>Day$dayoptions</select>
|
||||
<select name=month><option value=0>Month$monthoptions</select>
|
||||
<select name=year><option value=0>Year$yearoptions</select>
|
||||
<select name=day><option value=0>Day$dayoptions</select><select name=month><option value=0>Month$monthoptions</select><select name=year><option value=0>Year$yearoptions</select>
|
||||
<br>
|
||||
<input type=checkbox name=stickyduedate $selected> Sticky Due Date
|
||||
</td></tr>
|
||||
|
@ -253,17 +378,14 @@ EOF
|
|||
</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>
|
||||
</form>
|
||||
</td>
|
||||
<td align=right valign=top>
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white><b>Patron Information</b></font></td></tr>
|
||||
<tr><td>
|
||||
$borrower->{'cardnumber'} $borrower->{'surname'}, $borrower->{'title'} $borrower->{'firstname'}<br>
|
||||
$borrower->{'streetaddress'} $borrower->{'city'}<br>
|
||||
$borrower->{'categorycode'} $flagtext
|
||||
</td></tr>
|
||||
</table>
|
||||
$patrontable
|
||||
<br>
|
||||
$flaginfotable
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -286,21 +408,28 @@ EOF
|
|||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
$flaginfotext
|
||||
EOF
|
||||
} else {
|
||||
if (my $findborrower=$query->param('findborrower')) {
|
||||
my ($borrowers, $flags) = findborrower(\%env, $findborrower);
|
||||
print "<form method=get>\n";
|
||||
print "<input type=hidden name=module value=issues>\n";
|
||||
my @borrowers=@$borrowers;
|
||||
if ($#borrowers == -1) {
|
||||
$query->param('findborrower', '');
|
||||
print "No borrower matched '$findborrower'<p>\n";
|
||||
issues();
|
||||
return;
|
||||
}
|
||||
if ($#borrowers == 0) {
|
||||
$query->param('borrnumber', $borrowers[0]->{'borrowernumber'});
|
||||
issues();
|
||||
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 "<table border=1 cellpadding=5 bgcolor=#dddddd>";
|
||||
print "<tr><th bgcolor=black><font color=white><b>Select a borrower</b></font></th></tr>\n";
|
||||
print "<tr><th bgcolor=black><font color=white><b><font size=+1>Issues</font><br>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) {
|
||||
|
@ -312,15 +441,51 @@ EOF
|
|||
}
|
||||
} else {
|
||||
print << "EOF";
|
||||
<h1>Issues Module</h1>
|
||||
<form method=get>
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white><b>Enter borrower card number<br> or partial last name</b></font></td></tr>
|
||||
<tr><th bgcolor=black><font color=white><b><font size=+1>Issues</font><br>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>
|
||||
</form>
|
||||
EOF
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub patrontable {
|
||||
my ($borrower) = @_;
|
||||
my $flags=$borrower->{'flags'};
|
||||
my $flagtext='';
|
||||
my $flaginfotable='';
|
||||
my $flaginfotext='';
|
||||
my $flag;
|
||||
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=white><b>$flag</b></font></td><td bgcolor=red><font color=white><b>$flags->{$flag}->{'message'}</b></font></td></tr>\n";
|
||||
} else {
|
||||
$flaginfotext.="<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n";
|
||||
}
|
||||
}
|
||||
($flaginfotext) && ($flaginfotext="<table border=1 bgcolor=#dddddd><tr><th bgcolor=black colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n");
|
||||
my $patrontable= << "EOF";
|
||||
<table border=1 bgcolor=#dddddd>
|
||||
<tr><th bgcolor=black><font color=white><b>Patron Information</b></font></td></tr>
|
||||
<tr><td>
|
||||
$borrower->{'cardnumber'} $borrower->{'surname'}, $borrower->{'title'} $borrower->{'firstname'}<br>
|
||||
$borrower->{'streetaddress'} $borrower->{'city'}<br>
|
||||
$borrower->{'categorycode'} $flagtext
|
||||
</td></tr>
|
||||
</table>
|
||||
EOF
|
||||
return($patrontable, $flaginfotext);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue