X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fsubscription.pm;h=bf644d48c426a3476f1fea797b0da7722b2e1c7e;hb=368ed08e24400e9d1faf401a1e4e23ea54d2c969;hp=3c5f96b89bf5dba0da8488c35b004545fc48e2ea;hpb=d3ce5efd1ec0e1a715a154696e2b0aa86e51c27b;p=freeside.git diff --git a/FS/FS/part_pkg/subscription.pm b/FS/FS/part_pkg/subscription.pm index 3c5f96b89..bf644d48c 100644 --- a/FS/FS/part_pkg/subscription.pm +++ b/FS/FS/part_pkg/subscription.pm @@ -88,6 +88,11 @@ use FS::part_pkg::flat; sub calc_recur { my($self, $cust_pkg, $sdate, $details, $param ) = @_; my $cutoff_day = $self->option('cutoff_day', 1) || 1; + my $cust_main = $cust_pkg->cust_main; + if ( $cust_main->force_prorate_day and $cust_main->prorate_day ) { + $cutoff_day = $cust_main->prorate_day; + } + my $mnow = $$sdate; my ($sec,$min,$hour,$mday,$mon,$year) = (localtime($mnow) )[0,1,2,3,4,5]; @@ -98,11 +103,11 @@ sub calc_recur { $$sdate = timelocal(0,0,0,$cutoff_day,$mon,$year); - my $br = $self->base_recur($cust_pkg); + my $br = $self->base_recur($cust_pkg, $sdate); my $discount = $self->calc_discount($cust_pkg, $sdate, $details, $param); - sprintf('%.2f', $br - $discount); + sprintf('%.2f', ($cust_pkg->quantity || 1) * ($br - $discount) ); } 1;