[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