RT# 82949 - changes section name from fees to pricing, better opiton
[freeside.git] / httemplate / misc / cancel_pkg.html
index 3a6a4d1..96cf641 100755 (executable)
@@ -6,9 +6,15 @@
 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
 <INPUT TYPE="hidden" NAME="method" VALUE="<% $method %>">
 
-<BR><BR>
-<% emt(ucfirst($method)." [_1]", $part_pkg->pkg_comment) %>
-<% ntable("#cccccc", 2) %>
+<BR>
+<% emt(ucfirst($method)." [_1]", $part_pkg->pkg_comment(cust_pkg=>$cust_pkg) ) %>
+<BR>
+<font color="red">
+% for ( @unprovision_warning ) {
+<% $_ |h %><BR>
+% }
+</font>
+<table style="background-color: #cccccc; border-spacing: 2; width: 100%">
 
 % my $date_init = 0;
 % if ($method eq 'expire' || $method eq 'adjourn' || $method eq 'resume') {
       'format'  => $date_format,
   } &>
 
+  <& /elements/tr-checkbox.html,
+       'label'  => mt("Uncancel even if service reprovisioning fails"),
+       'field'  => 'svc_not_fatal',
+       'value'  => 'Y',
+  &>
+
 %   $date_init = 1;
+%   my @uncancel_svcs = sort { $b->{'reprovisionable'} <=> $a->{'reprovisionable'} }
+%                       sort { $a->{'svcpart'} <=> $b->{'svcpart'} } 
+%                       $cust_pkg->uncancel_svc_summary();
+%   if (@uncancel_svcs) {
+<TR><TD COLSPAN="2">&nbsp;</TD></TR>
+<TR><TH ALIGN="right"><% emt("Re-provision the following services") %></TH><TD></TD>
+%     foreach my $uncancel_svc (@uncancel_svcs) {
+%       my $uncancel_curr_value = $uncancel_svc->{'uncancel_svcnum'};
+%       my $uncancel_disabled = '';
+%       my $uncancel_postfix = '';
+%       if ($cgi->param('error')) {
+%         $uncancel_curr_value = '' unless grep { $_ == $uncancel_svc->{'uncancel_svcnum'} } $cgi->param('only_svcnum');
+%       }
+%       unless ($uncancel_svc->{'reprovisionable'}) {
+%         $uncancel_curr_value = '';
+%         $uncancel_disabled = 1;
+%         $uncancel_postfix = '<I>(' . emt('Cannot be reprovisioned') . ')</I>';
+%       }
+  <& /elements/tr-checkbox.html,
+       'label'  => $uncancel_svc->{'svc'} . ': ' . $uncancel_svc->{'label'},
+       'field'  => 'only_svcnum',
+       'value'  => $uncancel_svc->{'uncancel_svcnum'},
+       'curr_value' => $uncancel_curr_value,
+       'disabled'   => $uncancel_disabled,
+       'cell_style' => 'font-weight: normal',
+       'postfix' => $uncancel_postfix,
+  &>
+%     }
+%   }
 % }
 
 % unless ( $method eq 'resume' || $method eq 'uncancel' ) {
        field          => 'reasonnum',
        reason_class   => $class,
        curr_value     => $reasonnum,
-       control_button => "document.getElementById('confirm_cancel_pkg_button')",
+       control_button => "confirm_cancel_pkg_button",
   &>
 % }
 
-% if ( ( $method eq 'adjourn' or $method eq 'suspend' ) and 
+% if (( $method eq 'adjourn' || $method eq 'suspend' ) && $curuser->access_right('Customize billing during suspension')) {
+    <TR><TD COLSPAN=2>
+%   if ( $part_pkg->option('suspend_bill', 1) ) {
+      <& /elements/checkbox.html, name=>'no_suspend_bill', value=>'Y' &>
+      Disable recurring billing while suspended
+%   } else {
+      <& /elements/checkbox.html, name=>'suspend_bill', value=>'Y' &>
+      Continue recurring billing while suspended
+%   }
+    </TD></TR>
+% }
+
+% if ( ( $method eq 'adjourn' || $method eq 'suspend' ) and 
 %      $curuser->access_right('Unsuspend customer package') )  { #later?
 %   my $resume_date = $cgi->param('error') 
 %                     ? str2time($cgi->param('resume_date'))
@@ -144,6 +197,29 @@ my $cust_pkg = qsearchs('cust_pkg', {'pkgnum' => $pkgnum})
 
 my $part_pkg = $cust_pkg->part_pkg;
 
+my @unprovision_warning = ();
+unless ( $method =~ /^(resume|uncancel)$/ ) {
+  my @services_w_export = map { my @l = $_->label; $l[0]. ': '. $l[1]; }
+                            grep $_->part_svc->export_svc,
+                              $cust_pkg->cust_svc;
+  if ( @services_w_export ) {
+
+    my $actioned = ($method =~ /^(suspend|adjourn)$/) ? 'suspended'
+                                                      : 'unprovisioned';
+    push @unprovision_warning,
+      'NOTE: This package has '. @services_w_export. ' '.
+      PL( 'service', @services_w_export ). " that will be $actioned";
+
+    if ( @services_w_export < 10 ) {
+      $unprovision_warning[0] .= ':';
+      push @unprovision_warning, @services_w_export;
+    } else {
+      $unprovision_warning[0] .= '.';
+    }
+
+  }
+}
+
 $date ||= $cust_pkg->get($method);
 $date ||= time;