my $frequencyid = $input->param('frequency');
my $firstacquidate = $input->param('firstacquidate');
my $nextacquidate = $input->param('nextacquidate');
-my $enddate = $input->param('enddate');
+my $enddate = $input->param('to');
my $subtype = $input->param('subtype');
my $sublength = $input->param('sublength');
my $custompattern = $input->param('custompattern');
-my $frequency = GetSubscriptionFrequency($frequencyid);
+
+my $frequency;
+if ( $frequencyid eq 'mana' ) {
+ $frequency = {
+ 'id' => undef,
+ 'displayorder' => undef,
+ 'description' => scalar $input->param('sfdescription') // '',
+ 'unitsperissue' => scalar $input->param('unitsperissue') // '',
+ 'issuesperunit' => scalar $input->param('issuesperunit') // '',
+ 'unit' => scalar $input->param('unit') // ''
+ };
+}
+else {
+ $frequency = GetSubscriptionFrequency($frequencyid);
+}
my %pattern = (
- numberingmethod => $input->param('numberingmethod') // '',
- numbering1 => $input->param('numbering1') // '',
- numbering2 => $input->param('numbering2') // '',
- numbering3 => $input->param('numbering3') // '',
- add1 => $input->param('add1') // '',
- add2 => $input->param('add2') // '',
- add3 => $input->param('add3') // '',
- whenmorethan1 => $input->param('whenmorethan1') // '',
- whenmorethan2 => $input->param('whenmorethan2') // '',
- whenmorethan3 => $input->param('whenmorethan3') // '',
- setto1 => $input->param('setto1') // '',
- setto2 => $input->param('setto2') // '',
- setto3 => $input->param('setto3') // '',
- every1 => $input->param('every1') // '',
- every2 => $input->param('every2') // '',
- every3 => $input->param('every3') // '',
+ numberingmethod => scalar $input->param('numberingmethod') // '',
+ numbering1 => scalar $input->param('numbering1') // '',
+ numbering2 => scalar $input->param('numbering2') // '',
+ numbering3 => scalar $input->param('numbering3') // '',
+ add1 => scalar $input->param('add1') // '',
+ add2 => scalar $input->param('add2') // '',
+ add3 => scalar $input->param('add3') // '',
+ whenmorethan1 => scalar $input->param('whenmorethan1') // '',
+ whenmorethan2 => scalar $input->param('whenmorethan2') // '',
+ whenmorethan3 => scalar $input->param('whenmorethan3') // '',
+ setto1 => scalar $input->param('setto1') // '',
+ setto2 => scalar $input->param('setto2') // '',
+ setto3 => scalar $input->param('setto3') // '',
+ every1 => scalar $input->param('every1') // '',
+ every2 => scalar $input->param('every2') // '',
+ every3 => scalar $input->param('every3') // '',
);
$firstacquidate = eval { output_pref( { str => $firstacquidate, dateonly => 1, dateformat => 'iso' } ); }
my $date = $nextacquidate;
my %subscription = (
- locale => $input->param('locale') // '',
- lastvalue1 => $input->param('lastvalue1') // '',
- lastvalue2 => $input->param('lastvalue2') // '',
- lastvalue3 => $input->param('lastvalue3') // '',
- innerloop1 => $input->param('innerloop1') // '',
- innerloop2 => $input->param('innerloop2') // '',
- innerloop3 => $input->param('innerloop3') // '',
+ locale => scalar $input->param('locale') // '',
+ lastvalue1 => scalar $input->param('lastvalue1') // '',
+ lastvalue2 => scalar $input->param('lastvalue2') // '',
+ lastvalue3 => scalar $input->param('lastvalue3') // '',
+ innerloop1 => scalar $input->param('innerloop1') // '',
+ innerloop2 => scalar $input->param('innerloop2') // '',
+ innerloop3 => scalar $input->param('innerloop3') // '',
irregularity => '',
- periodicity => $frequencyid,
countissuesperunit => 1,
firstacquidate => $firstacquidate,
);
my $issuenumber;
if(defined $subscriptionid) {
- ($issuenumber) = C4::Serials::GetFictiveIssueNumber(\%subscription, $date);
+ ($issuenumber) = C4::Serials::GetFictiveIssueNumber(\%subscription, $date, $frequency);
} else {
$issuenumber = 1;
}
my %line;
if(defined $date){
- $date = GetNextDate(\%subscription, $date);
+ $date = GetNextDate(\%subscription, $date, $frequency);
}
if(defined $date){
$line{'publicationdate'} = $date;
last;
}
- ($calculated, $subscription{'lastvalue1'}, $subscription{'lastvalue2'}, $subscription{'lastvalue3'}, $subscription{'innerloop1'}, $subscription{'innerloop2'}, $subscription{'innerloop3'}) = GetNextSeq(\%subscription, \%pattern);
+ ($calculated, $subscription{'lastvalue1'}, $subscription{'lastvalue2'}, $subscription{'lastvalue3'}, $subscription{'innerloop1'}, $subscription{'innerloop2'}, $subscription{'innerloop3'}) = GetNextSeq(\%subscription, \%pattern, $frequency);
$issuenumber++;
$line{'number'} = $calculated;
$line{'issuenumber'} = $issuenumber;