Bug 29609: Centralized code to build the link to a biblio detail page
[srvgit] / serials / checkexpiration.pl
index 9f1ff14..e253f18 100755 (executable)
@@ -42,28 +42,24 @@ The date to filter on.
 
 =cut
 
-use strict;
-use warnings;
+use Modern::Perl;
 use CGI qw ( -utf8 );
-use C4::Auth;
-use C4::Serials; # GetExpirationDate
-use C4::Branch;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Serials qw( SearchSubscriptions GetExpirationDate );
+use C4::Output qw( output_html_with_http_headers );
 use C4::Context;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
 
 use DateTime;
 
-my $query = new CGI;
+my $query = CGI->new;
 
 my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user (
     {
         template_name   => "serials/checkexpiration.tt",
         query           => $query,
         type            => "intranet",
-        authnotrequired => 0,
         flagsrequired   => { serials => 'check_expiration' },
-        debug           => 1,
     }
 );
 
@@ -71,7 +67,8 @@ my $title = $query->param('title');
 my $issn  = $query->param('issn');
 my $branch = $query->param('branch');
 my $date = $query->param('date');
-$date = eval { dt_from_string( $query->param('date') ) } if $date;
+$date = eval { dt_from_string( scalar $query->param('date') ) } if $date;
+my $showhistoricexpired = $query->param('showhistoricexpired');
 
 if ($date) {
     my @subscriptions = SearchSubscriptions({ title => $title, issn => $issn, orderby => 'title' });
@@ -96,35 +93,38 @@ 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( $expirationdate_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,
+        searched                                                           => 1,
     );
 }
 
-my $branches_loop;
+my $can_change_library;;
 if (  !C4::Context->preference("IndependentBranches")
     or C4::Context->IsSuperLibrarian()
     or ( ref $flags->{serials}  and $flags->{serials}->{superserials} )
     or ( !ref $flags->{serials} and $flags->{serials} == 1 ) )
 {
-    $branches_loop = C4::Branch::GetBranchesLoop( $branch );
+    $can_change_library = 1;
 }
 
 $template->param (
     (uc(C4::Context->preference("marcflavour"))) => 1,
-    branches_loop   => $branches_loop,
+    can_change_library => $can_change_library,
+    branch => $branch,
 );
 
 output_html_with_http_headers $query, $cookie, $template->output;