X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fflat_delayed.pm;h=8ac1682802cb74b7aa252b04650fbe13400d97d0;hp=caade409e1cbca4b8398aef25f8b71be1c5613f1;hb=eb4ff7f73c5d4bdf74a3472448b5a195598ff4cd;hpb=32b5d3a31f112a381f0a15ac5e3a2204242f3405 diff --git a/FS/FS/part_pkg/flat_delayed.pm b/FS/FS/part_pkg/flat_delayed.pm index caade409e..8ac168280 100644 --- a/FS/FS/part_pkg/flat_delayed.pm +++ b/FS/FS/part_pkg/flat_delayed.pm @@ -48,4 +48,21 @@ sub calc_setup { $self->option('setup_fee'); } +sub calc_remain { + my ($self, $cust_pkg, %options) = @_; + my $next_bill = $cust_pkg->getfield('bill') || 0; + my $last_bill = $cust_pkg->last_bill || 0; + my $free_days = $self->option('free_days'); + + return 0 if $last_bill + (86400 * $free_days) == $next_bill + && $last_bill == $cust_pkg->setup; + + return 0 if ! $self->base_recur + || ! $self->option('unused_credit', 1) + || ! $last_bill + || ! $next_bill; + + return $self->SUPER::calc_remain($cust_pkg, %options); +} + 1;