[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