X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=9981da0c90277a17d3be9394255916c33c8f51ae;hb=594f6993d818db68b15ecfb6c339e5d23be50950;hp=8294bed65ef72790a4fd6cc66749e32438304ec8;hpb=f17a8c61688951fdc72b0beaeaab7643fef41a9e;p=freeside.git diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 8294bed65..9981da0c9 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -22,6 +22,7 @@ $DEBUG = 0; tie my %cdr_svc_method, 'Tie::IxHash', 'svc_phone.phonenum' => 'Phone numbers (svc_phone.phonenum)', 'svc_pbx.title' => 'PBX name (svc_pbx.title)', + 'svc_pbx.svcnum' => 'Freeside service # (svc_pbx.svcnum)', ; tie my %rating_method, 'Tie::IxHash', @@ -70,7 +71,10 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); 'subscription', 'default' => '1', }, - + 'add_full_period'=> { 'name' => 'When prorating first month, also bill '. + 'for one full period after that', + 'type' => 'checkbox', + }, 'recur_method' => { 'name' => 'Recurring fee method', #'type' => 'radio', #'options' => \%recur_method, @@ -253,6 +257,7 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); 'fieldorder' => [qw( setup_fee recur_fee recur_temporality unused_credit recur_method cutoff_day + add_full_period cdr_svc_method rating_method ratenum min_charge sec_granularity ignore_unrateable @@ -365,13 +370,16 @@ sub calc_usage { ) { my $svc_x = $cust_svc->svc_x; - foreach my $cdr ( - $svc_x->get_cdrs( + my %options = ( 'disable_src' => $self->option('disable_src'), 'default_prefix' => $self->option('default_prefix'), 'status' => '', 'for_update' => 1, - ) # $last_bill, $$sdate ) + ); # $last_bill, $$sdate ) + $options{'by_svcnum'} = 1 if $svc_field eq 'svcnum'; + + foreach my $cdr ( + $svc_x->get_cdrs( %options ) ) { if ( $DEBUG > 1 ) { warn "rating CDR $cdr\n". @@ -851,7 +859,7 @@ sub check_chargable { return "destination less than $dst_length digits" if $dst_length && length($cdr->dst) < $dst_length && ! ( $opt{'noskip_dst_length_accountcode_tollfree'} - && $cdr->is_tollfree + && $cdr->is_tollfree('accountcode') ); return "lastapp is $opt{'skip_lastapp'}"