Bug 5510: prepend output with system name
[koha.git] / serials / serials-edit.pl
index 3e2a852..90f3281 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/perl
 
 # Copyright 2000-2002 Katipo Communications
+# Parts Copyright 2010 Biblibre
 #
 # This file is part of Koha.
 #
@@ -19,7 +20,7 @@
 
 =head1 NAME
 
-serials-recieve.pl
+serials-edit.pl
 
 =head1 Parameters
 
@@ -71,6 +72,7 @@ use C4::Koha;
 use C4::Output;
 use C4::Context;
 use C4::Serials;
+use List::MoreUtils qw/uniq/;
 
 my $query           = CGI->new();
 my $dbh             = C4::Context->dbh;
@@ -102,25 +104,27 @@ unless (@serialids) {
 }
 
 unless ( scalar(@serialids) ) {
-    my $string =
-      "serials-collection.pl?subscriptionid=" . join( ",", @subscriptionids );
+    my $string = "serials-collection.pl?subscriptionid=" . join( ",", uniq @subscriptionids );
     $string =~ s/,$//;
 
     print $query->redirect($string);
 }
+
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
-        template_name   => "serials/serials-edit.tmpl",
-        query           => $query,
-        type            => "intranet",
-        authnotrequired => 0,
-        flagsrequired   => { serials => 1 },
-        debug           => 1,
+       template_name   => "serials/serials-edit.tmpl",
+       query           => $query,
+       type            => "intranet",
+       authnotrequired => 0,
+       flagsrequired   => {serials => 'receive_serials'},
+       debug           => 1,
     }
 );
 
 my @serialdatalist;
 my %processedserialid;
+
+my $today = C4::Dates->new();
 foreach my $tmpserialid (@serialids) {
 
     #filtering serialid for duplication
@@ -130,8 +134,15 @@ foreach my $tmpserialid (@serialids) {
         && !$processedserialid{$tmpserialid} )
     {
         my $data = GetSerialInformation($tmpserialid);
-        $data->{publisheddate} = format_date( $data->{publisheddate} );
-        $data->{planneddate}   = format_date( $data->{planneddate} );
+        for my $datefield ( qw( publisheddate planneddate) ) {
+            if ($data->{$datefield} && $data->{$datefield}!~m/^00/) {
+                $data->{$datefield} = format_date( $data->{$datefield} );
+            }
+            else {
+                $data->{$datefield} = q{};
+            }
+        }
+        $data->{arriveddate}=$today->output('syspref');
         $data->{'editdisable'} = (
             (
                 HasSubscriptionExpired( $data->{subscriptionid} )
@@ -169,6 +180,8 @@ foreach my $subscriptionid (@subscriptionids) {
         $cell->{'itemid'}         = "NNEW";
         $cell->{'serialid'}       = "NEW";
         $cell->{'issuesatonce'}   = 1;
+        $cell->{arriveddate}=$today->output('syspref');
+
         push @newserialloop, $cell;
         push @subscriptionloop,
           {
@@ -194,7 +207,7 @@ if ( $op and $op eq 'serialchangestatus' ) {
                 ### FIXME if NewIssue is modified to use subscription biblionumber, then biblionumber would not be useful.
                 $newserial = NewIssue(
                     $serialseqs[$i],
-                    $subscriptionids[$i],
+                    $subscriptionids[0],
                     $serialdatalist[0]->{'biblionumber'},
                     $status[$i],
                     format_date_in_iso( $planneddates[$i] ),
@@ -357,14 +370,21 @@ if ( $op and $op eq 'serialchangestatus' ) {
         print $query->redirect($redirect);
     }
 }
+my $location = GetAuthorisedValues('LOC', $serialdatalist[0]->{'location'});
+my $locationlib;
+foreach (@$location) {
+    $locationlib = $_->{'lib'} if $_->{'selected'};
+}
 my $default_bib_view = get_default_view();
 
 $template->param(
     serialsadditems => $serialdatalist[0]->{'serialsadditems'},
+    callnumber      => $serialdatalist[0]->{'callnumber'},
     bibliotitle     => $bibdata->{'title'},
     biblionumber    => $serialdatalist[0]->{'biblionumber'},
     serialslist     => \@serialdatalist,
     default_bib_view => $default_bib_view,
+    location         => $locationlib,
 );
 output_html_with_http_headers $query, $cookie, $template->output;