From: jeff Date: Thu, 2 Apr 2009 15:46:49 +0000 (+0000) Subject: prorating for the fixed recurring portion of voip X-Git-Tag: root_of_svc_elec_features~1308 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=c8ed7ae4cf496300bba2a9a69e2224c5819d2572 prorating for the fixed recurring portion of voip --- diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index c745283d1..e08050950 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -12,7 +12,7 @@ use FS::rate; use FS::rate_prefix; use FS::rate_detail; -@ISA = qw(FS::part_pkg::flat); +@ISA = qw(FS::part_pkg::prorate); $DEBUG = 0; @@ -55,6 +55,11 @@ tie my %temporalities, 'Tie::IxHash', 'type' => 'checkbox', }, + 'cutoff_day' => { 'name' => 'Billing Day (1 - 28) for prorating. Leave'. + ' blank to charge full first month instead.', + 'default' => '', + }, + 'rating_method' => { 'name' => 'Region rating method', 'type' => 'radio', 'options' => \%rating_method, @@ -175,7 +180,7 @@ tie my %temporalities, 'Tie::IxHash', }, 'fieldorder' => [qw( setup_fee recur_fee recur_temporality unused_credit - rating_method ratenum ignore_unrateable + cutoff_day rating_method ratenum ignore_unrateable default_prefix disable_src domestic_prefix international_prefix @@ -200,7 +205,8 @@ sub calc_setup { #false laziness w/voip_sqlradacct calc_recur resolve it if that one ever gets used again sub calc_recur { - my($self, $cust_pkg, $sdate, $details, $param ) = @_; + my $self = shift; + my($cust_pkg, $sdate, $details, $param ) = @_; #my $last_bill = $cust_pkg->last_bill; my $last_bill = $cust_pkg->get('last_bill'); #->last_bill falls back to setup @@ -544,8 +550,13 @@ sub calc_recur { } #if ( $spool_cdr && length($downstream_cdr) ) - $charges += $self->option('recur_fee') - if $param->{'increment_next_bill'}; + if ($param->{'increment_next_bill'}) { + if ( $self->option('cutoff_day', 1) ) { + $charges += $self->SUPER::calc_recur(@_); + } else { + $charges += $self->option('recur_fee') + } + } $charges; }