X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2FREAL_cust_pkg.cgi;h=606cf87e73e15f6f7372164778d6d8cc5875702c;hb=62b18c75989a1b00a25079f8f110992aaad81bba;hp=fca58f533cc308d20ffcb50402b1ac7cf69acf34;hpb=a9dcf7d17d2f3b40168b1df731c799f0ee3900f0;p=freeside.git diff --git a/httemplate/edit/REAL_cust_pkg.cgi b/httemplate/edit/REAL_cust_pkg.cgi index fca58f533..606cf87e7 100755 --- a/httemplate/edit/REAL_cust_pkg.cgi +++ b/httemplate/edit/REAL_cust_pkg.cgi @@ -9,9 +9,37 @@ +
+% if ($contract_only) { + + +% } + % # raw error from below % if ( $error ) { Error: <% $error %> @@ -31,6 +59,15 @@ <% $part_pkg->pkg %> +% if ( $cust_pkg->main_pkgnum ) { +% my $main_pkg = $cust_pkg->main_pkg; + + Supplemental to + Package #<% $cust_pkg->main_pkgnum%>: \ + <% $main_pkg->part_pkg->pkg %> + + +% } Custom <% $part_pkg->custom %> @@ -38,7 +75,7 @@ Comment - <% $part_pkg->comment %> + <% $part_pkg->comment |h %> @@ -46,22 +83,38 @@ <% $cust_pkg->otaker %> + <& .row_display, cust_pkg=>$cust_pkg, column=>'order_date', label=>'Order' &> % 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=>'start_date', label=>'Start', if_primary=>1 &> % } - <& .row_edit, cust_pkg=>$cust_pkg, column=>'setup', label=>'Setup' &> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'setup', label=>'Setup', if_primary=>1 &> <& .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 &> -% if ( $cust_pkg->contract_end or $part_pkg->option('contract_end_months',1) ) { - <& .row_edit, cust_pkg=>$cust_pkg, column=>'contract_end',label=>'Contract end' &> -% } +%#if ( $cust_pkg->contract_end or $part_pkg->option('contract_end_months',1) ) { + <& .row_edit, cust_pkg=>$cust_pkg, column=>'contract_end',label=>'Contract end', if_primary=>1 &> +%#} <& .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=>'resume', label=>'Resumption', note=> '(will unsuspend this package when the date is reached' &> + +% if ( $cust_pkg->change_to_pkgnum ) { +% my $change_to_pkg = FS::cust_pkg->by_key($cust_pkg->change_to_pkgnum); +% my $desc; +% if ( $change_to_pkg->pkgpart != $cust_pkg->pkgpart ) { +% $desc = 'change package to '.$change_to_pkg->part_pkg->pkg; +% } +% if ( $change_to_pkg->locationnum != $cust_pkg->locationnum ) { +% $desc .= ' and ' if $desc; +% $desc .= 'change location to "'. +% $change_to_pkg->cust_location->line . '"'; +% } + <& .row_display, cust_pkg=>$cust_pkg, column=>'expire', label=>'Change package', note=>"(will $desc when the date is reached)" &> +% } else { <& .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' &> @@ -71,10 +124,19 @@ $column $label $note => '' + $if_primary => 0 % my $value = $cust_pkg->get($column); % $value = $value ? time2str($format, $value) : ""; - +% +% if ($contract_only and $column ne 'contract_end') { + <& .row_display, %ARGS &> +% # if_primary for the dates that can't be edited on supplemental packages +% } elsif ($if_primary and $cust_pkg->main_pkgnum) { + + + <& .row_display, %ARGS &> +% } else { <% $label %> date @@ -102,8 +164,11 @@ button: "<% $column %>_button", align: "BR" }); - + submit_fields.push('<%$column%>'); + + +% } <%def .row_display> @@ -112,6 +177,7 @@ $column $label $note => '' + $is_primary => 0 #ignored % if ( $cust_pkg->get($column) ) { @@ -128,7 +194,7 @@
- +
<% include('/elements/footer.html') %> @@ -139,12 +205,15 @@ my $date_format = $conf->config('date_format') || '%m/%d/%Y'; my $format = $date_format. ' %T'; # %z (%Z)'; +my $contract_only = $FS::CurrentUser::CurrentUser->access_right('Edit customer package dates') ? 0 : 1; + <%init> +# see $contract_only in shared block above die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Edit customer package dates'); - + unless $FS::CurrentUser::CurrentUser->access_right('Edit customer package dates') + or $FS::CurrentUser::CurrentUser->access_right('Change package contract end date'); my $error = ''; my( $pkgnum, $cust_pkg ); @@ -158,31 +227,6 @@ 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 ); } @@ -191,7 +235,7 @@ if ( $cgi->param('error') ) { $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 )) { + foreach my $col (qw( start_date setup last_bill bill )) { my $value = $cgi->param($col); $cust_pkg->set( $col, $value ? parse_datetime($value) : '' ); }