X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2FREAL_cust_pkg.cgi;h=77ab1fe67069b16785f1f968281475df9dcc9db3;hp=d9b7579f68200941a4ebe86ca936d08adf017fa8;hb=37591b61f8ad6fc5c5acb2fd8f520d2dbe4f1539;hpb=f7fd2a3e34da751cbc02bbf215e99c6dc89adc15 diff --git a/httemplate/edit/REAL_cust_pkg.cgi b/httemplate/edit/REAL_cust_pkg.cgi index d9b7579f6..77ab1fe67 100755 --- a/httemplate/edit/REAL_cust_pkg.cgi +++ b/httemplate/edit/REAL_cust_pkg.cgi @@ -1,131 +1,220 @@ - -<% -# +<% include("/elements/header.html",'Customer package - Edit dates') %> + +%#, menubar( +%# "View this customer (#$custnum)" => popurl(2). "view/cust_main.cgi?$custnum", +%#)); + + + + + + +
+ + +% # raw error from below +% if ( $error ) { + Error: <% $error %> +% } +% #or, regular error handler +<% include('/elements/error.html') %> + +<% ntable("#cccccc",2) %> + + + Package number + <% $cust_pkg->pkgnum %> + + + + Package + <% $part_pkg->pkg %> + + + + Custom + <% $part_pkg->custom %> + + + + Comment + <% $part_pkg->comment %> + + + + Order taker + <% $cust_pkg->otaker %> + + +% if ( $cust_pkg->setup && ! $cust_pkg->start_date ) { + <& .row_display, cust_pkg=>$cust_pkg, column=>'start_date', label=>'Start' &> +% } else { + <& .row_edit, cust_pkg=>$cust_pkg, column=>'start_date', label=>'Start' &> +% } + + <& .row_edit, cust_pkg=>$cust_pkg, column=>'setup', label=>'Setup' &> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'last_bill', label=>$last_bill_or_renewed &> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'bill', label=>$next_bill_or_prepaid_until &> + <& .row_display, cust_pkg=>$cust_pkg, column=>'adjourn', label=>'Adjournment', note=>'(will suspend this package when the date is reached)' &> + <& .row_display, cust_pkg=>$cust_pkg, column=>'susp', label=>'Suspension' &> + + <& .row_display, cust_pkg=>$cust_pkg, column=>'expire', label=>'Expiration', note=>'(will cancel this package when the date is reached)' &> + <& .row_display, cust_pkg=>$cust_pkg, column=>'cancel', label=>'Cancellation' &> + +<%def .row_edit> +<%args> + $cust_pkg + $column + $label + $note => '' + +% my $value = $cust_pkg->get($column); +% $value = $value ? time2str($format, $value) : ""; + + + <% $label %> date + + + +% if ( $note ) { +
<% $note %> +% } + + + + + + + +<%def .row_display> +<%args> + $cust_pkg + $column + $label + $note => '' + +% if ( $cust_pkg->get($column) ) { + + <% $label %> date + <% time2str($format,$cust_pkg->get($column)) %> +% if ( $note ) { +
<% $note %> +% } + + +% } + + + + +
+ +
+ +<% include('/elements/footer.html') %> +<%shared> + +my $conf = new FS::Conf; +my $date_format = $conf->config('date_format') || '%m/%d/%Y'; + +my $format = $date_format. ' %T %z (%Z)'; + + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Edit customer package dates'); + + +my $error = ''; +my( $pkgnum, $cust_pkg ); -my $error =''; -my $pkgnum = ''; if ( $cgi->param('error') ) { - $error = $cgi->param('error'); + $pkgnum = $cgi->param('pkgnum'); + + if ( $cgi->param('error') =~ /^_/ ) { + + my @errors = (); + my %errors = map { $_=>1 } split(',', $cgi->param('error')); + $cgi->param('error', ''); + + if ( $errors{'_bill_areyousure'} ) { + if ( $cgi->param('bill') =~ /^([\s\d\/\:\-\(\w\)]*)$/ ) { + my $bill = $1; + push @errors, + "You are attempting to set the next bill date to $bill, which is + in the past. This will charge the customer for the interval + from $bill until now. Are you sure you want to do this? ". + ''; + } + } + + if ( $errors{'_setup_areyousure'} ) { + push @errors, + "You are attempting to remove the setup date. This will re-charge the + customer for the setup fee. Are you sure you want to do this? ". + ''; + } + + if ( $errors{'_start'} ) { + push @errors, + "You are attempting to add a start date to a package that has already + started billing."; + } + + $error = join('

', @errors ); + + } + + #get package record + $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); + die "No package!" unless $cust_pkg; + + foreach my $col (qw( start_date setup last_bill bill adjourn expire )) { + my $value = $cgi->param($col); + $cust_pkg->set( $col, $value ? parse_datetime($value) : '' ); + } + } else { + my($query) = $cgi->keywords; $query =~ /^(\d+)$/ or die "no pkgnum"; $pkgnum = $1; + + #get package record + $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); + die "No package!" unless $cust_pkg; + } -#get package record -my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); -die "No package!" unless $cust_pkg; -my $part_pkg = qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->getfield('pkgpart')}); +my $part_pkg = qsearchs( 'part_pkg', { 'pkgpart' => $cust_pkg->pkgpart } ); -if ( $error ) { - #$cust_pkg->$_(str2time($cgi->param($_)) foreach qw(setup bill); - $cust_pkg->setup(str2time($cgi->param('setup'))); - $cust_pkg->bill(str2time($cgi->param('bill'))); +my( $last_bill_or_renewed, $next_bill_or_prepaid_until ); +unless ( $part_pkg->is_prepaid ) { + #$billed_or_prepaid = 'billed'; + $last_bill_or_renewed = 'Last bill'; + $next_bill_or_prepaid_until = 'Next bill'; +} else { + #$billed_or_prepaid = 'prepaid'; + $last_bill_or_renewed = 'Renewed'; + $next_bill_or_prepaid_until = 'Prepaid until'; } -#my $custnum = $cust_pkg->getfield('custnum'); -print header('Package Edit'); #, menubar( -# "View this customer (#$custnum)" => popurl(2). "view/cust_main.cgi?$custnum", -# 'Main Menu' => popurl(2) -#)); - -%> - - - - - - -<% - -#print info -my($susp,$cancel,$expire)=( - $cust_pkg->getfield('susp'), - $cust_pkg->getfield('cancel'), - $cust_pkg->getfield('expire'), -); -my($pkg,$comment)=($part_pkg->getfield('pkg'),$part_pkg->getfield('comment')); -my($setup,$bill)=($cust_pkg->getfield('setup'),$cust_pkg->getfield('bill')); -my $otaker = $cust_pkg->getfield('otaker'); - -print '
', qq!!; - -print qq!Error: $error! - if $error; - -#my $format = "%c %z (%Z)"; -my $format = "%m/%d/%Y %T %z (%Z)"; - -print ntable("#cccccc",2), - 'Package number', - $pkgnum, '', - 'Package', - $pkg, '', - 'Comment', - $comment, '', - 'Order taker', - $otaker, '', - 'Setup date'. - ''. - ' '. - ''; - -print 'Last bill date', - ''. - ' '. - '' - if $cust_pkg->dbdef_table->column('last_bill'); - -print 'Next bill date', - ''. - ' '. - ''; - -print 'Suspension date', - time2str($format, $susp), '' - if $susp; - -#print 'Expiration date', -# time2str("%D",$expire), '' -# if $expire; -print 'Expiration date'. - '', - ''. - ' '. - '
(will cancel this package'. - ' when the date is reached)'. - ''; - -print 'Cancellation date', - time2str($format, $cancel), '' - if $cancel; - -%> - - -
-
- - +