[freeside-commits] branch master updated. 47ac2424ffb654df0def63cc805a87bafb6376bd
Mark Wells
mark at 420.am
Wed Dec 16 20:36:26 PST 2015
The branch, master has been updated
via 47ac2424ffb654df0def63cc805a87bafb6376bd (commit)
from da6b5077952f9630f68363df66fa80efc8f1d5b7 (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 47ac2424ffb654df0def63cc805a87bafb6376bd
Author: Mark Wells <mark at freeside.biz>
Date: Wed Dec 16 20:25:23 2015 -0800
avoid billing packages that will have expired before the billing date, #30049 and #38017
diff --git a/FS/FS/cust_main/Billing.pm b/FS/FS/cust_main/Billing.pm
index d3c618d..29535f2 100644
--- a/FS/FS/cust_main/Billing.pm
+++ b/FS/FS/cust_main/Billing.pm
@@ -999,9 +999,10 @@ sub _make_lines {
# - it doesn't already HAVE a setup date
# - or a start date in the future
# - and it's not suspended
+ # - and it doesn't have an expire date in the past
#
- # The last condition used to check the "disable_setup_suspended" option but
- # that's obsolete. We now never set the setup date on a suspended package.
+ # The "disable_setup_suspended" option is now obsolete; we never set the
+ # setup date on a suspended package.
if ( ! $options{recurring_only}
and ! $options{cancel}
and ( $options{'resetup'}
@@ -1012,6 +1013,8 @@ sub _make_lines {
&& ( ! $cust_pkg->getfield('susp') )
)
)
+ and ( ! $cust_pkg->expire
+ || $cust_pkg->expire > $cmp_time )
)
{
@@ -1059,6 +1062,20 @@ sub _make_lines {
my $recur_billed_currency = '';
my $recur_billed_amount = 0;
my $sdate;
+ # Conditions for billing the recurring fee:
+ # - the package doesn't have a future start date
+ # - and it's not suspended
+ # - unless suspend_bill is enabled on the package or package def
+ # - but still not, if the package is on hold
+ # - or it's suspended for a delayed cancellation
+ # - and its next bill date is in the past
+ # - or it doesn't have a next bill date yet
+ # - or it's a one-time charge
+ # - or it's a CDR plan with the "bill_every_call" option
+ # - or it's being canceled
+ # - and it doesn't have an expire date in the past (this can happen with
+ # advance billing)
+ # - again, unless it's being canceled
if ( ! $cust_pkg->start_date
and
( ! $cust_pkg->susp
@@ -1077,6 +1094,12 @@ sub _make_lines {
&& $part_pkg->option('bill_every_call')
)
|| $options{cancel}
+
+ and
+ ( ! $cust_pkg->expire
+ || $cust_pkg->expire > $cmp_time
+ || $options{cancel}
+ )
) {
# XXX should this be a package event? probably. events are called
-----------------------------------------------------------------------
Summary of changes:
FS/FS/cust_main/Billing.pm | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
More information about the freeside-commits
mailing list