summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-06-18 18:13:22 -0700
committerIvan Kohler <ivan@freeside.biz>2014-06-18 18:13:22 -0700
commit479ec8dd320258a22165d05da9624e6571c0daaf (patch)
tree6c315f9700b20628f6ca8f3fa363981f83717746 /FS
parent4532048fddaf20751dda7721ee6bab4bac8755ac (diff)
fix (part of) 3.x performance regression on customers with tons of invoices, RT#29646, RT#24850
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/Template_Mixin.pm22
-rw-r--r--FS/FS/cust_bill.pm5
2 files changed, 23 insertions, 4 deletions
diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index 23ee6baee..1c373f95d 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -2,7 +2,9 @@ package FS::Template_Mixin;
use strict;
use vars qw( $DEBUG $me
- $money_char );
+ $money_char
+ $date_format
+ );
# but NOT $conf
use vars qw( $invoice_lines @buf ); #yuck
use List::Util qw(sum);
@@ -26,7 +28,8 @@ $DEBUG = 0;
$me = '[FS::Template_Mixin]';
FS::UID->install_callback( sub {
my $conf = new FS::Conf; #global
- $money_char = $conf->config('money_char') || '$';
+ $money_char = $conf->config('money_char') || '$';
+ $date_format = $conf->config('date_format') || '%x'; #/YY
} );
=item conf [ MODE ]
@@ -1799,7 +1802,8 @@ sub credit_balance_msg {
=item _date_pretty
-Returns a string with the date, for example: "3/20/2008"
+Returns a string with the date, for example: "3/20/2008", localized for the
+customer. Use _date_pretty_unlocalized for non-end-customer display use.
=cut
@@ -1808,6 +1812,18 @@ sub _date_pretty {
$self->time2str_local('short', $self->_date);
}
+=item _date_pretty_unlocalized
+
+Returns a string with the date, for example: "3/20/2008", in the format
+configured for the back-office. Use _date_pretty for end-customer display use.
+
+=cut
+
+sub _date_pretty_unlocalized {
+ my $self = shift;
+ $self->time2str($date_format, $self->_date);
+}
+
=item _items_sections OPTIONS
Generate section information for all items appearing on this invoice.
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index fda1c7287..58288b4b5 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -2462,9 +2462,12 @@ Returns a string with the invoice number and date, for example:
=cut
+#note: this uses _date_pretty_unlocalized because _date_pretty is too expensive
+# for backend use (and also does the wrong thing, localizing for end customer
+# instead of backoffice configured date format)
sub invnum_date_pretty {
my $self = shift;
- $self->mt('Invoice #'). $self->invnum. ' ('. $self->_date_pretty. ')';
+ $self->mt('Invoice #'). $self->invnum. ' ('. $self->_date_pretty_unlocalized. ')';
}
#sub _items_extra_usage_sections {