@ -8,6 +8,10 @@ use DBI;
my % env ;
my $ headerbackgroundcolor = '#990000' ;
my $ circbackgroundcolor = '#555555' ;
my $ circbackgroundcolor = '#550000' ;
my $ linecolor1 = '#bbbbbb' ;
my $ linecolor2 = '#dddddd' ;
my $ query = new CGI ;
my $ branches = getbranches ( \ % env ) ;
my $ printers = getprinters ( \ % env ) ;
@ -30,6 +34,7 @@ my $branchoptions;
my $ printeroptions ;
foreach ( keys %$ branches ) {
( next ) unless ( $ _ ) ;
( next ) if ( /^TR$/ ) ;
$ branchcount + + ;
my $ selected = '' ;
( $ selected = 'selected' ) if ( $ _ eq $ oldbranch ) ;
@ -69,21 +74,25 @@ print startmenu('circulation');
print << "EOF" ;
<center>
<p>
< table border = 0 width = 100 % >
< table border = 0 width = 100 % cellspacing = 0 bgcolor = $ headerbackgroundcolor >
<tr>
< td width = 5 % > < / td >
< td align = right width = 30 % > < table border = 1 bgcolor = $ headerbackgroundcolor 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/iss ues . 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>
<br>
< a href = circulation . pl ? selectnewbranchprinter = 1 > Set Branch /Printer</ a >
</td> < td align = left width = 30 % >
< table border = 1 bgcolor = $ headerbackgroundcolor width = 100 % > < tr > <th> < font color = white > $ printername </font> </th> </tr> </table>
</td>
< td width = 5 % > < / td >
< th width = 5 % > < / th >
< th width = 30 % > < font color = white > $ branchname </font> </th>
< th width = 10 % >
< a href = circulation . pl ? module = issues & branch = $ branch & printer = $ printer > < font color = white > < img src = /images/iss ues . gif border = 0 height = 40 > </font> </a>
</th>
< th width = 10 % >
< a href = circulation . pl ? selectnewbranchprinter = 1 > < font color = white > Branch /Printer</ font > </a>
</th>
< th width = 10 % >
< a href = circulation . pl ? module = returns & branch = $ branch & printer = $ printer > < font color = white > < img src = /images/ returns . gif border = 0 height = 40 > </font> </a>
</th>
< th width = 30 % > < font color = white > $ printername </font> </th>
< th width = 5 % > < / th >
</tr>
</table>
<br>
EOF
@ -99,7 +108,7 @@ if ($printer && $branch) {
my ( $ printerform , $ branchform ) ;
if ( $ printercount > 1 ) {
$ printerform = << "EOF" ;
< table border = 1 >
< table border = 0 cellspacing = 0 cellpadding = 5 >
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Choose a Printer </font> </td> </tr>
<tr> <td>
< select name = printer >
@ -117,7 +126,7 @@ EOF
if ( $ branchcount > 1 ) {
$ branchform = << "EOF" ;
< table border = 1 >
< table border = 0 cellpadding = 5 cellspacing = 0 >
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Choose a Branch </font> </td> </tr>
<tr> <td>
< select name = branch >
@ -155,38 +164,53 @@ EOF
sub returns {
my % returneditems ;
print << "EOF" ;
< table border = 0 cellpadding = 10 cellspacing = 0 bgcolor = $ headerbackgroundcolor cellpadding = 5 > <tr> <th> < font color = white > Circulation - Returns </font> </td> </tr> <tr> < td bgcolor = $ circbackgroundcolor align = center >
EOF
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 + + ;
$ 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' ) ) {
$ ritext . = "<input type=hidden name=ri-0 value=$barcode>\n" ;
$ returneditems { 0 } = $ barcode ;
}
print << "EOF" ;
my $ barcodeentrytext = << "EOF" ;
< form method = get >
< table border = 3 bgcolor = #dddddd>
<tr> < td colspan = 2 bgcolor = $ headerbackgroundcolor align = center > < font color = white > <b> < font size = + 1 > Returns </font> <br> Enter Book Barcode </b> </font> </td> </tr>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < td colspan = 2 bgcolor = $ headerbackgroundcolor align = center > < 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 >
< input type = hidden name = branch value = $ branch >
< input type = hidden name = printer value = $ printer >
$ ritext
</form>
EOF
if ( my $ barcode = $ query - > param ( 'barcode' ) ) {
if ( ( my $ barcode = $ query - > param ( 'barcode' ) ) || ( % returneditems ) ) {
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 = 1 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Item Information </font> </th> </tr>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Returned Item Information </font> </th> </tr>
<tr> <td>
Title: $ iteminformation - > { 'title' } <br>
Author: $ iteminformation - > { 'author' } <br>
@ -195,9 +219,30 @@ Date Due: $iteminformation->{'date_due'}
</td> </tr>
</table>
EOF
if ( $ nosuchitem ) {
if ( $ messages ) {
my $ messagetext = '' ;
foreach ( @$ messages ) {
$ messagetext . = "$_<p>\n" ;
}
print << "EOF" ;
< table border = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > 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 > < font color = white > Error </font> </th> </tr>
<tr> <td>
< table border = 0 cellpadding = 5 >
@ -207,14 +252,58 @@ EOF
</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 ) {
if ( $ borrower - > { 'borrowernumber' } ) {
my ( $ patrontable , $ flaginfotext ) = patrontable ( $ borrower ) ;
print "<hr><p><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" ;
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 = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 >
<tr> <td>
$ barcodeentrytext
</td>
<td>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Error </font> </th> </tr>
<tr> <td>
< table border = 0 cellpadding = 5 >
@ -224,27 +313,49 @@ EOF
</table>
</td> </tr>
</table>
</td>
</tr>
</table>
EOF
}
}
print << "EOF" ;
<p>
<hr>
<p>
< table border = 1 bgcolor = #dddddd>
<tr> < th colspan = 4 bgcolor = $ headerbackgroundcolor > < font color = white > Returned Items </font> </th> </tr>
<tr> <th> Bar Code </th> <th> Title </th> <th> Author </th> <th> Class </th> </tr>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th colspan = 6 bgcolor = $ headerbackgroundcolor > < font color = white > Returned Items </font> </th> </tr>
<tr> <th> Due Date </th> <th> Bar Code </th> <th> Title </th> <th> Author </th> <th> Class </th> <th> Borrower </th> </tr>
EOF
my $ color = '' ;
foreach ( sort { $ a <=> $ b } keys % returneditems ) {
( $ color eq $ linecolor1 ) ? ( $ color = $ linecolor2 ) : ( $ color = $ linecolor1 ) ;
my $ barcode = $ returneditems { $ _ } ;
my ( $ iteminformation ) = getiteminformation ( \ $ env , 0 , $ barcode ) ;
print "<tr><td align=center><a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$barcode</a></td><td>$iteminformation->{'title'}</td><td>$iteminformation->{'author'}</td><td align=center>$iteminformation->{'dewey'} $iteminformation->{'subclass'}</td></tr>\n" ;
my $ duedate = $ riduedate { $ _ } ;
my @ datearr = localtime ( time ( ) ) ;
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 ) ;
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->{'dewey'} $iteminformation->{'subclass'}</td><td bgcolor=$color><img src=/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" ;
}
print "</table>\n" ;
} else {
print $ barcodeentrytext ;
}
print "</form>\n" ;
print "</td></tr></table>\n" ;
}
sub issues {
my ( $ noheader ) = shift ;
unless ( $ noheader ) {
print << "EOF" ;
< table border = 0 bgcolor = $ headerbackgroundcolor cellpadding = 10 cellspacing = 0 > <tr> <th> < font color = white > Circulation - Issues </font> </td> </tr> <tr> < td bgcolor = $ circbackgroundcolor align = center >
EOF
}
if ( my $ borrnumber = $ query - > param ( 'borrnumber' ) ) {
my ( $ borrower , $ flags ) = getpatroninformation ( \ % env , $ borrnumber , 0 ) ;
my ( $ borrower , $ flags ) = getpatroninformation ( \ % env , $ borrnumber , 0 ) ;
@ -262,13 +373,13 @@ sub issues {
$ invalidduedate = 1 ;
} else {
if ( ( $ day > 30 ) && ( ( $ month == 4 ) || ( $ month == 6 ) || ( $ month == 9 ) || ( $ month == 11 ) ) ) {
print "Invalid Due Date Specified. Book was not issued.<p>\n" ;
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.<p>\n" ;
print "Invalid Due Date Specified. Book was not issued. Never that many days in February! <p>\n" ;
$ invalidduedate = 1 ;
} elsif ( ( $ day > 28 ) && ( ( $ year % 4 ) && ( ( ! ( $ year % 100 ) || ( $ year % 400 ) ) ) ) ) {
print "Invalid Due Date Specified. Book was not issued.<p>\n" ;
} 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" ;
@ -288,7 +399,7 @@ sub issues {
my ( $ iteminformation , $ duedate , $ rejected , $ question , $ questionnumber , $ defaultanswer , $ message ) = issuebook ( \ % env , $ borrower , $ barcode , \ % responses ) ;
unless ( $ iteminformation ) {
print << "EOF" ;
< table border = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Error </font> </th> </tr>
<tr> <td>
< table border = 0 cellpadding = 5 >
@ -296,15 +407,13 @@ sub issues {
$ barcode is not a valid barcode .
</td> </tr>
</table>
</td> </tr>
</table>
EOF
}
if ( $ rejected ) {
if ( $ rejected == - 1 ) {
} else {
print << "EOF"
< table border = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Error Issuing Book </font> </th> </tr>
<tr> <td> < font color = red > $ rejected </font> </td> </tr>
</table>
@ -319,7 +428,7 @@ EOF
if ( $ question ) {
my $ stickyduedate = $ query - > param ( 'stickyduedate' ) ;
print << "EOF" ;
< table border = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > <b> Issuing Question </b> </font> </td> </tr>
<tr> <td>
< table border = 0 cellpadding = 10 >
@ -371,12 +480,14 @@ EOF
</table>
</td> </tr>
</table>
</td> </tr>
</table>
EOF
return ;
}
if ( $ message ) {
print << "EOF" ;
< table border = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > Message </font> </th> </tr>
<tr> <td> $ message </td> </tr>
</table>
@ -404,7 +515,7 @@ EOF
}
}
if ( $ flaginfotext ) {
$ flaginfotext = "<table border=1 width=70% bgcolor=#dddddd><tr><th bgcolor=$headerbackgroundcolor colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n" ;
$ flaginfotext = "<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd><tr><th bgcolor=$headerbackgroundcolor colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n" ;
}
$ env { 'nottodaysissues' } = 1 ;
my ( $ borrowerissues ) = currentissues ( \ % env , $ borrower ) ;
@ -415,21 +526,25 @@ EOF
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' } ;
$ datedue =~ s/-//g ;
if ( $ datedue < $ todaysdate ) {
$ bgcolor = "bgcolor=red ";
$ dd = "<font color=red>$dd</font>\n ";
}
#$previssues.="<tr $bgcolor><td>$bookissue->{'date_due'}</td><td>$bookissue->{'barcode'}</td><td>$bookissue->{'title'}</td><td>$bookissue->{'author'}</td><td>$bookissue->{'dewey'} $bookissue->{'subclass'}</td></tr>\n";
$ previssues . = "<tr><td align=center>$bookissue->{'date_due'}</td><td 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>$bookissue->{'title'}</td><td>$bookissue->{'author'}</td><td align=center>$bookissue->{'dewey'} $bookissue->{'subclass'}</td></tr>\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 align=center>$bookissue->{'date_due'}</td><td 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>$bookissue->{'title'}</td><td>$bookissue->{'author'}</td><td align=center>$bookissue->{'dewey'} $bookissue->{'subclass'}</td></tr>\n" ;
$ 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 = '' ;
@ -461,16 +576,24 @@ EOF
my ( $ patrontable , $ flaginfotable ) = patrontable ( $ borrower ) ;
print << "EOF" ;
< form method = get >
< table border = 0 cellpadding = 5 width = 90 % >
< table border = 0 cellpadding = 5 >
<tr>
< td align = center valign = top >
< table border = 1 bgcolor = #dddddd width=100%>
< table border = 0 cellspacing = 0 cellpadding = 5 bgcolor = #dddddd width=100%>
<tr> < td align = center bgcolor = $ headerbackgroundcolor > < 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>
< 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>
<br>
< input type = checkbox name = stickyduedate $ selected > Sticky Due Date
</td> </tr>
@ -491,7 +614,7 @@ EOF
</tr>
<tr>
< td colspan = 2 align = center >
< table border = 1 width = 100 % bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 width = 100 % bgcolor = #dddddd>
<tr> < th colspan = 5 bgcolor = $ headerbackgroundcolor > < font color = white > <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
@ -500,7 +623,7 @@ EOF
</tr>
<tr>
< td colspan = 2 align = center >
< table border = 1 width = 100 % bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 width = 100 % bgcolor = #dddddd>
<tr> < th colspan = 5 bgcolor = $ headerbackgroundcolor > < font color = white > <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
@ -508,6 +631,7 @@ EOF
</td>
</tr>
</table>
</td> </tr> </table>
<p>
EOF
} else {
@ -517,20 +641,20 @@ EOF
if ( $# borrowers == - 1 ) {
$ query - > param ( 'findborrower' , '' ) ;
print "No borrower matched '$findborrower'<p>\n" ;
issues ( ) ;
issues ( 1 ) ;
return ;
}
if ( $# borrowers == 0 ) {
$ query - > param ( 'borrnumber' , $ borrowers [ 0 ] - > { 'borrowernumber' } ) ;
issues ( ) ;
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 "<table border=1 cellpadding=5 bgcolor=#dddddd>" ;
print "<tr><th bgcolor=$headerbackgroundcolor><font color=white><b><font size=+1>Issues</font><br> Select a borrower</b></font></th></tr>\n" ;
print "<table border=0 cellspacing=0 cellpadding=5 bgcolor=#dddddd>" ;
print "<tr><th bgcolor=$headerbackgroundcolor><font color=white><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 ) {
@ -539,18 +663,20 @@ EOF
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 = 1 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > <b> < font size = + 1 > Issues </font> <br> Enter borrower card number <br> or partial last name </b> </font> </td> </tr>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > <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 >
</form>
</td> </tr> </table>
EOF
}
}
@ -565,6 +691,7 @@ sub patrontable {
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 {
@ -573,21 +700,43 @@ sub patrontable {
$ flags - > { $ flag } - > { 'message' } =~ s/\n/<br>/g ;
if ( $ flags - > { $ flag } - > { 'noissues' } ) {
if ( $ flag eq 'CHARGES' ) {
$ flaginfotext . = "<tr><td bgcolor=red valign=top><font color=white><b>$flag</b></font></td><td ><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" ;
$ flaginfotext . = "<tr><td bgcolor=$color 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 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" ;
$ flaginfotext . = "<tr><td bgcolor=$color 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" ;
$ flaginfotext . = "<tr><td valign=top bgcolor=$color>$flag</td><td bgcolor=$color>$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 bgcolor=$color valign=top>$flag</td><td bgcolor=$color>$flags->{$flag}->{'message'}<br>$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 bgcolor=$color><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 bgcolor=$color>$iteminformation->{'title'}</td></tr>\n" ;
}
}
$ itemswaiting . = "</table>\n" ;
$ flaginfotext . = "<tr><td bgcolor=$color valign=top>$flag</td><td bgcolor=$color>$flags->{$flag}->{'message'}<br>Overdue items can be seen in the Previous Issues table below</td></tr>\n" ;
} else {
$ flaginfotext . = "<tr><td valign=top>$flag</td><td>$flags->{$flag}->{'message'}</td></tr>\n" ;
$ flaginfotext . = "<tr><td bgcolor=$color valign=top>$flag</td><td bgcolor=$color >$flags->{$flag}->{'message'}</td></tr>\n" ;
}
}
}
( $ flaginfotext ) && ( $ flaginfotext = "<table border=1 bgcolor=#dddddd><tr><th bgcolor=$headerbackgroundcolor colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n" ) ;
( $ flaginfotext ) && ( $ flaginfotext = "<table border=0 cellpadding=5 cellspacing=0 bgcolor=#dddddd><tr><th bgcolor=$headerbackgroundcolor colspan=2><font color=white>Patron Flags</font></th></tr>$flaginfotext</table>\n" ) ;
my $ patrontable = << "EOF" ;
< table border = 1 bgcolor = #dddddd>
< table border = 0 cellpadding = 5 cellspacing = 0 bgcolor = #dddddd>
<tr> < th bgcolor = $ headerbackgroundcolor > < font color = white > <b> Patron Information </b> </font> </td> </tr>
<tr> <td>
< 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>