[freeside-commits] branch FREESIDE_3_BRANCH updated. 7070356f09267ce78440bff9f36d7ce6cfcd1802

Ivan ivan at 420.am
Thu Jan 16 01:46:50 PST 2014


The branch, FREESIDE_3_BRANCH has been updated
       via  7070356f09267ce78440bff9f36d7ce6cfcd1802 (commit)
      from  9796215df2641f8f7c635b567b2186db1b25e291 (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 7070356f09267ce78440bff9f36d7ce6cfcd1802
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Jan 16 01:46:47 2014 -0800

    don't allow a start date for packages definitions with prorate_defer_bill, RT#25650

diff --git a/FS/FS/part_pkg/flat.pm b/FS/FS/part_pkg/flat.pm
index 757e1ce..f3a2b85 100644
--- a/FS/FS/part_pkg/flat.pm
+++ b/FS/FS/part_pkg/flat.pm
@@ -253,7 +253,15 @@ sub is_free_options {
 
 sub is_prepaid { 0; } #no, we're postpaid
 
-sub can_start_date { ! shift->option('start_1st', 1) }
+sub can_start_date {
+  my $self = shift;
+  my %opt = @_;
+
+  ! $self->option('start_1st', 1) && (   ! $self->option('sync_bill_date',1)
+                                      || ! $self->option('prorate_defer_bill',1)
+                                      || ! $opt{'num_ncancelled_pkgs'}
+                                     ); 
+}
 
 sub can_discount { 1; }
 
diff --git a/httemplate/misc/cust-part_pkg.cgi b/httemplate/misc/cust-part_pkg.cgi
index 54973bc..afe8e42 100644
--- a/httemplate/misc/cust-part_pkg.cgi
+++ b/httemplate/misc/cust-part_pkg.cgi
@@ -39,6 +39,14 @@ my $default_start_date = $conf->exists('order_pkg-no_start_date')
                            ? ''
                            : $cust_main->next_bill_date;
 
+#num_billing_pkgs may be slightly better (will allow you to fill in a start
+# date in the weird edge case where you're using sync_next_bill and
+# prorate_defer_bill in flat.pm and there's one-time charges hanging around
+# for this customer but no active ones)
+#but we don't have an easy method for that, and definitely don't want to pull
+# all package objects
+my $num_ncancelled_pkgs = $cust_main ? $cust_main->num_ncancelled_pkgs : 0;
+
 my @return = map  {
                     my $start_date = $_->delay_start_date
                                    || $default_start_date;
@@ -47,7 +55,9 @@ my @return = map  {
                     ( $_->pkgpart,
                       $_->pkg_comment,
                       $_->can_discount,
-                      $_->can_start_date,
+                      $_->can_start_date(
+                        num_ncancelled_pkgs => $num_ncancelled_pkgs,
+                      ),
                       $start_date,
                     )
                   }

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

Summary of changes:
 FS/FS/part_pkg/flat.pm            |   10 +++++++++-
 httemplate/misc/cust-part_pkg.cgi |   12 +++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)




More information about the freeside-commits mailing list