diff options
author | mark <mark> | 2011-12-03 19:49:25 +0000 |
---|---|---|
committer | mark <mark> | 2011-12-03 19:49:25 +0000 |
commit | 65ea98d95058ab593943e3331cb5df2c241091a6 (patch) | |
tree | 5dd1157092d78b8acf1e312d1932e430d4d2982b /FS/FS/part_pkg | |
parent | 56ce0b6c17a028cb7fe7ffbf9a103e8fbb6234ff (diff) |
fix edge case with prorate_defer_bill, #15432
Diffstat (limited to 'FS/FS/part_pkg')
-rw-r--r-- | FS/FS/part_pkg/prorate_Mixin.pm | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/FS/FS/part_pkg/prorate_Mixin.pm b/FS/FS/part_pkg/prorate_Mixin.pm index 380f0b029..78a089313 100644 --- a/FS/FS/part_pkg/prorate_Mixin.pm +++ b/FS/FS/part_pkg/prorate_Mixin.pm @@ -103,7 +103,7 @@ sub calc_prorate { $months += $param->{'freq_override'} - 1; } elsif ( ( $self->option('add_full_period',1) - or $self->option('prorate_defer_bill',1) ) # necessary + or $self->option('prorate_defer_bill',1) ) and $months < $self->freq ) { $months += $self->freq; $$sdate = $self->add_freq($mstart); @@ -131,10 +131,12 @@ sub prorate_setup { and $cutoff_day ) { my ($mnow, $mend, $mstart) = $self->_endpoints($sdate, $cutoff_day); - # if today is the cutoff day, set the next bill to right now instead - # of waiting a month. + # If today is the cutoff day, set the next bill and setup both to + # midnight today, so that the customer will be billed normally for a + # month starting today. if ( $mnow - $mstart < 86400 ) { - $cust_pkg->bill($mnow); + $cust_pkg->setup($mstart); + $cust_pkg->bill($mstart); } else { $cust_pkg->bill($mend); |