use CGI;
use C4::Auth;
use C4::Dates qw/format_date format_date_in_iso/;
-
-use vars qw($debug);
-
-BEGIN {
- $debug = $ENV{DEBUG} || 0;
-}
+use C4::Debug;
+use Date::Calc qw/Today Add_Delta_YMD/;
my $input = new CGI;
my $order = $input->param('order');
query => $input,
type => "intranet",
authnotrequired => 0,
- flagsrequired => { circulate => 1 },
+ flagsrequired => { circulate => "circulate_remaining_permissions" },
debug => 1,
}
);
my $title;
my $author;
-my @datearr = localtime( time() );
-my $todaysdate =
- ( 1900 + $datearr[5] ) . '-'
- . sprintf( "%0.2d", ( $datearr[4] + 1 ) ) . '-'
- . sprintf( "%0.2d", $datearr[3] );
-
-# Find yesterday for the default shelf pull end dates
-# A defualt of the prior day's holds is a reasonable way to pull holds
-my @datearr_yesterday = localtime( time() - 86400 );
-my $yesterdaysdate =
- ( 1900 + $datearr_yesterday[5] ) . '-'
- . sprintf( "%0.2d", ( $datearr_yesterday[4] + 1 ) ) . '-'
- . sprintf( "%0.2d", $datearr_yesterday[3] );
-# Find 10 years ago for the default shelf pull start and end dates
-# A defualt of the prior day's holds is a reasonable way to pull holds
-my @datearr_past = localtime( time() - 86400*365*10 );
-my $pastdate =
- ( 1900 + $datearr_past[5] ) . '-'
- . sprintf( "%0.2d", ( $datearr_past[4] + 1 ) ) . '-'
- . sprintf( "%0.2d", $datearr_past[3] );
+my ( $year, $month, $day ) = Today();
+my $todaysdate = sprintf("%-04.4d-%-02.2d-%02.2d", $year, $month, $day);
+my $yesterdaysdate = sprintf("%-04.4d-%-02.2d-%02.2d", Add_Delta_YMD($year, $month, $day, 0, 0, -1));
+#changed from delivered range of 10 years-yesterday to 2 days ago-today
+# Find two days ago for the default shelf pull start and end dates
+my $pastdate = sprintf("%-04.4d-%-02.2d-%02.2d", Add_Delta_YMD($year, $month, $day, 0, 0, -2));
# Predefine the start and end dates if they are not already defined
$startdate =~ s/^\s+//;
$startdate = format_date($pastdate);
}
if (!defined($enddate) or $enddate eq "") {
- $enddate = format_date($yesterdaysdate);
+ $enddate = format_date($todaysdate);
}
my $dbh = C4::Context->dbh;
my ($sqlorderby, $sqldatewhere) = ("","");
$debug and warn format_date_in_iso($startdate) . "\n" . format_date_in_iso($enddate);
-$sqldatewhere .= " AND reservedate >= " . $dbh->quote(format_date_in_iso($startdate)) if ($startdate) ;
-$sqldatewhere .= " AND reservedate <= " . $dbh->quote(format_date_in_iso($enddate)) if ($enddate) ;
-
+my @query_params = ();
+if ($startdate) {
+ $sqldatewhere .= " AND reservedate >= ?";
+ push @query_params, format_date_in_iso($startdate);
+}
+if ($enddate) {
+ $sqldatewhere .= " AND reservedate <= ?";
+ push @query_params, format_date_in_iso($enddate);
+}
if ($order eq "biblio") {
- $sqlorderby = " order by biblio.title ";
+ $sqlorderby = " ORDER BY biblio.title ";
} elsif ($order eq "itype") {
- $sqlorderby = " order by l_itype, location, l_itemcallnumber ";
+ $sqlorderby = " ORDER BY l_itype, location, l_itemcallnumber ";
} elsif ($order eq "location") {
- $sqlorderby = " order by location, l_itemcallnumber, holdingbranch ";
+ $sqlorderby = " ORDER BY location, l_itemcallnumber, holdingbranch ";
} elsif ($order eq "date") {
- $sqlorderby = " order by l_reservedate, location, l_itemcallnumber ";
+ $sqlorderby = " ORDER BY l_reservedate, location, l_itemcallnumber ";
} elsif ($order eq "library") {
- $sqlorderby = " order by holdingbranch, l_itemcallnumber, location ";
+ $sqlorderby = " ORDER BY holdingbranch, l_itemcallnumber, location ";
} elsif ($order eq "call") {
- $sqlorderby = " order by l_itemcallnumber, holdingbranch, location ";
+ $sqlorderby = " ORDER BY l_itemcallnumber, holdingbranch, location ";
} else {
- $sqlorderby = " order by biblio.title ";
+ $sqlorderby = " ORDER BY biblio.title ";
}
my $strsth =
"SELECT min(reservedate) as l_reservedate,
reserves.borrowernumber as borrowernumber,
GROUP_CONCAT(DISTINCT items.holdingbranch
- ORDER BY items.itemnumber SEPARATOR '<br>') l_holdingbranch,
+ ORDER BY items.itemnumber SEPARATOR '<br/>') l_holdingbranch,
reserves.biblionumber,
reserves.branchcode,
GROUP_CONCAT(DISTINCT reserves.branchcode
items.holdingbranch as branch,
items.itemcallnumber,
GROUP_CONCAT(DISTINCT items.itype
- ORDER BY items.itemnumber SEPARATOR '<br>') l_itype,
+ ORDER BY items.itemnumber SEPARATOR '<br/>') l_itype,
GROUP_CONCAT(DISTINCT items.location
- ORDER BY items.itemnumber SEPARATOR '<br>') l_location,
+ ORDER BY items.itemnumber SEPARATOR '<br/>') l_location,
GROUP_CONCAT(DISTINCT items.itemcallnumber
- ORDER BY items.itemnumber SEPARATOR '<br>') l_itemcallnumber,
+ ORDER BY items.itemnumber SEPARATOR '<br/>') l_itemcallnumber,
items.itemnumber,
notes,
notificationdate,
LEFT JOIN items ON items.biblionumber=reserves.biblionumber
LEFT JOIN biblio ON reserves.biblionumber=biblio.biblionumber
LEFT JOIN branchtransfers ON items.itemnumber=branchtransfers.itemnumber
+ LEFT JOIN issues ON items.itemnumber=issues.itemnumber
WHERE
reserves.found IS NULL
$sqldatewhere
AND items.itemnumber NOT IN (SELECT itemnumber FROM branchtransfers where datearrived IS NULL)
-AND items.itemnumber NOT IN (SELECT itemnumber FROM issues)
+AND issues.itemnumber IS NULL
AND reserves.priority <> 0
-AND reserves.itemnumber is NULL
AND notforloan = 0 AND damaged = 0 AND itemlost = 0 AND wthdrawn = 0
";
# GROUP BY reserves.biblionumber allows only items that are not checked out, else multiples occur when
if (C4::Context->preference('IndependantBranches')){
$strsth .= " AND items.holdingbranch=? ";
+ push @query_params, C4::Context->userenv->{'branch'};
}
$strsth .= " GROUP BY reserves.biblionumber " . $sqlorderby;
+
my $sth = $dbh->prepare($strsth);
+$sth->execute(@query_params);
-if (C4::Context->preference('IndependantBranches')){
- $sth->execute(C4::Context->userenv->{'branch'});
-}
-else {
- $sth->execute();
-}
my @reservedata;
my $previous;
my $this;
reserveloop => \@reservedata,
"BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+ dateformat => C4::Context->preference("dateformat"),
);
output_html_with_http_headers $input, $cookie, $template->output;