X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=1a99bd7e1252a2b3e948c04ccbc06d3567d00797;hb=430b2c784d2ee9ea5be00b821d2dbd27279ef132;hp=5a27f064f07c8c1d5864ec88edc36a469fd4f414;hpb=f2766e203e1aa144d046a26cf13e01e1f5b00f64;p=freeside.git diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 5a27f064f..1a99bd7e1 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -61,6 +61,11 @@ tie my %detail_formats, 'Tie::IxHash', FS::cdr::invoice_formats() ; +tie my %accountcode_tollfree_field, 'Tie::IxHash', + 'dst' => 'Destination (dst)', + 'src' => 'Source (src)', +; + %info = ( 'name' => 'VoIP rating by plan of CDR records in an internal (or external) SQL table', 'shortname' => 'VoIP/telco CDR rating (standard)', @@ -211,6 +216,12 @@ tie my %detail_formats, 'Tie::IxHash', 'empty_label' => '', }, + 'accountcode_tollfree_field' => { + 'name' => 'When using an alternate rate plan for toll-free accountcodes, the CDR field to use in rating calculations', + 'type' => 'select', + 'select_options' => \%accountcode_tollfree_field, + }, + 'skip_dst_length_less' => { 'name' => 'Do not charge for CDRs where the destination is less than this many digits:', }, @@ -330,7 +341,7 @@ tie my %detail_formats, 'Tie::IxHash', skip_dcontext skip_dst_prefix skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree - accountcode_tollfree_ratenum + accountcode_tollfree_ratenum accountcode_tollfree_field skip_dst_length_less noskip_dst_length_accountcode_tollfree skip_lastapp @@ -611,9 +622,12 @@ sub calc_units { my($self, $cust_pkg ) = @_; my $count = 0; if ( $self->option('count_available_phones', 1)) { - map { $count += ( $_->quantity || 0 ) } - grep { $_->part_svc->svcdb eq 'svc_phone' } - $cust_pkg->part_pkg->pkg_svc; + 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);