Bug 23243: Restore filtering out historic expired subscriptions
authorMaxime Pelletier <pelletiermaxime@gmail.com>
Mon, 11 Aug 2014 14:53:01 +0000 (10:53 -0400)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 21 Apr 2021 13:25:07 +0000 (15:25 +0200)
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>
koha-tmpl/intranet-tmpl/prog/en/modules/serials/checkexpiration.tt
serials/checkexpiration.pl

index 6a5c935..0ec36ce 100644 (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>
 
         <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>
index 10d5dac..2b6f202 100755 (executable)
@@ -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,
     );
 }