#use Smart::Comments;
-my $query = CGI->new;
+our $query = CGI->new;
my $op = $query->param('op') || '';
my $dbh = C4::Context->dbh;
my $sub_length;
# Permission needed if it is a modification : edit_subscription
# Permission needed otherwise (nothing or dup) : create_subscription
-my $permission = ($op eq "mod") ? "edit_subscription" : "create_subscription";
+my $permission = ($op eq "modify") ? "edit_subscription" : "create_subscription";
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "serials/subscription-add.tmpl",
my @sub_type_data;
my $subs;
-my $firstissuedate;
-my $nextexpected;
+our $firstissuedate;
-if ($op eq 'mod' || $op eq 'dup' || $op eq 'modsubscription') {
+if ($op eq 'modify' || $op eq 'dup' || $op eq 'modsubscription') {
my $subscriptionid = $query->param('subscriptionid');
$subs = GetSubscription($subscriptionid);
## FIXME : Check rights to edit if mod. Could/Should display an error message.
- if ($subs->{'cannotedit'} && $op eq 'mod'){
+ if ($subs->{'cannotedit'} && $op eq 'modify'){
carp "Attempt to modify subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed";
print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
}
- $firstissuedate = $subs->{firstacquidate}; # in iso format.
+ $firstissuedate = $subs->{firstacquidate} || ''; # in iso format.
for (qw(startdate firstacquidate histstartdate enddate histenddate)) {
next unless defined $subs->{$_};
# TODO : Handle date formats properly.
$subs->{letter}= q{};
}
letter_loop($subs->{'letter'}, $template);
- $nextexpected = GetNextExpected($subscriptionid);
+ my $nextexpected = GetNextExpected($subscriptionid);
$nextexpected->{'isfirstissue'} = $nextexpected->{planneddate}->output('iso') eq $firstissuedate ;
- $subs->{nextacquidate} = $nextexpected->{planneddate}->output() if($op eq 'mod');
+ $subs->{nextacquidate} = $nextexpected->{planneddate}->output() if($op eq 'modify');
unless($op eq 'modsubscription') {
- foreach my $length_unit qw(numberlength weeklength monthlength){
+ foreach my $length_unit (qw(numberlength weeklength monthlength)) {
if ($subs->{$length_unit}){
$sub_length=$subs->{$length_unit};
$sub_on=$length_unit;
}
}
- $template->param($subs);
+ $template->param( %{$subs} );
$template->param("dow".$subs->{'dow'} => 1) if defined $subs->{'dow'};
$template->param(
$op => 1,
"subtype_$sub_on" => 1,
sublength =>$sub_length,
- history => ($op eq 'mod'),
+ history => ($op eq 'modify'),
"periodicity".$subs->{'periodicity'} => 1,
"numberpattern".$subs->{'numberpattern'} => 1,
firstacquiyear => substr($firstissuedate,0,4),
);
}
+
+ if ( $op eq 'dup' ) {
+ my $dont_copy_fields = C4::Context->preference('SubscriptionDuplicateDroppedInput');
+ my @fields_id = map { fieldid => $_ }, split '\|', $dont_copy_fields;
+ $template->param( dont_export_field_loop => \@fields_id );
+ }
}
-my $onlymine=C4::Context->preference('IndependantBranches') &&
+my $onlymine=C4::Context->preference('IndependentBranches') &&
C4::Context->userenv &&
C4::Context->userenv->{flags} % 2 !=1 &&
C4::Context->userenv->{branch};
branchname => $branches->{$thisbranch}->{'branchname'},
};
}
+
+my $locations_loop = GetAuthorisedValues("LOC",$subs->{'location'});
+
$template->param(branchloop => $branchloop,
- DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+ locations_loop=>$locations_loop,
);
# prepare template variables common to all $op conditions:
-$template->param( 'dateformat_' . C4::Context->preference('dateformat') => 1 );
if ($op!~/^mod/) {
letter_loop(q{}, $template);
}
}
$template->param(subtype => \@sub_type_data);
+ letter_loop( '', $template ) if ($op ne 'modsubscription' && $op ne 'dup' && $op ne 'modify');
my $new_biblionumber = $query->param('biblionumber_for_new_subscription');
if (defined $new_biblionumber) {
$template->param(bibliotitle => $bib->{title});
}
}
+ $template->param((uc(C4::Context->preference("marcflavour"))) => 1);
output_html_with_http_headers $query, $cookie, $template->output;
}
}
sub redirect_add_subscription {
- my $auser = $query->param('user');
- my $branchcode = $query->param('branchcode');
- my $aqbooksellerid = $query->param('aqbooksellerid');
- my $cost = $query->param('cost');
- my $aqbudgetid = $query->param('aqbudgetid');
- my $periodicity = $query->param('periodicity');
- my $dow = $query->param('dow');
- my @irregularity = $query->param('irregularity_select');
- my $numberpattern = $query->param('numbering_pattern');
- my $graceperiod = $query->param('graceperiod') || 0;
+ my $auser = $query->param('user');
+ my $branchcode = $query->param('branchcode');
+ my $aqbooksellerid = $query->param('aqbooksellerid');
+ my $cost = $query->param('cost');
+ my $aqbudgetid = $query->param('aqbudgetid');
+ my $periodicity = $query->param('periodicity');
+ my $dow = $query->param('dow');
+ my @irregularity = $query->param('irregularity_select');
+ my $numberpattern = $query->param('numbering_pattern');
+ my $graceperiod = $query->param('graceperiod') || 0;
- my ($numberlength, $weeklength, $monthlength)
+ my ( $numberlength, $weeklength, $monthlength )
= _get_sub_length( $query->param('subtype'), $query->param('sublength') );
- my $add1 = $query->param('add1');
- my $every1 = $query->param('every1');
- my $whenmorethan1 = $query->param('whenmorethan1');
- my $setto1 = $query->param('setto1');
- my $lastvalue1 = $query->param('lastvalue1');
- my $innerloop1 =$query->param('innerloop1');
- my $add2 = $query->param('add2');
- my $every2 = $query->param('every2');
- my $whenmorethan2 = $query->param('whenmorethan2');
- my $setto2 = $query->param('setto2');
- my $innerloop2 =$query->param('innerloop2');
- my $lastvalue2 = $query->param('lastvalue2');
- my $add3 = $query->param('add3');
- my $every3 = $query->param('every3');
- my $whenmorethan3 = $query->param('whenmorethan3');
- my $setto3 = $query->param('setto3');
- my $lastvalue3 = $query->param('lastvalue3');
- my $innerloop3 =$query->param('innerloop3');
- my $numberingmethod = $query->param('numberingmethod');
- my $status = 1;
- my $biblionumber = $query->param('biblionumber');
- my $callnumber = $query->param('callnumber');
- my $notes = $query->param('notes');
- my $internalnotes = $query->param('internalnotes');
- my $hemisphere = $query->param('hemisphere') || 1;
- my $letter = $query->param('letter');
- my $manualhistory = $query->param('manualhist');
- my $serialsadditems = $query->param('serialsadditems');
- my $staffdisplaycount = $query->param('staffdisplaycount');
- my $opacdisplaycount = $query->param('opacdisplaycount');
- my $location = $query->param('location');
- my $startdate = format_date_in_iso($query->param('startdate'));
- my $enddate = format_date_in_iso($query->param('enddate'));
+ my $add1 = $query->param('add1');
+ my $every1 = $query->param('every1');
+ my $whenmorethan1 = $query->param('whenmorethan1');
+ my $setto1 = $query->param('setto1');
+ my $lastvalue1 = $query->param('lastvalue1');
+ my $innerloop1 = $query->param('innerloop1');
+ my $add2 = $query->param('add2');
+ my $every2 = $query->param('every2');
+ my $whenmorethan2 = $query->param('whenmorethan2');
+ my $setto2 = $query->param('setto2');
+ my $innerloop2 = $query->param('innerloop2');
+ my $lastvalue2 = $query->param('lastvalue2');
+ my $add3 = $query->param('add3');
+ my $every3 = $query->param('every3');
+ my $whenmorethan3 = $query->param('whenmorethan3');
+ my $setto3 = $query->param('setto3');
+ my $lastvalue3 = $query->param('lastvalue3');
+ my $innerloop3 = $query->param('innerloop3');
+ my $numberingmethod = $query->param('numberingmethod');
+ my $status = 1;
+ my $biblionumber = $query->param('biblionumber');
+ my $callnumber = $query->param('callnumber');
+ my $notes = $query->param('notes');
+ my $internalnotes = $query->param('internalnotes');
+ my $hemisphere = $query->param('hemisphere') || 1;
+ my $letter = $query->param('letter');
+ my $manualhistory = $query->param('manualhist');
+ my $serialsadditems = $query->param('serialsadditems');
+ my $staffdisplaycount = $query->param('staffdisplaycount');
+ my $opacdisplaycount = $query->param('opacdisplaycount');
+ my $location = $query->param('location');
+ my $startdate = format_date_in_iso( $query->param('startdate') );
+ my $enddate = format_date_in_iso( $query->param('enddate') );
my $firstacquidate = format_date_in_iso($query->param('firstacquidate'));
my $histenddate = format_date_in_iso($query->param('histenddate'));
my $histstartdate = format_date_in_iso($query->param('histstartdate'));
my $opacdisplaycount = $query->param('opacdisplaycount');
my $graceperiod = $query->param('graceperiod') || 0;
my $location = $query->param('location');
+ my $nextexpected = GetNextExpected($subscriptionid);
# If it's a mod, we need to check the current 'expected' issue, and mod it in the serials table if necessary.
if ( $nextacquidate ne $nextexpected->{planneddate}->output('iso') ) {
ModNextExpected($subscriptionid,C4::Dates->new($nextacquidate,'iso'));