[freeside-commits] branch master updated. 65d0561c4d456c2d600acb03a675549d098f5776
Ivan
ivan at 420.am
Tue Sep 10 22:19:34 PDT 2013
The branch, master has been updated
via 65d0561c4d456c2d600acb03a675549d098f5776 (commit)
from f417eee294482e6a7bc4ad60c916b84ffd662112 (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 65d0561c4d456c2d600acb03a675549d098f5776
Author: Ivan Kohler <ivan at freeside.biz>
Date: Tue Sep 10 22:19:29 2013 -0700
improve performance of package ordering, RT#24955, fallout from future start dates, RT#20686
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index 15c29c4..e187425 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -1089,32 +1089,15 @@ sub can_discount { 0; }
# whether the plan allows changing the start date
sub can_start_date { 1; }
-# the default start date; takes an FS::cust_main as an argument
-sub default_start_date {
+# the delay start date if present
+sub delay_start_date {
my $self = shift;
- my $cust_main = shift;
- my $conf = FS::Conf->new;
- if ( $self->delay_start ) {
- my $delay = $self->delay_start;
+ my $delay = $self->delay_start or return '';
- my ($mday,$mon,$year) = (localtime(time))[3,4,5];
- my $start_date = timelocal(0,0,0,$mday,$mon,$year) + 86400 * $delay;
- return $start_date;
+ my ($mday,$mon,$year) = (localtime(time))[3,4,5];
+ timelocal(0,0,0,$mday,$mon,$year) + 86400 * $delay;
- } elsif ( $conf->exists('order_pkg-no_start_date') ) {
-
- return '';
-
- } elsif ( $cust_main ) {
-
- return $cust_main->next_bill_date;
-
- } else {
-
- return '';
-
- }
}
sub can_currency_exchange { 0; }
diff --git a/httemplate/misc/cust-part_pkg.cgi b/httemplate/misc/cust-part_pkg.cgi
index 7aebda4..6c4524c 100644
--- a/httemplate/misc/cust-part_pkg.cgi
+++ b/httemplate/misc/cust-part_pkg.cgi
@@ -3,7 +3,6 @@
my( $custnum, $prospectnum, $classnum ) = $cgi->param('arg');
-
my $agent;
my $cust_main;
if ( $custnum ) {
@@ -32,10 +31,17 @@ my @part_pkg = qsearch({
'order_by' => 'ORDER BY pkg',
});
-my $date_format = FS::Conf->new->config('date_format') || '%m/%d/%Y';
+my $conf = new FS::Conf;
+
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
+
+my $default_start_date = $conf->exists('order_pkg-no_start-date')
+ ? ''
+ : $cust_main->next_bill_date;
my @return = map {
- my $start_date = $_->default_start_date($cust_main);
+ my $start_date = $_->delay_start_date
+ || $default_start_date;
$start_date = time2str($date_format, $start_date)
if $start_date;
( $_->pkgpart,
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_pkg.pm | 27 +++++----------------------
httemplate/misc/cust-part_pkg.cgi | 12 +++++++++---
2 files changed, 14 insertions(+), 25 deletions(-)
More information about the freeside-commits
mailing list