#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};
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;
}
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'));