Bug 5337: EAN management : Adds ean for various searches
[koha.git] / serials / serials-home.pl
index ae341ac..21b76e0 100755 (executable)
 # 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., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# 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.
 
-# $Id$
 
 =head1 NAME
 
@@ -41,46 +40,78 @@ this script is the main page for serials/
 
 =cut
 
-
 use strict;
+use warnings;
 use CGI;
 use C4::Auth;
 use C4::Serials;
 use C4::Output;
-use C4::Interface::CGI::Output;
 use C4::Context;
-use HTML::Template;
-
-my $query = new CGI;
-my $title = $query->param('title');
-my $ISSN = $query->param('ISSN');
-my $routing = $query->param('routing');
-my $searched = $query->param('searched');
+use C4::Branch;
+
+my $query        = new CGI;
+my $title        = $query->param('title_filter');
+my $ISSN         = $query->param('ISSN_filter');
+my $EAN          = $query->param('EAN_filter');
+my $routing      = $query->param('routing') || C4::Context->preference("RoutingSerials");
+my $searched     = $query->param('searched');
 my $biblionumber = $query->param('biblionumber');
-my @subscriptions = GetSubscriptions($title,$ISSN,$biblionumber);
-my ($template, $loggedinuser, $cookie)
-= get_template_and_user({template_name => "serials/serials-home.tmpl",
-                               query => $query,
-                               type => "intranet",
-                               authnotrequired => 0,
-                               flagsrequired => {catalogue => 1},
-                               debug => 1,
-                               });
+
+my @serialseqs = $query->param('serialseq');
+my @planneddates = $query->param('planneddate');
+my @publisheddates = $query->param('publisheddate');
+my @status = $query->param('status');
+my @notes = $query->param('notes');
+
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+    {
+        template_name   => "serials/serials-home.tmpl",
+        query           => $query,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { serials => '*' },
+        debug           => 1,
+    }
+);
+
+if (@serialseqs){
+  my @information;
+  my $index;
+  foreach my $seq (@serialseqs){
+    if ($seq){
+      ### FIXME  This limitation that a serial must be given a title may not be very efficient for some library who do not update serials titles.
+      push @information,
+        { serialseq=>$seq,
+          publisheddate=>$publisheddates[$index],
+          planneddate=>$planneddates[$index],
+          notes=>$notes[$index],
+          status=>$status[$index]
+        }
+    }
+    $index++;
+  }
+  $template->param('information'=>\@information);
+}
+my @subscriptions;
+if ($searched) {
+    @subscriptions = GetSubscriptions( $title, $ISSN, $EAN, $biblionumber );
+}
 
 # to toggle between create or edit routing list options
-if($routing){ 
-    for(my $i=0;$i<@subscriptions;$i++){
-       my $checkrouting = check_routing($subscriptions[$i]->{'subscriptionid'});
-       $subscriptions[$i]->{'routingedit'} = $checkrouting;
-       # warn "check $checkrouting";
+if ($routing) {
+    for my $subscription ( @subscriptions) {
+        $subscription->{routingedit} = check_routing( $subscription->{subscriptionid} );
+        $subscription->{branchname} = GetBranchName ( $subscription->{branchcode} );
     }
 }
 
 $template->param(
-       subscriptions => \@subscriptions,
-       title => $title,
-       ISSN => $ISSN,
-        done_searched => $searched,
-        routing => $routing,
-       );
+    subscriptions => \@subscriptions,
+    title_filter  => $title,
+    ISSN_filter   => $ISSN,
+    done_searched => $searched,
+    routing       => $routing,
+    (uc(C4::Context->preference("marcflavour"))) => 1
+);
+
 output_html_with_http_headers $query, $cookie, $template->output;