- my $cell;
- if (C4::Context->preference("serialsadditems")){
- #Create New empty item
- $cell =
- PrepareItemrecordDisplay( $serialdatalist[0]->{'biblionumber'} );
- }
- $cell->{'subscriptionid'}=$subscriptionid;
- $cell->{'itemid'} = "NNEW";
- $cell->{'serialid'} = "NEW";
- $cell->{'issuesatonce'} = 1;
- push @newserialloop,$cell;
- push @subscriptionloop, {'subscriptionid'=>$subscriptionid,
- 'abouttoexpire'=>abouttoexpire($subscriptionid),
- 'subscriptionexpired'=>HasSubscriptionExpired($subscriptionid),
- };
+ #Donot process subscriptionid twice if it was already processed.
+ next unless (defined($subscriptionid) && !$processedsubscriptionid{$subscriptionid});
+ my $cell;
+ if ($serialdatalist[0]->{'serialsadditems'}){
+ #Create New empty item
+ $cell =
+ PrepareItemrecordDisplay( $serialdatalist[0]->{'biblionumber'},'', GetSubscription($subscriptionid));
+ $cell->{serialsadditems} = 1;
+ }
+ $cell->{'subscriptionid'}=$subscriptionid;
+ $cell->{'itemid'} = "NNEW";
+ $cell->{'serialid'} = "NEW";
+ $cell->{'issuesatonce'} = 1;
+ push @newserialloop,$cell;
+ push @subscriptionloop, {'subscriptionid'=>$subscriptionid,
+ 'abouttoexpire'=>abouttoexpire($subscriptionid),
+ 'subscriptionexpired'=>HasSubscriptionExpired($subscriptionid),
+ };
+ $processedsubscriptionid{$subscriptionid}=1;