[freeside-commits] branch FREESIDE_3_BRANCH updated. f9587ba36d31c9992005a359c74c88d703877194

Ivan ivan at 420.am
Tue May 6 06:04:36 PDT 2014


The branch, FREESIDE_3_BRANCH has been updated
       via  f9587ba36d31c9992005a359c74c88d703877194 (commit)
      from  28ba028563d62f19f1cc2bd1160dd8c5d7e9d960 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f9587ba36d31c9992005a359c74c88d703877194
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue May 6 06:04:33 2014 -0700

    optimize package list with lots of packages, RT#28526

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index d9a13fe..e489bca 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -3456,6 +3456,13 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'cust_pkg-hide_discontinued-part_svc',
+    'section'     => 'UI',
+    'description' => "In customer view, hide provisioned services which are no longer available in the package definition.  Not normally used except for very specific situations as it hides still-provisioned services.",
+    'type'        => 'checkbox',
+  },
+
+  {
     'key'         => 'svc_acct-edit_uid',
     'section'     => 'shell',
     'description' => 'Allow UID editing.',
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index b56a35a..2a41bb6 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -2996,17 +2996,35 @@ following extra fields:
 
 =over 4
 
-=item num_cust_svc  (count)
+=item num_cust_svc
 
-=item num_avail     (quantity - count)
+(count)
 
-=item cust_pkg_svc (services) - array reference containing the provisioned services, as cust_svc objects
+=item num_avail
+
+(quantity - count)
+
+=item cust_pkg_svc
+
+(services) - array reference containing the provisioned services, as cust_svc objects
 
 =back
 
-Accepts one option: summarize_size.  If specified and non-zero, will omit the
-extra cust_pkg_svc option for objects where num_cust_svc is this size or
-greater.
+Accepts two options:
+
+=over 4
+
+=item summarize_size
+
+If true, will omit the extra cust_pkg_svc option for objects where num_cust_svc
+is this size or greater.
+
+=item hide_discontinued
+
+If true, will omit looking for services that are no longer avaialble in the
+package definition.
+
+=back
 
 =cut
 
@@ -3035,16 +3053,18 @@ sub part_svc {
     $part_svc;
   } $self->part_pkg->pkg_svc;
 
-  #extras
-  push @part_svc, map {
-    my $part_svc = $_;
-    my $num_cust_svc = $self->num_cust_svc($part_svc->svcpart);
-    $part_svc->{'Hash'}{'num_cust_svc'} = $num_cust_svc; #speak no evail
-    $part_svc->{'Hash'}{'num_avail'}    = 0; #0-$num_cust_svc ?
-    $part_svc->{'Hash'}{'cust_pkg_svc'} =
-      $num_cust_svc ? [ $self->cust_svc($part_svc->svcpart) ] : [];
-    $part_svc;
-  } $self->extra_part_svc;
+  unless ( $opt{hide_discontinued} ) {
+    #extras
+    push @part_svc, map {
+      my $part_svc = $_;
+      my $num_cust_svc = $self->num_cust_svc($part_svc->svcpart);
+      $part_svc->{'Hash'}{'num_cust_svc'} = $num_cust_svc; #speak no evail
+      $part_svc->{'Hash'}{'num_avail'}    = 0; #0-$num_cust_svc ?
+      $part_svc->{'Hash'}{'cust_pkg_svc'} =
+        $num_cust_svc ? [ $self->cust_svc($part_svc->svcpart) ] : [];
+      $part_svc;
+    } $self->extra_part_svc;
+  }
 
   @part_svc;
 
diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html
index a02bf59..57ea378 100755
--- a/httemplate/view/cust_main/packages/section.html
+++ b/httemplate/view/cust_main/packages/section.html
@@ -107,6 +107,7 @@ my %conf_opt = (
   'manage_link_loc'           => scalar($conf->config('svc_broadband-manage_link_loc')),
   'manage_link-new_window'    => $conf->exists('svc_broadband-manage_link-new_window'),
   'cust_pkg-large_pkg_size'   => scalar($conf->config('cust_pkg-large_pkg_size')),
+  'cust_pkg-hide_discontinued-part_svc' => $conf->exists('cust_pkg-hide_discontinued-part_svc'),
 
 );
 
diff --git a/httemplate/view/cust_main/packages/services.html b/httemplate/view/cust_main/packages/services.html
index 7dfc004..bb676e8 100644
--- a/httemplate/view/cust_main/packages/services.html
+++ b/httemplate/view/cust_main/packages/services.html
@@ -10,13 +10,15 @@ function clearhint_search_cust_svc(obj, str) {
 }
     </SCRIPT>
 
-%  foreach my $part_svc ( $cust_pkg->part_svc(
-%                           'summarize_size' => $opt{'cust_pkg-large_pkg_size'}
-%                       ) )
-%  {
-
+%  foreach my $part_svc (
+%    $cust_pkg->part_svc(
+%      'summarize_size'    => $opt{'cust_pkg-large_pkg_size'},
+%      'hide_discontinued' => $opt{'cust_pkg-hide_discontinued-part_svc'},
+%    )
+%  ) {
+%
 %    my $num_cust_svc = $cust_pkg->num_cust_svc( $part_svc->svcpart );
-
+%
 %    if ( $opt{'cust_pkg-large_pkg_size'} > 0 and
 %         $opt{'cust_pkg-large_pkg_size'} <= $num_cust_svc ) { # summarize
 %
@@ -116,8 +118,6 @@ 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, $opt, $curuser) = @_;
 

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm                                    |    7 +++
 FS/FS/cust_pkg.pm                                |   52 +++++++++++++++-------
 httemplate/view/cust_main/packages/section.html  |    1 +
 httemplate/view/cust_main/packages/services.html |   16 +++---
 4 files changed, 52 insertions(+), 24 deletions(-)




More information about the freeside-commits mailing list