X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=df972868c8a9d473420b0116c96ee23e269e31c9;hp=4b5158ef3d77e6a829d5e99a401106baf6671da9;hb=db5785cba180e2c210d3ab4d37064c7e61898614;hpb=6dfa4e6c301d65fdecfb6891fe0bb545aabc8d43 diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 4b5158ef3..df972868c 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -120,10 +120,6 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'min_included' => { 'name' => 'Minutes included when using the "single price per minute" or "prefix" rating method', }, - 'show_min_included' => { 'name' => 'Show included minutes as an invoice detail', - 'type' => 'checkbox', - }, - 'min_charge' => { 'name' => 'Charge per minute when using "single price per minute" rating method', }, @@ -186,7 +182,10 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'disposition_in' => { 'name' => 'Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: ', }, - 'skip_dst_prefix' => { 'name' => 'Do not charge for CDRs where the destination number starts with any of these values: ', + 'disposition_prefix' => { 'name' => 'Only charge for CDRs where the Disposition starts with: ', + }, + + 'skip_dst_prefix' => { 'name' => 'Do not charge for CDRs where the destination number starts with any of these (comma-separated) values: ', }, 'skip_dcontext' => { 'name' => 'Do not charge for CDRs where dcontext is set to any of these (comma-separated) values: ', @@ -293,10 +292,6 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', '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', - }, - #XXX also have option for an external db? these days we suck them into ours # 'cdr_location' => { 'name' => 'CDR database location' # 'type' => 'select', @@ -329,7 +324,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', cdr_svc_method rating_method rounding ratenum intrastate_ratenum calls_included - min_charge min_included show_min_included + min_charge min_included sec_granularity ignore_unrateable default_prefix @@ -340,7 +335,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', use_carrierid use_cdrtypenum ignore_cdrtypenum use_calltypenum ignore_calltypenum - ignore_disposition disposition_in + ignore_disposition disposition_in disposition_prefix skip_dcontext skip_dcontext_suffix skip_dst_prefix skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree @@ -357,7 +352,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', usage_mandate usage_section summarize_usage usage_showzero bill_every_call bill_inactive_svcs bill_only_pkg_dates - count_available_phones suspend_bill + suspend_bill ) ], 'weight' => 41, @@ -547,8 +542,7 @@ sub calc_usage { $formatter->finish; #writes into $details unshift @$details, $formatter->header if @$details; - if ( $self->option_cacheable('show_min_included', 1) - and $included_min_total > 0 ) { + if ( $included_min_total > 0 ) { my $min_detail = sprintf('%d / %d ', $included_min_total - $included_min_left, @@ -571,7 +565,13 @@ sub check_chargable { return "disposition NOT IN ( ". $self->option_cacheable('disposition_in')." )" if $self->option_cacheable('disposition_in') =~ /\S/ && !grep { $cdr->disposition eq $_ } split(/\s*,\s*/, $self->option_cacheable('disposition_in')); - + + my $disposition_prefix = $self->option_cacheable('disposition_prefix'); + my $len_dis_prefix = length($disposition_prefix); + return "disposition does not start with $disposition_prefix" + if $len_dis_prefix + && substr($cdr->disposition, 0, $len_dis_prefix) ne $disposition_prefix; + return "disposition IN ( ". $self->option_cacheable('ignore_disposition')." )" if $self->option_cacheable('ignore_disposition') =~ /\S/ && grep { $cdr->disposition eq $_ } split(/\s*,\s*/, $self->option_cacheable('ignore_disposition')); @@ -661,25 +661,6 @@ sub is_free { 0; } -# This equates svc_phone records; perhaps svc_phone should have a field -# to indicate it represents a line -sub calc_units { - my($self, $cust_pkg ) = @_; - my $count = 0; - if ( $self->option('count_available_phones', 1)) { - foreach my $pkg_svc ($cust_pkg->part_pkg->pkg_svc) { - if ($pkg_svc->part_svc->svcdb eq 'svc_phone') { # svc_pbx? - $count += $pkg_svc->quantity || 0; - } - } - $count *= $cust_pkg->quantity; - } else { - $count = - scalar(grep { $_->part_svc->svcdb eq 'svc_phone' } $cust_pkg->cust_svc); - } - $count; -} - sub reset_usage { my ($self, $cust_pkg, %opt) = @_; my @part_pkg_usage = $self->part_pkg_usage or return '';