summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark <mark>2011-12-03 19:49:25 +0000
committermark <mark>2011-12-03 19:49:25 +0000
commit65ea98d95058ab593943e3331cb5df2c241091a6 (patch)
tree5dd1157092d78b8acf1e312d1932e430d4d2982b
parent56ce0b6c17a028cb7fe7ffbf9a103e8fbb6234ff (diff)
fix edge case with prorate_defer_bill, #15432
-rw-r--r--FS/FS/part_pkg/prorate_Mixin.pm10
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);