optimize customer view: avoid looking up config values inside loops, RT#4728
[freeside.git] / httemplate / view / cust_main / packages / status.html
index 4e7462b..e0a188e 100644 (file)
@@ -6,7 +6,7 @@
 % if ( $cust_pkg->get('cancel') ) { #status: cancelled
 %   my $cpr = $cust_pkg->last_cust_pkg_reason('cancel');
 
-    <% pkg_status_row($cust_pkg, 'Cancelled', 'cancel', 'color'=>'FF0000', conf=>$conf ) %>
+    <% pkg_status_row($cust_pkg, 'Cancelled', 'cancel', 'color'=>'FF0000', %opt ) %>
 
     <% pkg_status_row_colspan(
          ( $cpr ? $cpr->reasontext. ' by '. $cpr->otaker : '' ), '',
 
 %   } else { 
 
-       <% pkg_status_row( $cust_pkg, 'Setup', 'setup', conf=>$conf ) %>
-       <% pkg_status_row_changed( $cust_pkg, conf=>$conf ) %>
-       <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', conf=>$conf, curuser=>$curuser ) %>
-       <% pkg_status_row_if( $cust_pkg, 'Suspended', 'susp', conf=>$conf, curuser=>$curuser ) %>
+       <% pkg_status_row( $cust_pkg, 'Setup', 'setup', %opt ) %>
+       <% pkg_status_row_changed( $cust_pkg, %opt ) %>
+       <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', %opt, curuser=>$curuser ) %>
+       <% pkg_status_row_if( $cust_pkg, 'Suspended', 'susp', %opt, curuser=>$curuser ) %>
 
 %   } 
 %
@@ -32,7 +32,7 @@
 %   if ( $cust_pkg->get('susp') ) { #status: suspended
 %     my $cpr = $cust_pkg->last_cust_pkg_reason('susp');
 
-    <% pkg_status_row( $cust_pkg, 'Suspended', 'susp', 'color'=>'FF9900', conf=>$conf ) %>
+    <% pkg_status_row( $cust_pkg, 'Suspended', 'susp', 'color'=>'FF9900', %opt ) %>
 
     <% pkg_status_row_colspan(
          ( $cpr ? $cpr->reasontext. ' by '. $cpr->otaker : '' ), '',
 %   unless ( $cust_pkg->get('setup') ) { 
       <% pkg_status_row_colspan('Never billed') %>
 %   } else { 
-      <% pkg_status_row($cust_pkg, 'Setup', 'setup', conf=>$conf ) %>
+      <% pkg_status_row($cust_pkg, 'Setup', 'setup', %opt ) %>
 %   } 
 
-    <% pkg_status_row_changed( $cust_pkg, conf=>$conf ) %>
-    <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', conf=>$conf, curuser=>$curuser ) %>
-%   # pkg_status_row($cust_pkg, 'Next bill', 'bill', conf=>$conf)
-    <% pkg_status_row_if( $cust_pkg, 'Expires', 'expire', conf=>$conf, curuser=>$curuser ) %>
+    <% pkg_status_row_changed( $cust_pkg, %opt ) %>
+    <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', %opt, curuser=>$curuser ) %>
+%   # pkg_status_row($cust_pkg, 'Next bill', 'bill', %opt)
+    <% pkg_status_row_if( $cust_pkg, 'Expires', 'expire', %opt, curuser=>$curuser ) %>
 
     <TR>
       <TD COLSPAN=<%$colspan%>>
@@ -94,7 +94,7 @@
 
           <% pkg_status_row_colspan('One-time&nbsp;charge') %>
 
-          <% pkg_status_row($cust_pkg, 'Billed', 'setup', conf=>$conf) %>
+          <% pkg_status_row($cust_pkg, 'Billed', 'setup', %opt) %>
 
 %       } else { 
 %
             %>
 %         } 
 
-          <% pkg_status_row($cust_pkg, 'Setup', 'setup', conf=>$conf) %>
+          <% pkg_status_row($cust_pkg, 'Setup', 'setup', %opt) %>
 
 %       } 
 %
 %   my $autosuspend = pkg_autosuspend_time( $cust_pkg );
 %   $cust_pkg->set('autosuspend', $autosuspend) if $autosuspend;
 
-      <% pkg_status_row_changed( $cust_pkg, conf=>$conf ) %>
-      <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', conf=>$conf, curuser=>$curuser ) %>
-      <% pkg_status_row_if( $cust_pkg, $next_bill_or_prepaid_until, 'bill', conf=>$conf, curuser=>$curuser ) %>
-      <% pkg_status_row_if($cust_pkg, 'Will automatically suspend by', 'autosuspend', conf=>$conf) %>
-      <% pkg_status_row_if( $cust_pkg, 'Will suspend on', 'adjourn', conf=>$conf, curuser=>$curuser ) %>
-      <% pkg_status_row_if( $cust_pkg, 'Expires', 'expire', conf=>$conf, curuser=>$curuser ) %>
+      <% pkg_status_row_changed( $cust_pkg, %opt ) %>
+      <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', %opt, curuser=>$curuser ) %>
+      <% pkg_status_row_if( $cust_pkg, $next_bill_or_prepaid_until, 'bill', %opt, curuser=>$curuser ) %>
+      <% pkg_status_row_if($cust_pkg, 'Will automatically suspend by', 'autosuspend', %opt) %>
+      <% pkg_status_row_if( $cust_pkg, 'Will suspend on', 'adjourn', %opt, curuser=>$curuser ) %>
+      <% pkg_status_row_if( $cust_pkg, 'Expires', 'expire', %opt, curuser=>$curuser ) %>
 
 %     if ( $part_pkg->freq ) { 
 
@@ -171,9 +171,8 @@ my $bgcolor  = $opt{'bgcolor'};
 my $cust_pkg = $opt{'cust_pkg'};
 my $part_pkg = $opt{'part_pkg'};
 my $curuser  = $FS::CurrentUser::CurrentUser;
-my $conf     = new FS::Conf;
-my $colspan  = $conf->exists('cust_pkg-display_times') ? 8 : 4;
-my $width    = $conf->exists('cust_pkg-display_times') ? '38%' : '56%';
+my $colspan  = $opt{'cust_pkg-display_times'} ? 8 : 4;
+my $width    = $opt{'cust_pkg-display_times'} ? '38%' : '56%';
 
 #false laziness w/edit/REAL_cust_pkg.cgi
 my( $billed_or_prepaid, $last_bill_or_renewed, $next_bill_or_prepaid_until );
@@ -213,7 +212,7 @@ sub pkg_status_row {
   $html   .= qq($title&nbsp;);
   $html   .= qq(</B></FONT>) if length($color);
   $html   .= qq(</TD>);
-  $html   .= pkg_datestr($cust_pkg, $field, $opt{conf}).'</TR>';
+  $html   .= pkg_datestr($cust_pkg, $field, %opt).'</TR>';
 
   $html;
 }
@@ -237,7 +236,7 @@ sub pkg_status_row_if {
 sub pkg_status_row_changed {
   my( $cust_pkg, %opt ) = @_;
   return '' unless $cust_pkg->change_date;
-  my $html = pkg_status_row( $cust_pkg, 'Package&nbsp;changed', 'change_date', conf=>$opt{'conf'} );
+  my $html = pkg_status_row( $cust_pkg, 'Package&nbsp;changed', 'change_date', %opt );
   my $old = $cust_pkg->old_cust_pkg;
   if ( $old ) {
     my $part_pkg = $old->part_pkg;
@@ -269,7 +268,7 @@ sub pkg_status_row_colspan {
 }
 
 sub pkg_datestr {
-  my($cust_pkg, $field, $conf) = @_ or return '';
+  my($cust_pkg, $field, %opt) = @_ or return '';
   return '&nbsp;' unless $cust_pkg->get($field);
   my $format = '<TD align="left"><B>%b</B></TD>'.
                '<TD align="right"><B>&nbsp;%o,</B></TD>'.
@@ -279,7 +278,7 @@ sub pkg_datestr {
              '<TD ALIGN="center"><B>:</B></TD>'.
              '<TD ALIGN="left"><B>%M</B></TD>'.
              '<TD ALIGN="left"><B>&nbsp;%P</B></TD>'
-    if $conf->exists('cust_pkg-display_times');
+    if $opt{'cust_pkg-display_times'};
   my $strip = time2str($format, $cust_pkg->get($field) );
   $strip =~ s/ (\d)/$1/g;
   $strip;