2 % $cgi->param('error', $error);
3 <% $cgi->redirect(popurl(2). "REAL_cust_pkg.cgi?". $cgi->query_string ) %>
5 % my $custnum = $new->custnum;
6 % my $show = $curuser->default_customer_view =~ /^(jumbo|packages)$/
9 % my $frag = "cust_pkg$pkgnum"; #hack for IE ignoring real #fragment
10 <% $cgi->redirect(popurl(3). "view/cust_main.cgi?custnum=$custnum$show;fragment=$frag#$frag" ) %>
14 my $curuser = $FS::CurrentUser::CurrentUser;
17 unless $curuser->access_right('Edit customer package dates');
19 my $pkgnum = $cgi->param('pkgnum') or die;
20 my $old = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
21 my %hash = $old->hash;
22 $hash{$_}= $cgi->param($_) ? parse_datetime($cgi->param($_)) : ''
23 foreach qw( start_date setup bill last_bill contract_end );
24 # adjourn, expire, resume not editable this way
28 push @errors, '_bill_areyousure'
29 if $hash{'bill'} != $old->bill # if the next bill date was changed
30 && $hash{'bill'} < time # to a date in the past
31 && ! $cgi->param('bill_areyousure'); # and it wasn't confirmed
33 push @errors, '_setup_areyousure'
34 if ! $hash{'setup'} && $old->setup # if the setup date was removed
35 && ! $cgi->param('setup_areyousure'); # and it wasn't confirmed
37 push @errors, '_setupadd_areyousure'
38 if $hash{'setup'} && ! $old->setup # if the setup date was added
39 && ! $cgi->param('setupadd_areyousure'); # and it wasn't confirmed
41 push @errors, '_start'
42 if $hash{'start_date'} && !$old->start_date # if a start date was added
43 && $hash{'setup'}; # but there's a setup date
48 $error = join(',', @errors);
50 $new = new FS::cust_pkg \%hash;
51 $error = $new->replace($old);