diff options
| author | ivan <ivan> | 2009-02-07 08:23:10 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2009-02-07 08:23:10 +0000 | 
| commit | 7d751137371d5e6e263265e7aa37433ad7f871c3 (patch) | |
| tree | 1f7d0586cb3afe82bc535d61f364449d348c550b /httemplate | |
| parent | e7ab6cb3a3e2b1cb9a33fa162356b428f02bae2d (diff) | |
optimize customer view: avoid looking up config values inside loops, RT#4728
Diffstat (limited to 'httemplate')
| -rwxr-xr-x | httemplate/view/cust_main/packages.html | 20 | ||||
| -rw-r--r-- | httemplate/view/cust_main/packages/location.html | 7 | ||||
| -rw-r--r-- | httemplate/view/cust_main/packages/services.html | 11 | ||||
| -rw-r--r-- | httemplate/view/cust_main/packages/status.html | 51 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history.html | 14 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history/payment.html | 5 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history/refund.html | 3 | 
7 files changed, 63 insertions, 48 deletions
diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html index afd9941f6..5c0ee48af 100755 --- a/httemplate/view/cust_main/packages.html +++ b/httemplate/view/cust_main/packages.html @@ -145,10 +145,24 @@ Current packages  %     $bgcolor = $bgcolor1;  %   }  % +%   my $countrydefault = scalar($conf->config('countrydefault')) || 'US';  %   my %iopt = ( -%     'bgcolor'  => $bgcolor, -%     'cust_pkg' => $cust_pkg, -%     'part_pkg' => $cust_pkg->part_pkg, +%     'bgcolor'                  => $bgcolor, +%     'cust_pkg'                 => $cust_pkg, +%     'part_pkg'                 => $cust_pkg->part_pkg, +% +%     #for services.html and status.html +%     'cust_pkg-display_times'   => $conf->exists('cust_pkg-display_times'), +% +%     #for location.html +%     'countrydefault'           => $countrydefault, +%     'statedefault'             => ( scalar($conf->config('statedefault')) +%                                    || ($countrydefault eq 'US' ? 'CA' : '') ), +% +%     #for services.html +%     'svc_external-skip_manual' => $conf->exists('svc_external-skip_manual'), +%     'legacy_link'              => $conf->exists('legacy_link'), +%  %   );      <!--pkgnum: <% $cust_pkg->pkgnum %>--> diff --git a/httemplate/view/cust_main/packages/location.html b/httemplate/view/cust_main/packages/location.html index b51616d0c..59efce14a 100644 --- a/httemplate/view/cust_main/packages/location.html +++ b/httemplate/view/cust_main/packages/location.html @@ -33,14 +33,11 @@  my %opt = @_; -my $conf = new FS::Conf; -  my $bgcolor        = $opt{'bgcolor'};  my $cust_pkg       = $opt{'cust_pkg'};  my $part_pkg       = $opt{'part_pkg'}; -my $conf           = new FS::Conf; -my $countrydefault = $conf->config('countrydefault') || 'US'; -my $statedefault   = $conf->config('statedefault') +my $countrydefault = $opt{'countrydefault'} || 'US'; +my $statedefault   = $opt{'statedefault'}                       || ($countrydefault eq 'US' ? 'CA' : '');  my $loc = $cust_pkg->cust_location_or_main; diff --git a/httemplate/view/cust_main/packages/services.html b/httemplate/view/cust_main/packages/services.html index f46afb926..1e473736b 100644 --- a/httemplate/view/cust_main/packages/services.html +++ b/httemplate/view/cust_main/packages/services.html @@ -20,7 +20,7 @@        <TR>          <TD ALIGN="right" COLSPAN="3" VALIGN="top" STYLE="padding-bottom:1px;padding-top:0px"><FONT SIZE="-2" COLOR="#FFD000"> -            <% $cust_svc->overlimit ? "Overlimit: ". time2str('%b %o %Y' . ($conf->exists('cust_pkg-display_times') ? ' %l:%M %P' : ''), $cust_svc->overlimit) : '' %> +            <% $cust_svc->overlimit ? "Overlimit: ". time2str('%b %o %Y' . ($opt{'cust_pkg-display_times'} ? ' %l:%M %P' : ''), $cust_svc->overlimit) : '' %>            </FONT></TD>        </TR> @@ -55,7 +55,7 @@        <TR>          <TD COLSPAN=3 ALIGN="center" STYLE="padding-bottom:4px;padding-top:0px"> -          <B><% svc_provision_link($cust_pkg, $part_svc, $conf, $curuser) %></B> +          <B><% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %></B>          </TD>        </TR> @@ -74,17 +74,16 @@ 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;  sub svc_provision_link { -  my ($cust_pkg, $part_svc, $conf, $curuser) = @_; +  my ($cust_pkg, $part_svc, $opt, $curuser) = @_;    ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/ /g;    my $num_avail = $part_svc->num_avail;    my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'.                         "svcpart=". $part_svc->svcpart;    my $url;    if ( $part_svc->svcdb eq 'svc_external' #could be generalized -       && $conf->exists('svc_external-skip_manual') +       && $opt->{'svc_external-skip_manual'}    ) {      $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart";    } else { @@ -99,7 +98,7 @@ sub svc_provision_link {    my $link = qq!<A CLASS="provision" HREF="$url">!.               "Provision $svc_nbsp ($num_avail)</A>"; -  if ( $conf->exists('legacy_link') +  if ( $opt->{'legacy_link'}         && $curuser->access_right('View/link unlinked services')       )    { diff --git a/httemplate/view/cust_main/packages/status.html b/httemplate/view/cust_main/packages/status.html index 4e7462b75..e0a188e57 100644 --- a/httemplate/view/cust_main/packages/status.html +++ b/httemplate/view/cust_main/packages/status.html @@ -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 : '' ), '', @@ -20,10 +20,10 @@  %   } 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 : '' ), '', @@ -43,13 +43,13 @@  %   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 charge') %> -          <% pkg_status_row($cust_pkg, 'Billed', 'setup', conf=>$conf) %> +          <% pkg_status_row($cust_pkg, 'Billed', 'setup', %opt) %>  %       } else {   % @@ -116,7 +116,7 @@              %>  %         }  -          <% pkg_status_row($cust_pkg, 'Setup', 'setup', conf=>$conf) %> +          <% pkg_status_row($cust_pkg, 'Setup', 'setup', %opt) %>  %       }   % @@ -124,12 +124,12 @@  %   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 );    $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 changed', 'change_date', conf=>$opt{'conf'} ); +  my $html = pkg_status_row( $cust_pkg, 'Package 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 ' ' unless $cust_pkg->get($field);    my $format = '<TD align="left"><B>%b</B></TD>'.                 '<TD align="right"><B> %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> %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; diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index c3a9019c6..9628d7418 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -157,7 +157,7 @@  <TR>    <TH CLASS="grid" BGCOLOR="#cccccc">Date</TH>    <TH CLASS="grid" BGCOLOR="#cccccc">Description</TH> -  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Charge</FONT></TH> +  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Invoice</FONT></TH>    <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment</FONT></TH>    <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>In-house<BR>Credit</FONT></TH>    <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Refund</FONT></TH> @@ -344,11 +344,19 @@ my %status = (  #get payment history  my @history = (); +my %opt = +  ( map { $_ => scalar($conf->config($_)) } +        qw( card_refund-days ) +  ), +  ( map { $_ => $conf->exists($_) }  +        qw( deletepayments deleterefunds ) +  ); +  #invoices  foreach my $cust_bill ($cust_main->cust_bill) {    push @history, {      'date'   => $cust_bill->_date, -    'desc'   => include('payment_history/invoice.html', $cust_bill), +    'desc'   => include('payment_history/invoice.html', $cust_bill, %opt ),      'charge' => $cust_bill->charged,    };  } @@ -357,7 +365,7 @@ foreach my $cust_bill ($cust_main->cust_bill) {  foreach my $cust_pay ($cust_main->cust_pay) {    push @history, {      'date'    => $cust_pay->_date, -    'desc'    => include('payment_history/payment.html', $cust_pay), +    'desc'    => include('payment_history/payment.html', $cust_pay, %opt ),      'payment' => $cust_pay->paid,      #'target'  => $target, #XXX    }; diff --git a/httemplate/view/cust_main/payment_history/payment.html b/httemplate/view/cust_main/payment_history/payment.html index 346c0d03d..2e24b1785 100644 --- a/httemplate/view/cust_main/payment_history/payment.html +++ b/httemplate/view/cust_main/payment_history/payment.html @@ -4,7 +4,6 @@  my( $cust_pay, %opt ) = @_; -my $conf = new FS::Conf;  my $curuser = $FS::CurrentUser::CurrentUser;  my $payby = $cust_pay->payby; @@ -139,7 +138,7 @@ my $view =     ')';  my $refund = ''; -my $refund_days = $conf->config('card_refund-days') || 120; +my $refund_days = $opt{'card_refund-days'} || 120;  if (    $cust_pay->closed !~ /^Y/i       && $cust_pay->payby =~ /^(CARD|CHEK)$/       && time-$cust_pay->_date < $refund_days*86400 @@ -179,7 +178,7 @@ if (    $cust_pay->closed !~ /^Y/i  my $delete = '';  if ( $cust_pay->closed !~ /^Y/i -     && $conf->exists('deletepayments') +     && $opt{'deletepayments'}       && $curuser->access_right('Delete payment')     )  { diff --git a/httemplate/view/cust_main/payment_history/refund.html b/httemplate/view/cust_main/payment_history/refund.html index 797882103..4a48fea1e 100644 --- a/httemplate/view/cust_main/payment_history/refund.html +++ b/httemplate/view/cust_main/payment_history/refund.html @@ -5,7 +5,6 @@ by <% $cust_refund->otaker %><% $view %><% $delete %>  my( $cust_refund, %opt ) = @_; -my $conf = new FS::Conf;  my $curuser = $FS::CurrentUser::CurrentUser;  my $payby = $cust_refund->payby; @@ -36,7 +35,7 @@ my $view =  my $delete = '';  if ( $cust_refund->closed !~ /^Y/i -     && $conf->exists('deleterefunds') +     && $opt{'deleterefunds'}       && $curuser->access_right('Delete refund')     )  {  | 
