[freeside-commits] branch master updated. 1d966768ea430d102aac2dfbedc7cc6b503b7e1a

Ivan Kohler ivan at freeside.biz
Wed Apr 11 13:26:08 PDT 2018


The branch, master has been updated
       via  1d966768ea430d102aac2dfbedc7cc6b503b7e1a (commit)
      from  c0f84de8067f9cd98bdd3cfd593427c90123b494 (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 1d966768ea430d102aac2dfbedc7cc6b503b7e1a
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Apr 11 13:26:07 2018 -0700

    optimize invoice display with sections, RT#80177

diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index 551d53fc4..6c1e30e4a 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -2676,7 +2676,13 @@ sub _items_sections {
       foreach my $display ($cust_bill_pkg->cust_bill_pkg_display) {
         next if ( $display->summary && $opt{summary} );
 
-        my $section = $display->section;
+        #my $section = $display->section;
+        #false laziness with the method, but for efficiency inside this loop
+        my $section = $display->get('section');
+        if ( !$section && !$cust_bill_pkg->hidden ) {
+          $section = $cust_bill_pkg->get('categoryname'); #cust_bill->cust_bill_pkg added it (XXX quotations / quotation_section)
+        }
+
         my $type    = $display->type;
         # Set $section = undef if we're sectioning by location and this
         # line item _has_ a location (i.e. isn't a fee).
@@ -3101,6 +3107,8 @@ sub _items_fee {
   my @cust_bill_pkg = grep { $_->feepart } $self->cust_bill_pkg;
   my $escape_function = $options{escape_function};
 
+  my $locale = $self->cust_main->locale;
+
   my @items;
   foreach my $cust_bill_pkg (@cust_bill_pkg) {
     # cache this, so we don't look it up again in every section
@@ -3141,7 +3149,7 @@ sub _items_fee {
           $self->mt('from invoice #[_1] on [_2]', $_, $base_invnums{$_})
         );
     }
-    my $desc = $part_fee->itemdesc_locale($self->cust_main->locale);
+    my $desc = $part_fee->itemdesc_locale($locale);
     # but not escape the base description line
 
     my @pkg_tax = $cust_bill_pkg->_pkg_tax_list
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index 942715b20..38b1d5c6d 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -521,7 +521,13 @@ Returns the line items (see L<FS::cust_bill_pkg>) for this invoice.
 sub cust_bill_pkg {
   my $self = shift;
   qsearch(
-    { 'table'    => 'cust_bill_pkg',
+    { 
+      'select'    => 'cust_bill_pkg.*, pkg_category.categoryname',
+      'table'    => 'cust_bill_pkg',
+      'addl_from' => ' LEFT JOIN cust_pkg     USING ( pkgnum ) '.
+                     ' LEFT JOIN part_pkg     USING ( pkgpart ) '.
+                     ' LEFT JOIN pkg_class    USING ( classnum ) '.
+                     ' LEFT JOIN pkg_category USING ( categorynum ) ',
       'hashref'  => { 'invnum' => $self->invnum },
       'order_by' => 'ORDER BY billpkgnum', #important?  otherwise we could use
                                            # the AUTLOADED FK search.  or should

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

Summary of changes:
 FS/FS/Template_Mixin.pm | 12 ++++++++++--
 FS/FS/cust_bill.pm      |  8 +++++++-
 2 files changed, 17 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list