Bug 23243: Restore filtering out historic expired subscriptions

The 'Check Expiration' page in Serials is now hardcoded to display all
expired subscriptions before the entered date. This patch restores the
ability to limit the results to just those expiring between 'today'
and the date entered.

Original code taken from bug 6968 autored by Maxime Pelletier, rebased
by Charles Farmer and then moved to a new report and rebased again by
Martin Renvoize.

Test plan:
1) Without the patch any results after a search from this page will
   result in matches both before after todays date (but before the date
   you entered).
2) With the patch you should see a 'Show historic expirations' checkbox
   which will allow you to limit the results to just those that expire
   between the date you enter and today.

Sponsored-by: CCSR
Rescued-by: Charles Farmer <charles.farmer@inlibro.com>
Rescued-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Maxime Pelletier 2014-08-11 10:53:01 -04:00 committed by Jonathan Druart
parent e07c9e9f06
commit eeca29afed
2 changed files with 20 additions and 9 deletions

View File

@ -38,6 +38,7 @@
<legend>Filter results:</legend>
<ol>
<ol>
<li><label for="title">Title:</label>
<input id="title" type="text" name="title" size="15" value="[% title | html %]" /></li>
@ -57,7 +58,13 @@
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div></li>
</ol>
<li>
<label for="showhistoricexpired">Include historic expirations:</label>
<input id="showhistoricexpired" type="checkbox" name="showhistoricexpired"
[% IF ( showhistoricexpired ) %] checked="checked" [% END %]/>
</li>
</ol>
</fieldset>
<fieldset class="action"><input type="submit" value="Search" /></fieldset>
</form>

View File

@ -69,6 +69,7 @@ my $issn = $query->param('issn');
my $branch = $query->param('branch');
my $date = $query->param('date');
$date = eval { dt_from_string( scalar $query->param('date') ) } if $date;
my $showhistoricexpired = $query->param('showhistoryexpired');
if ($date) {
my @subscriptions = SearchSubscriptions({ title => $title, issn => $issn, orderby => 'title' });
@ -93,20 +94,23 @@ if ($date) {
next if $subscription->{cannotedit};
my $expirationdate_dt = dt_from_string( $expirationdate, 'iso' );
my $today_dt = dt_from_string();
if ( DateTime->compare( $date, $expirationdate_dt ) == 1
&& ( $showhistoricexpired || DateTime->compare( $expiration_dt, $today_dt ) == 1 )
&& ( !$branch || ( $subscription->{'branchcode'} eq $branch ) ) ) {
push @subscriptions_loop, $subscription;
}
}
$template->param (
title => $title,
issn => $issn,
numsubscription => scalar @subscriptions_loop,
date => $date,
subscriptions_loop => \@subscriptions_loop,
"BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
searched => 1,
$template->param(
title => $title,
issn => $issn,
showhistoricexpired => $showhistoricexpired,
numsubscription => scalar @subscriptions_loop,
date => $date,
subscriptions_loop => \@subscriptions_loop,
"BiblioDefaultView" . C4::Context->preference("BiblioDefaultView") => 1,
searched => 1,
);
}