X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=circ%2Fpendingreserves.pl;h=932b035c234b812891e54e8154ecb4fe2eb4d09f;hb=503cc30d9ae03f12b3c412d2d280ea76393b97da;hp=2deb67b68bc1dcd158e9d3c171ab7105c41b8332;hpb=afd2418d7387dc2a50835128e24840686600ef4b;p=koha.git diff --git a/circ/pendingreserves.pl b/circ/pendingreserves.pl index 2deb67b68b..932b035c23 100755 --- a/circ/pendingreserves.pl +++ b/circ/pendingreserves.pl @@ -1,22 +1,21 @@ #!/usr/bin/perl - # Copyright 2000-2002 Katipo Communications # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . # Modification by D.Ulm, actually works (as long as indep. branches not turned on) # Someone let me know what indep. branches is supposed to do and I'll make that part work too @@ -26,16 +25,15 @@ use strict; #use warnings; FIXME - Bug 2505 -use constant TWO_DAYS => 2; -use constant TWO_DAYS_AGO => -2; +use constant PULL_INTERVAL => 2; use C4::Context; use C4::Output; -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; -use C4::Dates qw/format_date format_date_in_iso/; use C4::Debug; -use Date::Calc qw/Today Add_Delta_YMD/; +use Koha::DateUtils; +use DateTime::Duration; my $input = new CGI; my $startdate=$input->param('from'); @@ -55,68 +53,60 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); -my $duedate; -my $borrowernumber; -my $itemnum; -my $data1; -my $data2; -my $data3; -my $name; -my $phone; -my $email; -my $biblionumber; -my $title; -my $author; - -my ( $year, $month, $day ) = Today(); -my $todaysdate = sprintf("%-04.4d-%-02.2d-%02.2d", $year, $month, $day); +my $today = dt_from_string; $startdate =~ s/^\s+//; $startdate =~ s/\s+$//; $enddate =~ s/^\s+//; $enddate =~ s/\s+$//; -if (!defined($startdate) or $startdate eq "") { +if ( $startdate ) { + $startdate = eval{dt_from_string( $startdate )}; +} +unless ( $startdate ){ # changed from delivered range of 10 years-yesterday to 2 days ago-today # Find two days ago for the default shelf pull start date, unless HoldsToPullStartDate sys pref is set. - my $pastdate= sprintf("%-04.4d-%-02.2d-%02.2d", Add_Delta_YMD($year, $month, $day, 0, 0, -C4::Context->preference('HoldsToPullStartDate')||TWO_DAYS_AGO )); - $startdate = format_date($pastdate); + $startdate = $today - DateTime::Duration->new( days => C4::Context->preference('HoldsToPullStartDate') || PULL_INTERVAL ); } -if (!defined($enddate) or $enddate eq "") { +if ( $enddate ) { + $enddate = eval{dt_from_string( $enddate )}; +} +unless ( $enddate ) { #similarly: calculate end date with ConfirmFutureHolds (days) - my $d=sprintf("%-04.4d-%-02.2d-%02.2d", Add_Delta_YMD($year, $month, $day, 0, 0, C4::Context->preference('ConfirmFutureHolds')||0 )); - $enddate = format_date($d); + $enddate = $today + DateTime::Duration->new( days => C4::Context->preference('ConfirmFutureHolds') || 0 ); } my @reservedata; if ( $run_report ) { my $dbh = C4::Context->dbh; my $sqldatewhere = ""; - $debug and warn format_date_in_iso($startdate) . "\n" . format_date_in_iso($enddate); + my $startdate_iso = output_pref({ dt => $startdate, dateformat => 'iso', dateonly => 1 }); + my $enddate_iso = output_pref({ dt => $enddate, dateformat => 'iso', dateonly => 1 }); + $debug and warn $startdate_iso. "\n" . $enddate_iso; my @query_params = (); - if ($startdate) { + if ($startdate_iso) { $sqldatewhere .= " AND reservedate >= ?"; - push @query_params, format_date_in_iso($startdate); + push @query_params, $startdate_iso; } - if ($enddate) { + if ($enddate_iso) { $sqldatewhere .= " AND reservedate <= ?"; - push @query_params, format_date_in_iso($enddate); + push @query_params, $enddate_iso; } my $strsth = "SELECT min(reservedate) as l_reservedate, reserves.borrowernumber as borrowernumber, GROUP_CONCAT(DISTINCT items.holdingbranch - ORDER BY items.itemnumber SEPARATOR '
') l_holdingbranch, + ORDER BY items.itemnumber SEPARATOR '|') l_holdingbranch, reserves.biblionumber, reserves.branchcode, GROUP_CONCAT(DISTINCT reserves.branchcode ORDER BY items.itemnumber SEPARATOR ', ') l_branch, items.holdingbranch as branch, GROUP_CONCAT(DISTINCT items.itype - ORDER BY items.itemnumber SEPARATOR '
') l_itype, + ORDER BY items.itemnumber SEPARATOR '|') l_itype, GROUP_CONCAT(DISTINCT items.location - ORDER BY items.itemnumber SEPARATOR '
') l_location, + ORDER BY items.itemnumber SEPARATOR '|') l_location, GROUP_CONCAT(DISTINCT items.itemcallnumber ORDER BY items.itemnumber SEPARATOR '
') l_itemcallnumber, GROUP_CONCAT(DISTINCT items.enumchron @@ -177,7 +167,7 @@ if ( $run_report ) { biblionumber => $data->{biblionumber}, statusw => ( $data->{found} eq "W" ), statusf => ( $data->{found} eq "F" ), - holdingbranch => $data->{l_holdingbranch}, + holdingbranches => [split('\|', $data->{l_holdingbranch})],, branch => $data->{l_branch}, itemcallnumber => $data->{l_itemcallnumber}, enumchron => $data->{l_enumchron}, @@ -187,8 +177,8 @@ if ( $run_report ) { count => $data->{icount}, rcount => $data->{rcount}, pullcount => $data->{icount} <= $data->{rcount} ? $data->{icount} : $data->{rcount}, - itype => $data->{l_itype}, - location => $data->{l_location}, + itypes => [split('\|', $data->{l_itype})], + locations => [split('\|', $data->{l_location})], } ); } @@ -196,14 +186,14 @@ if ( $run_report ) { } $template->param( - todaysdate => $todaysdate, + todaysdate => $today, from => $startdate, to => $enddate, run_report => $run_report, reserveloop => \@reservedata, "BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1, - HoldsToPullStartDate=> C4::Context->preference('HoldsToPullStartDate')||TWO_DAYS, - HoldsToPullEndDate => C4::Context->preference('ConfirmFutureHolds')||0, + HoldsToPullStartDate => C4::Context->preference('HoldsToPullStartDate') || PULL_INTERVAL, + HoldsToPullEndDate => C4::Context->preference('ConfirmFutureHolds') || 0, ); output_html_with_http_headers $input, $cookie, $template->output;