=item op
op can be :
- * modsubscriptionhistory :to modify the subscription history
+ * modsubscriptionhistory :to modify the subscription history
* serialchangestatus :to modify the status of this subscription
=item subscriptionid
use strict;
+use warnings;
use CGI;
use C4::Auth;
use C4::Dates qw/format_date format_date_in_iso/;
my @subscriptionids = $query->param('subscriptionid');
my $op = $query->param('op');
if (scalar(@subscriptionids)==1 && index($subscriptionids[0],",")>0){
- @subscriptionids =split /,/,$subscriptionids[0];
+ @subscriptionids =split (/,/,$subscriptionids[0]);
}
my @errors;
my @errseq;
-my $redirectstring;
# If user comes from subscription details
unless (@serialids){
foreach my $subscriptionid (@subscriptionids){
unless (scalar(@serialids)){
my $string="serials-collection.pl?subscriptionid=".join(",",@subscriptionids);
$string=~s/,$//;
-# warn $string;
+# warn $string;
print $query->redirect($string);
}
my ($template, $loggedinuser, $cookie)
$data->{planneddate}=format_date($data->{planneddate});
$data->{'editdisable'}=((HasSubscriptionExpired($data->{subscriptionid})&& $data->{'status1'})||$data->{'cannotedit'});
push @serialdatalist,$data;
- $processedserialid{$tmpserialid}=1;
+ $processedserialid{$tmpserialid}=1;
}
my $bibdata=GetBiblioData($serialdatalist[0]->{'biblionumber'});
next unless (defined($subscriptionid) && !$processedsubscriptionid{$subscriptionid});
my $cell;
if ($serialdatalist[0]->{'serialsadditems'}){
- #Create New empty item
+ #Create New empty item
$cell =
- PrepareItemrecordDisplay( $serialdatalist[0]->{'biblionumber'} );
+ PrepareItemrecordDisplay( $serialdatalist[0]->{'biblionumber'},'', GetSubscription($subscriptionid));
$cell->{serialsadditems} = 1;
}
$cell->{'subscriptionid'}=$subscriptionid;
'abouttoexpire'=>abouttoexpire($subscriptionid),
'subscriptionexpired'=>HasSubscriptionExpired($subscriptionid),
};
- $processedsubscriptionid{$subscriptionid}=1;
+ $processedsubscriptionid{$subscriptionid}=1;
}
$template->param(newserialloop=>\@newserialloop);
$template->param(subscriptions=>\@subscriptionloop);
-if ($op eq 'serialchangestatus') {
+if ($op and $op eq 'serialchangestatus') {
# my $sth = $dbh->prepare("select status from serial where serialid=?");
my $newserial;
for (my $i=0;$i<=$#serialids;$i++) {
#New Item
# if autoBarcode is set to 'incremental', calculate barcode...
- my ($barcodetagfield,$barcodetagsubfield) = &GetMarcFromKohaField("items.barcode");
+ my ($barcodetagfield,$barcodetagsubfield) = &GetMarcFromKohaField("items.barcode", GetFrameworkCode($serialdatalist[0]->{'biblionumber'}));
if (C4::Context->preference("autoBarcode") eq 'incremental' ) {
if (!$record->field($barcodetagfield)->subfield($barcodetagsubfield)) {
my $sth_barcode = $dbh->prepare("select max(abs(barcode)) from items");
}
}
# check for item barcode # being unique
- my $exists = GetItemnumberFromBarcode($record->subfield($barcodetagfield,$barcodetagsubfield)) if ($record->subfield($barcodetagfield,$barcodetagsubfield));
- # push @errors,"barcode_not_unique" if($exists);
+ my $exists;
+ if ($record->subfield($barcodetagfield,$barcodetagsubfield)) {
+ $exists = GetItemnumberFromBarcode($record->subfield($barcodetagfield,$barcodetagsubfield));
+ }
+ # push @errors,"barcode_not_unique" if($exists);
# if barcode exists, don't create, but report The problem.
- if ($exists){
- push @errors,"barcode_not_unique" if($exists);
- push @errseq,{"serialseq"=>$serialseqs[$index]};
+ if ($exists){
+ push @errors,"barcode_not_unique" if($exists);
+ push @errseq,{"serialseq"=>$serialseqs[$index]};
} else {
- my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$itemhash{$item}->{'bibnum'});
- AddItem2Serial($itemhash{$item}->{'serial'},$itemnumber);
+ my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$itemhash{$item}->{'bibnum'});
+ AddItem2Serial($itemhash{$item}->{'serial'},$itemnumber);
}
} else {
#modify item
}
}
}
-# ### FIXME this part of code is not very pretty. Nor is it very efficient... There MUST be a more perlish way to write it. But it works.
+# ### FIXME this part of code is not very pretty. Nor is it very efficient... There MUST be a more perlish way to write it. But it works.
# my $redirect ="serials-home.pl?";
# $redirect.=join("&",map{"serialseq=".$_} @serialseqs);
# $redirect.="&".join("&",map{"planneddate=".$_} @planneddates);
$template->param("Errors" => 1);
if (scalar(@errseq)>0){
$template->param("barcode_not_unique" => 1);
- $template->param('errseq'=>\@errseq);
- }
- } else {
+ $template->param('errseq'=>\@errseq);
+ }
+ } else {
my $redirect ="serials-collection.pl?";
my %hashsubscription;
foreach (@subscriptionids) {
}
$redirect.=join("&",map{"subscriptionid=".$_} sort keys %hashsubscription);
print $query->redirect("$redirect");
- }
+ }
}
$template->param(