minor UI fix for future package change + advance billing, #37870
[freeside.git] / httemplate / view / cust_main / packages / status.html
index 971a9cf..4c612f5 100644 (file)
         <% pkg_status_row( $cust_pkg, emt('On Hold'), '', 'color'=>'7E0079', %opt ) %>
 
 %     } else { #status: suspended
-
-        <% pkg_status_row( $cust_pkg, emt('Suspended'), 'susp', 'color'=>'FF9900', %opt ) %>
-%       my $cpr = $cust_pkg->last_cust_pkg_reason('susp');
+%       my ($cpr,$susplabel);
+%       if ($cust_pkg->is_status_delay_cancel(%opt)) {
+%         $cpr = $cust_pkg->last_cust_pkg_reason('expire');
+%         $susplabel = 'Suspended (Cancelled)';
+%       } else {
+%         $cpr = $cust_pkg->last_cust_pkg_reason('susp');
+%         $susplabel = 'Suspended';
+%       }
+        <% pkg_status_row( $cust_pkg, emt($susplabel), 'susp', 'color'=>'FF9900', %opt ) %>
         <% pkg_reason_row( $cust_pkg, $cpr, 'color' => 'FF9900', %opt ) %>
 
 %     }
 
     <% pkg_status_row_noauto( $cust_pkg, %opt ) %>
 
+    <% pkg_status_row_separate_bill( $cust_pkg, %opt ) %>
+
     <% pkg_status_row_discount( $cust_pkg, %opt ) %>
 
-%   unless ( $cust_pkg->order_date eq $cust_pkg->get('susp') ) { #on hold
-%     unless ( $cust_pkg->get('setup') ) { 
-        <% pkg_status_row_colspan( $cust_pkg, emt('Never billed'), '', %opt ) %>
-%     } else { 
+%   if ( $cust_pkg->order_date ne $cust_pkg->get('susp') ) { # not on hold
+%     if ( $cust_pkg->get('setup') ) {
         <% pkg_status_row($cust_pkg, emt('Setup'), 'setup', %opt ) %>
+%     } else {
+        <% pkg_status_row_colspan( $cust_pkg, emt('Never billed'), '', %opt ) %>
 %     }
 %   } 
 
 %           }
 %           if ( $curuser->access_right('Unsuspend customer package') ) { 
 %             if ( $cust_pkg->order_date eq $cust_pkg->get('susp') ) { #on hold
-                (&nbsp;<% pkg_link('misc/unsusp_pkg', emt('Start bililng now'), $cust_pkg) %>&nbsp;)
+                (&nbsp;<% pkg_unhold_link($cust_pkg) %>&nbsp;)
 %             } else {
                 (&nbsp;<% pkg_unsuspend_link($cust_pkg) %>&nbsp;)
                 (&nbsp;<% pkg_resume_link($cust_pkg) %>&nbsp;)
 %     if ( $change_from ) { # future change
 %
           <% pkg_status_row_colspan( $cust_pkg, emt('Waiting for package change'), '', %opt ) %>
-          <% pkg_status_row( $cust_pkg,
+          <% pkg_status_row_if( $cust_pkg,
                              emt('Will be activated on'),
                              'start_date',
                              %opt ) %>
 
           <% pkg_status_row_noauto( $cust_pkg, %opt ) %>
 
+          <% pkg_status_row_separate_bill( $cust_pkg, %opt ) %>
+
           <% pkg_status_row_discount( $cust_pkg, %opt ) %>
 
           <% pkg_status_row_if(
 
           <% pkg_status_row_noauto( $cust_pkg, %opt ) %>
 
+          <% pkg_status_row_separate_bill( $cust_pkg, %opt ) %>
+
           <% pkg_status_row_discount( $cust_pkg, %opt ) %>
 
           <% pkg_status_row_if($cust_pkg, emt('Start billing'), 'start_date', %opt) %>
 
           <% pkg_status_row_noauto( $cust_pkg, %opt ) %>
 
+          <% pkg_status_row_separate_bill( $cust_pkg, %opt ) %>
+
           <% pkg_status_row_discount( $cust_pkg, %opt ) %>
 
           <% pkg_status_row_if($cust_pkg, emt('Un-cancelled'), 'uncancel', %opt ) %>
 
           <% pkg_status_row_noauto( $cust_pkg, %opt ) %>
 
+          <% pkg_status_row_separate_bill( $cust_pkg, %opt ) %>
+
           <% pkg_status_row_discount( $cust_pkg, %opt ) %>
 
           <% pkg_status_row($cust_pkg, emt('Setup'), 'setup', %opt) %>
 %               }
 %           }
 
-%           # suspension actions--always available
-%           if ( $curuser->access_right('Suspend customer package') ) { 
-              (&nbsp;<% pkg_suspend_link($cust_pkg) %>&nbsp;)
-%           } 
-%           if ( $curuser->access_right('Suspend customer package later') ) { 
-              (&nbsp;<% pkg_adjourn_link($cust_pkg) %>&nbsp;)
-%           } 
-%           if ( $curuser->access_right('Delay suspension events') ) { 
-              (&nbsp;<% pkg_delay_link($cust_pkg) %>&nbsp;)
+%           if ( !$change_from ) {
+%             # suspension actions--always available
+%             if ( $curuser->access_right('Suspend customer package') ) { 
+                (&nbsp;<% pkg_suspend_link($cust_pkg) %>&nbsp;)
+%             } 
+%             if ( $curuser->access_right('Suspend customer package later') ) { 
+                (&nbsp;<% pkg_adjourn_link($cust_pkg) %>&nbsp;)
+%             } 
+%             if ( $curuser->access_right('Delay suspension events') ) { 
+                (&nbsp;<% pkg_delay_link($cust_pkg) %>&nbsp;)
+%             }
 %           }
 %
 %           if ( $change_from or $cust_pkg->change_to_pkgnum ) {
@@ -401,6 +419,10 @@ sub pkg_status_row_expire {
     } elsif ( $cust_pkg->change_to_pkg->locationnum != $cust_pkg->locationnum )
     {
       $title = mt('Will <b>change location</b> on');
+    } elsif (( $cust_pkg->change_to_pkg->quantity != $cust_pkg->quantity ) ||
+             ( $cust_pkg->change_to_pkg->contract_end != $cust_pkg->contract_end ))
+    {
+      $title = mt('Will change on');
     } else {
       # FS::cust_pkg->change_later should have prevented this, but 
       # just so that we can display _something_
@@ -488,6 +510,12 @@ sub pkg_status_row_noauto {
   pkg_status_row_colspan( $cust_pkg, emt("No automatic $what charge"), '');
 }
 
+sub pkg_status_row_separate_bill {
+  my $cust_pkg = shift;
+  return '' unless $cust_pkg->separate_bill;
+  pkg_status_row_colspan( $cust_pkg, emt("Invoiced separately") );
+}
+
 sub pkg_status_row_discount {
   my( $cust_pkg, %opt ) = @_;
 
@@ -501,7 +529,7 @@ sub pkg_status_row_discount {
     if ( $discount->months ) {
       my $remaining = $discount->months - $cust_pkg_discount->months_used;
       $remaining = sprintf('%.2f', $remaining) if $remaining =~ /\./;
-      $label .= emt("([_1] months remaining)",$remaining);
+      $label .= emt(" ([quant,_1,month,months] remaining)",$remaining);
     }
 
     $label .= ' <FONT SIZE="-1">('.
@@ -618,6 +646,18 @@ sub pkg_resume_link {
          )
 }
 
+sub pkg_unhold_link {
+  include( '/elements/popup_link-cust_pkg.html',
+             'action'      => $p. 'misc/unhold_pkg.html?',
+             'label'       => emt('Start billing'),
+             'actionlabel' => emt('Start billing'),
+             'color'       => '#00CC00',
+             'width'       => 510,
+             'height'      => 310,
+             'cust_pkg'    => shift,
+         )
+}
+
 sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg',    emt('Unsuspend now'), @_ ); }
 sub pkg_unadjourn_link { pkg_link('misc/unadjourn_pkg', emt('Abort'),     @_ ); }
 sub pkg_unexpire_link  { pkg_link('misc/unexpire_pkg',  emt('Abort'),     @_ ); }