| Lines 90-109
          my @errseq;
      
      
        Link Here | 
        
          | 90 |  | 90 |  | 
        
          | 91 | # If user comes from subscription details | 91 | # If user comes from subscription details | 
        
          | 92 | unless (@serialids) { | 92 | unless (@serialids) { | 
          
            
              | 93 |     foreach my $subscriptionid (@subscriptionids) { | 93 |     my $serstatus = $query->param('serstatus'); | 
            
              | 94 |         my $serstatus = $query->param('serstatus'); | 94 |     if ($serstatus) { | 
            
              | 95 |         if ($serstatus) { | 95 |         foreach my $subscriptionid (@subscriptionids) { | 
        
          | 96 |             my @tmpser = GetSerials2( $subscriptionid, $serstatus ); | 96 |             my @tmpser = GetSerials2( $subscriptionid, $serstatus ); | 
          
            
              | 97 |             foreach (@tmpser) { | 97 |             push @serialids, map { $_->{serialid} } @tmpser; | 
            
              | 98 |                 push @serialids, $_->{'serialid'}; |  |  | 
            
              | 99 |             } | 
        
          | 100 |         } | 98 |         } | 
        
          | 101 |     } | 99 |     } | 
        
          | 102 | } | 100 | } | 
        
          | 103 |  | 101 |  | 
          
            
              | 104 | unless ( scalar(@serialids) ) { | 102 | unless ( @serialids ) { | 
        
          | 105 |     my $string = | 103 |     my $string = | 
          
            
              | 106 |       "serials-collection.pl?subscriptionid=" . join( ",", @subscriptionids ); | 104 |       'serials-collection.pl?subscriptionid=' . join ',', uniq @subscriptionids; | 
        
          | 107 |     $string =~ s/,$//; | 105 |     $string =~ s/,$//; | 
        
          | 108 |  | 106 |  | 
        
          | 109 |     print $query->redirect($string); | 107 |     print $query->redirect($string); | 
  
    | Lines 111-122
          unless ( scalar(@serialids) ) {
      
      
        Link Here | 
        
          | 111 |  | 109 |  | 
        
          | 112 | my ( $template, $loggedinuser, $cookie ) = get_template_and_user( | 110 | my ( $template, $loggedinuser, $cookie ) = get_template_and_user( | 
        
          | 113 |     { | 111 |     { | 
          
            
              | 114 | 	template_name   => "serials/serials-edit.tmpl", | 112 |         template_name   => 'serials/serials-edit.tmpl', | 
            
              | 115 | 	query           => $query, | 113 |         query           => $query, | 
            
              | 116 | 	type            => "intranet", | 114 |         type            => 'intranet', | 
            
              | 117 | 	authnotrequired => 0, | 115 |         authnotrequired => 0, | 
            
              | 118 | 	flagsrequired   => {serials => 'receive_serials'}, | 116 |         flagsrequired   => { serials => 1 }, | 
            
              | 119 | 	debug           => 1, | 117 |         debug           => 1, | 
        
          | 120 |     } | 118 |     } | 
        
          | 121 | ); | 119 | ); | 
        
          | 122 |  | 120 |  | 
  
    | Lines 124-159
          my @serialdatalist;
      
      
        Link Here | 
        
          | 124 | my %processedserialid; | 122 | my %processedserialid; | 
        
          | 125 |  | 123 |  | 
        
          | 126 | my $today = C4::Dates->new(); | 124 | my $today = C4::Dates->new(); | 
          
            
              | 127 | foreach my $tmpserialid (@serialids) { | 125 | foreach my $serialid (@serialids) { | 
        
          | 128 |  | 126 |  | 
        
          | 129 |     #filtering serialid for duplication | 127 |     #filtering serialid for duplication | 
        
          | 130 |     #NEW serial should appear only once and are created afterwards | 128 |     #NEW serial should appear only once and are created afterwards | 
          
            
              | 131 |     if (   defined($tmpserialid) | 129 |     if (   $serialid | 
            
              | 132 |         && $tmpserialid =~ /^[0-9]+$/ | 130 |         && $serialid =~ /^[0-9]+$/ | 
            
              | 133 |         && !$processedserialid{$tmpserialid} ) | 131 |         && !$processedserialid{$serialid} ) | 
        
          | 134 |     { | 132 |     { | 
          
            
              | 135 |         my $data = GetSerialInformation($tmpserialid); | 133 |         my $serinfo = GetSerialInformation($serialid); #TODO duplicates work done by GetSerials2 above | 
            
              | 136 |         for my $datefield ( qw( publisheddate planneddate) ) { | 134 |         for my $d ( qw( publisheddate planneddate )){ | 
            
              | 137 |             if ($data->{$datefield} && $data->{$datefield}!~m/^00/) { | 135 |             if ( $serinfo->{$d} =~m/^00/ ) { | 
            
              | 138 |                 $data->{$datefield} = format_date( $data->{$datefield} ); | 136 |                 $serinfo->{$d} = q{}; | 
        
          | 139 |             } | 137 |             } | 
        
          | 140 |             else { | 138 |             else { | 
          
            
              | 141 |                 $data->{$datefield} = q{}; | 139 |                 $serinfo->{$d} = format_date( $serinfo->{$d} ); | 
        
          | 142 |             } | 140 |             } | 
        
          | 143 |         } | 141 |         } | 
          
            
              | 144 |         $data->{arriveddate}=$today->output('syspref'); | 142 |         $serinfo->{arriveddate}=$today->output('syspref'); | 
            
              | 145 |         $data->{'editdisable'} = ( | 143 |  | 
            
              |  |  | 144 |         $serinfo->{'editdisable'} = ( | 
        
          | 146 |             ( | 145 |             ( | 
          
            
              | 147 |                 HasSubscriptionExpired( $data->{subscriptionid} ) == 1 | 146 |                 HasSubscriptionExpired( $serinfo->{subscriptionid} ) | 
            
              | 148 |                   && $data->{'status1'} | 147 |                 && $serinfo->{'status1'} | 
        
          | 149 |             ) | 148 |             ) | 
          
            
              | 150 |               || $data->{'cannotedit'} | 149 |             || $serinfo->{'cannotedit'} | 
        
          | 151 |         ); | 150 |         ); | 
          
            
              | 152 |         push @serialdatalist, $data; | 151 |         push @serialdatalist, $serinfo; | 
            
              | 153 |         $processedserialid{$tmpserialid} = 1; | 152 |         $processedserialid{$serialid} = 1; | 
        
          | 154 |     } | 153 |     } | 
        
          | 155 | } | 154 | } | 
          
            
              | 156 | my $bibdata = GetBiblioData( $serialdatalist[0]->{'biblionumber'} ); | 155 | my $biblio = GetBiblioData( $serialdatalist[0]->{'biblionumber'} ); | 
        
          | 157 |  | 156 |  | 
        
          | 158 | my @newserialloop; | 157 | my @newserialloop; | 
        
          | 159 | my @subscriptionloop; | 158 | my @subscriptionloop; | 
  
    | Lines 163-170
          my %processedsubscriptionid;
      
      
        Link Here | 
        
          | 163 | foreach my $subscriptionid (@subscriptionids) { | 162 | foreach my $subscriptionid (@subscriptionids) { | 
        
          | 164 |  | 163 |  | 
        
          | 165 |     #Do not process subscriptionid twice if it was already processed. | 164 |     #Do not process subscriptionid twice if it was already processed. | 
          
            
              | 166 |     if ( defined($subscriptionid) | 165 |     if ( $subscriptionid && !$processedsubscriptionid{$subscriptionid} ) | 
            
              | 167 |         && !$processedsubscriptionid{$subscriptionid} ) |  |  | 
        
          | 168 |     { | 166 |     { | 
        
          | 169 |         my $cell; | 167 |         my $cell; | 
        
          | 170 |         if ( $serialdatalist[0]->{'serialsadditems'} ) { | 168 |         if ( $serialdatalist[0]->{'serialsadditems'} ) { | 
  
    | Lines 176-183
          foreach my $subscriptionid (@subscriptionids) {
      
      
        Link Here | 
        
          | 176 |             $cell->{serialsadditems} = 1; | 174 |             $cell->{serialsadditems} = 1; | 
        
          | 177 |         } | 175 |         } | 
        
          | 178 |         $cell->{'subscriptionid'} = $subscriptionid; | 176 |         $cell->{'subscriptionid'} = $subscriptionid; | 
          
            
              | 179 |         $cell->{'itemid'}         = "NNEW"; | 177 |         $cell->{'itemid'}         = 'NNEW'; | 
            
              | 180 |         $cell->{'serialid'}       = "NEW"; | 178 |         $cell->{'serialid'}       = 'NEW'; | 
        
          | 181 |         $cell->{'issuesatonce'}   = 1; | 179 |         $cell->{'issuesatonce'}   = 1; | 
        
          | 182 |         $cell->{arriveddate}=$today->output('syspref'); | 180 |         $cell->{arriveddate}=$today->output('syspref'); | 
        
          | 183 |  | 181 |  | 
  
    | Lines 198-205
          if ( $op and $op eq 'serialchangestatus' ) {
      
      
        Link Here | 
        
          | 198 |  | 196 |  | 
        
          | 199 |     my $newserial; | 197 |     my $newserial; | 
        
          | 200 |     for ( my $i = 0 ; $i <= $#serialids ; $i++ ) { | 198 |     for ( my $i = 0 ; $i <= $#serialids ; $i++ ) { | 
            
              |  |  | 199 |         my ($plan_date, $pub_date); | 
            
              | 200 |  | 
            
              | 201 |         if (defined $planneddates[$i] && $planneddates[$i] ne 'XXX') { | 
            
              | 202 |             $plan_date = format_date_in_iso( $planneddates[$i] ); | 
            
              | 203 |         } | 
            
              | 204 |         if (defined $publisheddates[$i] && $publisheddates[$i] ne 'XXX') { | 
            
              | 205 |             $pub_date = format_date_in_iso( $publisheddates[$i] ); | 
            
              | 206 |         } | 
        
          | 201 |  | 207 |  | 
          
            
              | 202 |         if ( $serialids[$i] && $serialids[$i] eq "NEW" ) { | 208 |         if ( $serialids[$i] && $serialids[$i] eq 'NEW' ) { | 
        
          | 203 |             if ( $serialseqs[$i] ) { | 209 |             if ( $serialseqs[$i] ) { | 
        
          | 204 |  | 210 |  | 
        
          | 205 |             #IF newserial was provided a name Then we have to create a newSerial | 211 |             #IF newserial was provided a name Then we have to create a newSerial | 
  
    | Lines 209-216
          if ( $op and $op eq 'serialchangestatus' ) {
      
      
        Link Here | 
        
          | 209 |                     $subscriptionids[0], | 215 |                     $subscriptionids[0], | 
        
          | 210 |                     $serialdatalist[0]->{'biblionumber'}, | 216 |                     $serialdatalist[0]->{'biblionumber'}, | 
        
          | 211 |                     $status[$i], | 217 |                     $status[$i], | 
          
            
              | 212 |                     format_date_in_iso( $planneddates[$i] ), | 218 |                     $plan_date, | 
            
              | 213 |                     format_date_in_iso( $publisheddates[$i] ), | 219 |                     $pub_date, | 
        
          | 214 |                     $notes[$i] | 220 |                     $notes[$i] | 
        
          | 215 |                 ); | 221 |                 ); | 
        
          | 216 |             } | 222 |             } | 
  
    | Lines 219-226
          if ( $op and $op eq 'serialchangestatus' ) {
      
      
        Link Here | 
        
          | 219 |             ModSerialStatus( | 225 |             ModSerialStatus( | 
        
          | 220 |                 $serialids[$i], | 226 |                 $serialids[$i], | 
        
          | 221 |                 $serialseqs[$i], | 227 |                 $serialseqs[$i], | 
          
            
              | 222 |                 format_date_in_iso( $planneddates[$i] ), | 228 |                 $plan_date, | 
            
              | 223 |                 format_date_in_iso( $publisheddates[$i] ), | 229 |                 $pub_date, | 
        
          | 224 |                 $status[$i], | 230 |                 $status[$i], | 
        
          | 225 |                 $notes[$i] | 231 |                 $notes[$i] | 
        
          | 226 |             ); | 232 |             ); | 
  
    | Lines 299-312
          if ( $op and $op eq 'serialchangestatus' ) {
      
      
        Link Here | 
        
          | 299 |                             $serialdatalist[0]->{'biblionumber'} | 305 |                             $serialdatalist[0]->{'biblionumber'} | 
        
          | 300 |                         ) | 306 |                         ) | 
        
          | 301 |                       ); | 307 |                       ); | 
          
            
              | 302 |                     if ( C4::Context->preference("autoBarcode") eq | 308 |                     if ( C4::Context->preference('autoBarcode') eq | 
        
          | 303 |                         'incremental' ) | 309 |                         'incremental' ) | 
        
          | 304 |                     { | 310 |                     { | 
        
          | 305 |                         if ( !$bib_record->field($barcodetagfield) | 311 |                         if ( !$bib_record->field($barcodetagfield) | 
        
          | 306 |                             ->subfield($barcodetagsubfield) ) | 312 |                             ->subfield($barcodetagsubfield) ) | 
        
          | 307 |                         { | 313 |                         { | 
        
          | 308 |                             my $sth_barcode = $dbh->prepare( | 314 |                             my $sth_barcode = $dbh->prepare( | 
          
            
              | 309 |                                 "select max(abs(barcode)) from items"); | 315 |                                 'select max(abs(barcode)) from items'); | 
        
          | 310 |                             $sth_barcode->execute; | 316 |                             $sth_barcode->execute; | 
        
          | 311 |                             my ($newbarcode) = $sth_barcode->fetchrow; | 317 |                             my ($newbarcode) = $sth_barcode->fetchrow; | 
        
          | 312 |  | 318 |  | 
  
    | Lines 364-371
          if ( $op and $op eq 'serialchangestatus' ) {
      
      
        Link Here | 
        
          | 364 |         } | 370 |         } | 
        
          | 365 |     } | 371 |     } | 
        
          | 366 |     else { | 372 |     else { | 
          
            
              | 367 |         my $redirect = "serials-collection.pl?"; | 373 |         my $redirect = 'serials-collection.pl?'; | 
            
              | 368 |         $redirect .= join( '&', map { "subscriptionid=" . $_ } sort @subscriptionids );# ID The sort necessary | 374 |         $redirect .= join( '&', map { 'subscriptionid=' . $_ } @subscriptionids ); | 
        
          | 369 |         print $query->redirect($redirect); | 375 |         print $query->redirect($redirect); | 
        
          | 370 |     } | 376 |     } | 
        
          | 371 | } | 377 | } | 
  
    | Lines 373-379
          my $default_bib_view = get_default_view();
      
      
        Link Here | 
        
          | 373 |  | 379 |  | 
        
          | 374 | $template->param( | 380 | $template->param( | 
        
          | 375 |     serialsadditems => $serialdatalist[0]->{'serialsadditems'}, | 381 |     serialsadditems => $serialdatalist[0]->{'serialsadditems'}, | 
          
            
              | 376 |     bibliotitle     => $bibdata->{'title'}, | 382 |     callnumber	     => $serialdatalist[0]->{'callnumber'}, | 
            
              |  |  | 383 |     bibliotitle     => $biblio->{'title'}, | 
        
          | 377 |     biblionumber    => $serialdatalist[0]->{'biblionumber'}, | 384 |     biblionumber    => $serialdatalist[0]->{'biblionumber'}, | 
        
          | 378 |     serialslist     => \@serialdatalist, | 385 |     serialslist     => \@serialdatalist, | 
        
          | 379 |     default_bib_view => $default_bib_view, | 386 |     default_bib_view => $default_bib_view, | 
            
              | 380 | -  |  |  |