diff options
| author | ivan <ivan> | 2010-07-13 22:55:07 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2010-07-13 22:55:07 +0000 | 
| commit | 4b839572abcdc6341e8c0f3cf85eb232ac2b4609 (patch) | |
| tree | f3dd20311c2820d204c0ec50cd911a640292d696 | |
| parent | 99af479c12baf1f7da52e06841f0ac4f4832d766 (diff) | |
Optional alternate rate plan when accountcode is toll free, RT#8084
| -rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 19 | ||||
| -rwxr-xr-x | 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 .= '<OPTION VALUE="">'. $href->{$field}{'empty_label'} +          if exists($href->{$field}{'disable_empty'}) +               && ! $href->{$field}{'disable_empty'};          if ( $href->{$field}{'select_table'} ) {            foreach my $record ( | 
