Bug #6049 - Add a filter by date in overdue.pl

Signed-off-by: Christophe Croullebois <christophe.croullebois@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
Alex Arnaud 2011-04-06 10:20:59 +02:00 committed by Chris Cormack
parent ac9e9cf809
commit 4268fd376f
2 changed files with 40 additions and 2 deletions

View file

@ -27,7 +27,7 @@ use CGI qw(-oldstyle_urls);
use C4::Auth;
use C4::Branch;
use C4::Debug;
use C4::Dates qw/format_date/;
use C4::Dates qw/format_date format_date_in_iso/;
use Date::Calc qw/Today/;
use Text::CSV_XS;
@ -40,6 +40,8 @@ my $itemtypefilter = $input->param('itemtype') || '';
my $borflagsfilter = $input->param('borflag') || '';
my $branchfilter = $input->param('branch') || '';
my $op = $input->param('op') || '';
my $dateduefrom = format_date_in_iso($input->param( 'dateduefrom' )) || '';
my $datedueto = format_date_in_iso($input->param( 'datedueto' )) || '';
my $isfiltered = $op =~ /apply/i && $op =~ /filter/i;
my $noreport = C4::Context->preference('FilterBeforeOverdueReport') && ! $isfiltered && $op ne "csv";
@ -209,7 +211,11 @@ $template->param(
patron_attr_filter_loop => \@patron_attr_filter_loop,
borname => $bornamefilter,
order => $order,
showall => $showall);
showall => $showall,
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
dateduefrom => $input->param( 'dateduefrom' ) || '',
datedueto => $input->param( 'datedueto' ) || '',
);
if ($noreport) {
# la de dah ... page comes up presto-quicko
@ -262,6 +268,8 @@ if ($noreport) {
$strsth.=" AND biblioitems.itemtype = '" . $itemtypefilter . "' " if $itemtypefilter;
$strsth.=" AND borrowers.flags = '" . $borflagsfilter . "' " if $borflagsfilter;
$strsth.=" AND borrowers.branchcode = '" . $branchfilter . "' " if $branchfilter;
$strsth.=" AND date_due < '" . $datedueto . "' " if $datedueto;
$strsth.=" AND date_due > '" . $dateduefrom . "' " if $dateduefrom;
# restrict patrons (borrowers) to those matching the patron attribute filter(s), if any
my $bnlist = $have_pattr_filter_data ? join(',',keys %borrowernumber_to_attributes) : '';
$strsth =~ s/WHERE 1=1/WHERE 1=1 AND borrowers.borrowernumber IN ($bnlist)/ if $bnlist;

View file

@ -69,6 +69,7 @@
<style type="text/css">
.sql {display:none;}
</style>
<!-- TMPL_INCLUDE NAME="calendar.inc" -->
</head>
<body>
<!-- TMPL_INCLUDE NAME="header.inc" -->
@ -137,6 +138,35 @@
<fieldset class="brief">
<h4>Filter On:</h4>
<ol>
<li style="border: dashed; border-width:1px;">Date due:
<label for="dateduefrom">From:
<img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="dateduefrom_button" alt="Show Calendar" />
</label>
<input type="text" id="dateduefrom" name="dateduefrom" size="20" value="<!-- TMPL_VAR NAME="dateduefrom" -->" />
<script language="JavaScript" type="text/javascript">
Calendar.setup(
{
inputField : "dateduefrom",
ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
button : "dateduefrom_button"
}
);
</script>
<label for="datedueto">To:
<img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="datedueto_button" alt="Show Calendar" />
</label>
<input type="text" id="datedueto" name="datedueto" size="20" value="<!-- TMPL_VAR NAME="datedueto" -->" />
<script language="JavaScript" type="text/javascript">
Calendar.setup(
{
inputField : "datedueto",
ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
button : "datedueto_button"
}
);
</script>
</li>
<li><label>Name or cardnumber:</label><input type="text" name="borname" value="<!--TMPL_VAR Name="borname" escape="html" -->" /></li>
<li><label>Patron category:</label><select name="borcat" id="borcat"><option value="">Any</option>
<!-- TMPL_LOOP name="borcatloop" -->