From 4b839572abcdc6341e8c0f3cf85eb232ac2b4609 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 13 Jul 2010 22:55:07 +0000 Subject: [PATCH] Optional alternate rate plan when accountcode is toll free, RT#8084 --- FS/FS/part_pkg/voip_cdr.pm | 19 +++++++++++++++++-- httemplate/edit/part_pkg.cgi | 4 ++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 0cb675f97..f589580f1 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -162,6 +162,16 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); 'type' => 'checkbox', }, + 'accountcode_tollfree_ratenum' => { + 'name' => 'Optional alternate rate plan when accountcode is toll free', + 'type' => 'select', + 'select_table' => 'rate', + 'select_key' => 'ratenum', + 'select_label' => 'ratename', + 'disable_empty' => 0, + 'empty_label' => '', + }, + 'skip_dst_length_less' => { 'name' => 'Do not charge for CDRs where the destination is less than this many digits:', }, @@ -240,6 +250,7 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); use_disposition_taqua use_carrierid use_cdrtypenum skip_dcontext skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree + accountcode_tollfree_ratenum skip_dst_length_less skip_lastapp use_duration 411_rewrite @@ -436,8 +447,12 @@ sub calc_usage { #asterisks here causes inserting the detail to barf, so: $pretty_destnum =~ s/\*//g; - $rate = qsearchs('rate', { 'ratenum' => $ratenum }) - or die "ratenum $ratenum not found!"; + my $eff_ratenum = $cdr->is_tollfree('accountcode') + ? $cust_pkg->part_pkg->option('accountcode_tollfree_ratenum') + : ''; + $eff_ratenum ||= $ratenum; + $rate = qsearchs('rate', { 'ratenum' => $eff_ratenum }) + or die "ratenum $eff_ratenum not found!"; my @ltime = localtime($cdr->startdate); $weektime = $ltime[0] + diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index c8b7ecb58..deefa9cc1 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -563,6 +563,10 @@ my $html_bottom = sub { $html .= ' MULTIPLE' if $href->{$field}{'type'} eq 'select_multiple'; $html .= qq! NAME="${layer}__$field">!; + + $html .= '