# Copyright 2000-2002 Katipo Communications
# copyright 2010 BibLibre
+# Copyright 2011 PTFS-Europe Ltd.
#
# This file is part of Koha.
#
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
-#use warnings; FIXME - Bug 2505
+use warnings;
use CGI;
use C4::Output;
use C4::Print;
use C4::Context;
use CGI::Session;
use C4::Members::Attributes qw(GetBorrowerAttributes);
+use Koha::DateUtils;
use Date::Calc qw(
Today
my $branches = GetBranches();
my @failedrenews = $query->param('failedrenew'); # expected to be itemnumbers
-my %renew_failed;
+our %renew_failed = ();
for (@failedrenews) { $renew_failed{$_} = 1; }
-my $findborrower = $query->param('findborrower');
+my @failedreturns = $query->param('failedreturn');
+our %return_failed = ();
+for (@failedreturns) { $return_failed{$_} = 1; }
+
+my $findborrower = $query->param('findborrower') || q{};
$findborrower =~ s|,| |g;
my $borrowernumber = $query->param('borrowernumber');
$template->param(UseTablesortForCirc => 1);
}
-my $barcode = $query->param('barcode') || '';
+my $barcode = $query->param('barcode') || q{};
$barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespace
$barcode = barcodedecode($barcode) if( $barcode && C4::Context->preference('itemBarcodeInputFilter'));
my $issueconfirmed = $query->param('issueconfirmed');
my $cancelreserve = $query->param('cancelreserve');
my $organisation = $query->param('organisations');
-my $print = $query->param('print');
+my $print = $query->param('print') || q{};
my $newexpiry = $query->param('dateexpiry');
my $debt_confirmed = $query->param('debt_confirmed') || 0; # Don't show the debt error dialog twice
if($duedatespec_allow){
if ($duedatespec) {
if ($duedatespec =~ C4::Dates->regexp('syspref')) {
- my $tempdate = C4::Dates->new($duedatespec);
-# if ($tempdate and $tempdate->output('iso') gt C4::Dates->new()->output('iso')) {
-# # i.e., it has to be later than today/now
- $datedue = $tempdate;
-# } else {
-# $invalidduedate = 1;
-# $template->param(IMPOSSIBLE=>1, INVALID_DATE=>$duedatespec);
-# }
+ $datedue = dt_from_string($duedatespec);
} else {
$invalidduedate = 1;
$template->param(IMPOSSIBLE=>1, INVALID_DATE=>$duedatespec);
}
}
-my $todaysdate = C4::Dates->new->output('iso');
+our $todaysdate = C4::Dates->new->output('iso');
# check and see if we should print
if ( $barcode eq '' && $print eq 'maybe' ) {
}
if ( $print eq 'yes' && $borrowernumber ne '' ) {
- printslip( $borrowernumber );
+ if ( C4::Context->boolean_preference('printcirculationslips') ) {
+ my $letter = IssueSlip($branch, $borrowernumber, "QUICK");
+ NetworkPrint($letter->{content});
+ }
$query->param( 'borrowernumber', '' );
$borrowernumber = '';
}
my $borrowerslist;
my $message;
if ($findborrower) {
- my $borrowers = Search($findborrower, 'cardnumber');
- my @borrowers = @$borrowers;
+ my $borrowers = Search($findborrower, 'cardnumber') || [];
if (C4::Context->preference("AddPatronLists")) {
$template->param(
"AddPatronLists_".C4::Context->preference("AddPatronLists")=> "1",
$template->param(categories=>$categories);
}
}
- if ( $#borrowers == -1 ) {
+ if ( @$borrowers == 0 ) {
$query->param( 'findborrower', '' );
$message = "'$findborrower'";
}
- elsif ( $#borrowers == 0 ) {
- $query->param( 'borrowernumber', $borrowers[0]->{'borrowernumber'} );
+ elsif ( @$borrowers == 1 ) {
+ $borrowernumber = $borrowers->[0]->{'borrowernumber'};
+ $query->param( 'borrowernumber', $borrowernumber );
$query->param( 'barcode', '' );
- $borrowernumber = $borrowers[0]->{'borrowernumber'};
}
else {
- $borrowerslist = \@borrowers;
+ $borrowerslist = $borrowers;
}
}
#
if ($barcode) {
# always check for blockers on issuing
- my ( $error, $question ) =
+ my ( $error, $question, $alerts ) =
CanBookBeIssued( $borrower, $barcode, $datedue , $inprocess );
my $blocker = $invalidduedate ? 1 : 0;
+ $template->param( alert => $alerts );
+
delete $question->{'DEBT'} if ($debt_confirmed);
foreach my $impossible ( keys %$error ) {
$template->param(
$getreserv{itemcallnumber} = $getiteminfo->{'itemcallnumber'};
$getreserv{biblionumber} = $getiteminfo->{'biblionumber'};
$getreserv{waitingat} = GetBranchName( $num_res->{'branchcode'} );
+ $getreserv{suspend} = $num_res->{'suspend'};
+ $getreserv{suspend_until} = $num_res->{'suspend_until'};
# check if we have a waiting status for reservations
if ( $num_res->{'found'} eq 'W' ) {
$getreserv{color} = 'reserved';
# make the issued books table.
my $todaysissues = '';
my $previssues = '';
-my @todaysissues;
-my @previousissues;
-my @relissues;
-my @relprevissues;
+our @todaysissues = ();
+our @previousissues = ();
+our @relissues = ();
+our @relprevissues = ();
my $displayrelissues;
-my $totalprice = 0;
+our $totalprice = 0;
sub build_issue_data {
my $issueslist = shift;
$totalprice += $it->{'replacementprice'};
$it->{'itemtype'} = $itemtypeinfo->{'description'};
$it->{'itemtype_image'} = $itemtypeinfo->{'imageurl'};
- $it->{'dd'} = format_date($it->{'date_due'});
- $it->{'displaydate'} = format_date($it->{'issuedate'});
- $it->{'od'} = ( $it->{'date_due'} lt $todaysdate ) ? 1 : 0 ;
+ $it->{'dd'} = output_pref($it->{'date_due'});
+ $it->{'displaydate'} = output_pref($it->{'issuedate'});
+ #$it->{'od'} = ( $it->{'date_due'} lt $todaysdate ) ? 1 : 0 ;
+ $it->{'od'} = $it->{'overdue'};
($it->{'author'} eq '') and $it->{'author'} = ' ';
$it->{'renew_failed'} = $renew_failed{$it->{'itemnumber'}};
+ $it->{'return_failed'} = $return_failed{$it->{'barcode'}};
- if ( $todaysdate eq $it->{'issuedate'} or $todaysdate eq $it->{'lastreneweddate'} ) {
+ if ( $it->{'issuedate'}."" gt $todaysdate or $it->{'lastreneweddate'} gt $todaysdate ) {
(!$relatives) ? push @todaysissues, $it : push @relissues, $it;
} else {
(!$relatives) ? push @previousissues, $it : push @relprevissues, $it;
$flags->{$flag}->{'message'} =~ s#\n#<br />#g;
if ( $flags->{$flag}->{'noissues'} ) {
$template->param(
- flagged => 1,
noissues => 'true',
);
if ( $flag eq 'GNA' ) {
if ( $flag eq 'CHARGES' ) {
$template->param(
charges => 'true',
- flagged => 1,
chargesmsg => $flags->{'CHARGES'}->{'message'},
chargesamount => $flags->{'CHARGES'}->{'amount'},
);
elsif ( $flag eq 'ODUES' ) {
$template->param(
odues => 'true',
- flagged => 1,
oduesmsg => $flags->{'ODUES'}->{'message'}
);
elsif ( $flag eq 'NOTES' ) {
$template->param(
notes => 'true',
- flagged => 1,
notesmsg => $flags->{'NOTES'}->{'message'}
);
}
soundon => C4::Context->preference("SoundOn"),
fast_cataloging => $fast_cataloging,
CircAutoPrintQuickSlip => C4::Context->preference("CircAutoPrintQuickSlip"),
- activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
+ activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
+ SuspendHoldsIntranet => C4::Context->preference('SuspendHoldsIntranet'),
+ AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'),
);
# save stickyduedate to session
SpecifyDueDate => $duedatespec_allow,
CircAutocompl => C4::Context->preference("CircAutocompl"),
AllowRenewalLimitOverride => C4::Context->preference("AllowRenewalLimitOverride"),
- dateformat => C4::Context->preference("dateformat"),
- DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+ export_remove_fields => C4::Context->preference("ExportRemoveFields"),
+ export_with_csv_profile => C4::Context->preference("ExportWithCsvProfile"),
canned_bor_notes_loop => $canned_notes,
);
+
output_html_with_http_headers $query, $cookie, $template->output;