improve unsuspend behavior for packages on hold, #28508
[freeside.git] / httemplate / view / cust_main / packages / status.html
index 3ebdf22..accdb45 100644 (file)
 %
 % } else {
 %
-%   if ( $cust_pkg->get('susp') ) { #status: suspended
-%     my $cpr = $cust_pkg->last_cust_pkg_reason('susp');
+%   if ( $cust_pkg->get('susp') ) { #suspended or on hold
+%
+%     #if ( $cust_pkg->order_date eq $cust_pkg->get('susp') ) { # inconsistent with FS::cust_pkg::status
+%     if ( ! $cust_pkg->setup ) { #status: on hold
+
+        <% pkg_status_row( $cust_pkg, emt('On Hold'), '', 'color'=>'7E0079', %opt ) %>
 
-    <% pkg_status_row( $cust_pkg, emt('Suspended'), 'susp', 'color'=>'FF9900', %opt ) %>
+%     } else { #status: suspended
 
-    <% pkg_reason_row( $cust_pkg, $cpr, 'color' => 'FF9900', %opt ) %>
+        <% pkg_status_row( $cust_pkg, emt('Suspended'), 'susp', 'color'=>'FF9900', %opt ) %>
+%       my $cpr = $cust_pkg->last_cust_pkg_reason('susp');
+        <% pkg_reason_row( $cust_pkg, $cpr, 'color' => 'FF9900', %opt ) %>
+
+%     }
 
     <% pkg_status_row_noauto( $cust_pkg, %opt ) %>
 
     <% pkg_status_row_discount( $cust_pkg, %opt ) %>
 
-%   unless ( $cust_pkg->get('setup') ) { 
-      <% pkg_status_row_colspan( $cust_pkg, emt('Never billed'), '', %opt ) %>
-%   } else { 
-      <% pkg_status_row($cust_pkg, emt('Setup'), 'setup', %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 { 
+        <% pkg_status_row($cust_pkg, emt('Setup'), 'setup', %opt ) %>
+%     }
 %   } 
 
     <% pkg_status_row_if($cust_pkg, emt('Un-cancelled'), 'uncancel', %opt ) %>
 %               }
 %           }
 %           if ( $curuser->access_right('Unsuspend customer package') ) { 
-              (&nbsp;<% pkg_unsuspend_link($cust_pkg) %>&nbsp;)
-              (&nbsp;<% pkg_resume_link($cust_pkg) %>&nbsp;)
+%             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;)
+%             } else {
+                (&nbsp;<% pkg_unsuspend_link($cust_pkg) %>&nbsp;)
+                (&nbsp;<% pkg_resume_link($cust_pkg) %>&nbsp;)
+%             }
 %           }
 %           if ( !$cust_pkg->change_to_pkgnum and
 %                $curuser->access_right('Cancel customer package immediately')
@@ -481,7 +495,7 @@ sub pkg_status_row_discount {
 
   my $html;
 
-  foreach my $cust_pkg_discount ( $cust_pkg->cust_pkg_discount_active ) {
+  foreach my $cust_pkg_discount (@{ $cust_pkg->{_cust_pkg_discount_active} }) {
 
     my $discount = $cust_pkg_discount->discount;