X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=7363700ed5f453ad7f093aa960ab178356fed4ef;hb=fcbf34af990ebdec111e194de1fcbee941325a21;hp=7e21b0f95225c48d9f187d5d9ba712650429c3d8;hpb=8e3646075dfae1246f287ba3384eb34a83c67b08;p=freeside.git diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 7e21b0f95..7363700ed 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -10,9 +10,6 @@ use FS::Conf; use FS::Record qw(qsearchs qsearch); use FS::cdr; use FS::detail_format; -#use FS::rate; -#use FS::rate_prefix; -#use FS::rate_detail; $DEBUG = 0; @@ -22,6 +19,7 @@ tie my %cdr_svc_method, 'Tie::IxHash', 'svc_pbx.svcnum' => 'Freeside service # (svc_pbx.svcnum)', 'svc_pbx.ip.src' => 'PBX name to source IP address', 'svc_pbx.ip.dst' => 'PBX name to destination IP address', + 'svc_acct.username' => 'Username (svc_acct.username)', ; tie my %rating_method, 'Tie::IxHash', @@ -108,19 +106,13 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', }, 'ratenum' => { 'name' => 'Rate plan', - 'type' => 'select', - 'select_table' => 'rate', - 'select_key' => 'ratenum', - 'select_label' => 'ratename', + 'type' => 'select-rate', }, 'intrastate_ratenum' => { 'name' => 'Optional alternate intrastate rate plan', - 'type' => 'select', - 'select_table' => 'rate', - 'select_key' => 'ratenum', - 'select_label' => 'ratename', + 'type' => 'select-rate', 'disable_empty' => 0, - 'empty_label' => '', + 'empty_label' => ' ', }, 'calls_included' => { 'name' => 'Number of calls included at no usage charge', }, @@ -290,6 +282,9 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'bill_inactive_svcs' => { 'name' => 'Bill for all phone numbers that were active during the billing period', 'type' => 'checkbox', }, + 'bill_only_pkg_dates' => { 'name' => 'Only bill CDRs with a date during the package billing period', + 'type' => 'checkbox', + }, 'count_available_phones' => { 'name' => 'Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.', 'type' => 'checkbox', @@ -353,6 +348,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', selfservice_format selfservice_inbound_format usage_mandate usage_section summarize_usage usage_showzero bill_every_call bill_inactive_svcs + bill_only_pkg_dates count_available_phones suspend_bill ) ], @@ -461,18 +457,34 @@ sub calc_usage { 'calltypenum' => $self->option('use_calltypenum',1), 'status' => '', 'for_update' => 1, - ); # $last_bill, $$sdate ) + ); + if ( $self->option('bill_only_pkg_dates') ) { + $options{'begin'} = $last_bill; + $options{'end'} = $$sdate; + } if ( $svc_field eq 'svcnum' ) { $options{'by_svcnum'} = 1; - } - elsif ($svc_table eq 'svc_pbx' and $svc_field eq 'ip') { + } elsif ($svc_table eq 'svc_pbx' and $svc_field eq 'ip') { $options{'by_ip_addr'} = $by_ip_addr; } #my @invoice_details_sort; + # for tagging invoice details + # (unfortunate; should be a svc_x class method or table_info item or + # something) + my $phonenum; + if ( $svc_table eq 'svc_phone' ) { + $phonenum = $svc_x->phonenum; + } elsif ( $svc_table eq 'svc_pbx' ) { + $phonenum = $svc_x->title; + } elsif ( $svc_table eq 'svc_acct' ) { + $phonenum = $svc_x->username; + } + $formatter->phonenum($phonenum); + #first rate any outstanding CDRs not yet rated - # XXX eventually use an FS::Cursor for this + # use FS::Cursor for this starting in 4.x my $cdr_search = $svc_x->psearch_cdrs(%options); $cdr_search->limit(1000); $cdr_search->increment(0); # because we're changing their status as we go @@ -678,6 +690,7 @@ sub reset_usage { # tells whether cust_bill_pkg_detail should return a single line for # each phonenum +# i think this is currently unused? sub sum_usage { my $self = shift; $self->option('output_format') =~ /^sum_/;