diff --git a/serials/subscription-numberpatterns.pl b/serials/subscription-numberpatterns.pl index a9bc998835..1669b4d66f 100755 --- a/serials/subscription-numberpatterns.pl +++ b/serials/subscription-numberpatterns.pl @@ -43,6 +43,12 @@ use C4::Serials::Numberpattern qw( ); use C4::Serials::Frequency qw( GetSubscriptionFrequencies ); +my @NUMBERPATTERN_FIELDS = qw/ + label description numberingmethod displayorder + label1 label2 label3 add1 add2 add3 every1 every2 every3 + setto1 setto2 setto3 whenmorethan1 whenmorethan2 whenmorethan3 + numbering1 numbering2 numbering3 /; + my $input = CGI->new; my ($template, $loggedinuser, $cookie, $flags) = get_template_and_user( { template_name => 'serials/subscription-numberpatterns.tt', @@ -56,12 +62,9 @@ my $op = $input->param('op'); if($op && $op eq 'savenew') { my $label = $input->param('label'); my $numberpattern; - foreach(qw/ label description numberingmethod displayorder - label1 label2 label3 add1 add2 add3 every1 every2 every3 - setto1 setto2 setto3 whenmorethan1 whenmorethan2 whenmorethan3 - numbering1 numbering2 numbering3 /) { + foreach(@NUMBERPATTERN_FIELDS) { $numberpattern->{$_} = $input->param($_); - if($numberpattern->{$_} and $numberpattern->{$_} eq '') { + if(defined $numberpattern->{$_} and $numberpattern->{$_} eq '') { $numberpattern->{$_} = undef; } } @@ -86,11 +89,11 @@ if($op && $op eq 'savenew') { } } if($mod_ok) { - foreach(qw/ id label description numberingmethod displayorder - label1 label2 label3 add1 add2 add3 every1 every2 every3 - setto1 setto2 setto3 whenmorethan1 whenmorethan2 whenmorethan3 - numbering1 numbering2 numbering3 /) { + foreach(@NUMBERPATTERN_FIELDS) { $numberpattern->{$_} = $input->param($_) || undef; + if(defined $numberpattern->{$_} and $numberpattern->{$_} eq '') { + $numberpattern->{$_} = undef; + } } ModSubscriptionNumberpattern($numberpattern); } else {