X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2FREAL_cust_pkg.cgi;h=570f0e03155ca7a0d3e4865f18784f773f0146b5;hb=9f351b4a4df08d607aa0d647709b06cbea1c5ffe;hp=26e234fb0312c2b2c95951378e8ee722151cf994;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e;p=freeside.git diff --git a/httemplate/edit/process/REAL_cust_pkg.cgi b/httemplate/edit/process/REAL_cust_pkg.cgi index 26e234fb0..570f0e031 100755 --- a/httemplate/edit/process/REAL_cust_pkg.cgi +++ b/httemplate/edit/process/REAL_cust_pkg.cgi @@ -1,35 +1,49 @@ -% -% -%my $pkgnum = $cgi->param('pkgnum') or die; -%my $old = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); -%my %hash = $old->hash; -%$hash{'setup'} = $cgi->param('setup') ? str2time($cgi->param('setup')) : ''; -%$hash{'bill'} = $cgi->param('bill') ? str2time($cgi->param('bill')) : ''; -%$hash{'last_bill'} = -% $cgi->param('last_bill') ? str2time($cgi->param('last_bill')) : ''; -%$hash{'expire'} = $cgi->param('expire') ? str2time($cgi->param('expire')) : ''; -% -%my $new; -%my $error; -%if ( $hash{'bill'} != $old->bill # if the next bill date was changed -% && $hash{'bill'} < time # to a date in the past -% && ! $cgi->param('bill_areyousure') # and it wasn't confirmed -% ) -%{ -% $error = '_bill_areyousure'; -%} else { -% $new = new FS::cust_pkg \%hash; -% $error = $new->replace($old); -%} -% %if ( $error ) { % $cgi->param('error', $error); -% print $cgi->redirect(popurl(2). "REAL_cust_pkg.cgi?". $cgi->query_string ); +<% $cgi->redirect(popurl(2). "REAL_cust_pkg.cgi?". $cgi->query_string ) %> %} else { % my $custnum = $new->custnum; -% print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum". -% "#cust_pkg$pkgnum" ); +% my $show = $curuser->default_customer_view =~ /^(jumbo|packages)$/ +% ? '' +% : ';show=packages'; +% my $frag = "cust_pkg$pkgnum"; #hack for IE ignoring real #fragment +<% $cgi->redirect(popurl(3). "view/cust_main.cgi?custnum=$custnum$show;fragment=$frag#$frag" ) %> %} -% -% +<%init> + +my $curuser = $FS::CurrentUser::CurrentUser; + +die "access denied" + unless $curuser->access_right('Edit customer package dates'); + +my $pkgnum = $cgi->param('pkgnum') or die; +my $old = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); +my %hash = $old->hash; +$hash{$_}= $cgi->param($_) ? parse_datetime($cgi->param($_)) : '' + foreach qw( start_date setup bill last_bill adjourn expire ); + +my @errors = (); + +push @errors, '_bill_areyousure' + if $hash{'bill'} != $old->bill # if the next bill date was changed + && $hash{'bill'} < time # to a date in the past + && ! $cgi->param('bill_areyousure'); # and it wasn't confirmed + +push @errors, '_setup_areyousure' + if ! $hash{'setup'} && $old->setup # if the setup date was removed + && ! $cgi->param('setup_areyousure'); # and it wasn't confirmed + +push @errors, '_start' + if $hash{'start_date'} && !$old->start_date # if a start date was added + && $hash{'setup'}; # but there's a setup date + +my $new; +my $error; +if ( @errors ) { + $error = join(',', @errors); +} else { + $new = new FS::cust_pkg \%hash; + $error = $new->replace($old); +} +