#!/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.="\n";
$ritext.="\n";
$ritext.="\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.= "\n";
$ritext.= "{'date_due'}>\n";
$ritext.= "{'borrowernumber'}>\n";
}
}
##################################################################################
# HTML code....
# title....
my $title = <<"EOF";
Circulation: Returns
EOF
my $itemtable;
if ($iteminformation) {
$itemtable = <<"EOF";
Returned Item Information
Title: $iteminformation->{'title'}
EOF
}
# Barcode entry box, with hidden inputs attached....
my $barcodeentrytext= << "EOF";
EOF
# collect the messages and put into message table....
my $messagetable;
if ($messages) {
my $messagetext='';
foreach (@$messages) {
$messagetext .= "$_ ";
}
$messagetext = substr($messagetext, 0, -4);
if ($messagetext) {
$messagetable = << "EOF";
Messages
$messagetext
EOF
}
}
# patrontable ....
my $borrowertable;
if ($borrower) {
my $patrontable = << "EOF";
EOF
}
# the returned items.....
my $returneditemstable = << "EOF";
Returned Items
Due Date
Bar Code
Title
Author
Type
Borrower
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="$duedate") if ($duedate lt $todaysdate);
($duedate) || ($overduetext = "");
my $borrowernumber = $riborrowernumber{$_};
my ($borrower) = getpatroninformation(\%env,$borrowernumber,0);
my ($iteminformation) = getiteminformation(\%env, 0, $barcode);;
$returneditemstable .= << "EOF";