add rate name to CDR report, RT#34985
authorIvan Kohler <ivan@freeside.biz>
Sun, 17 May 2015 23:29:14 +0000 (16:29 -0700)
committerIvan Kohler <ivan@freeside.biz>
Sun, 17 May 2015 23:29:14 +0000 (16:29 -0700)
httemplate/search/cdr.html
httemplate/search/report_cdr.html

index 778799b..e57913e 100644 (file)
@@ -289,11 +289,11 @@ my $qsearch = join(' AND ', @qsearch);
 $qsearch = ( scalar(keys %$hashref) ? ' AND ' : ' WHERE ' ) . $qsearch
   if $qsearch;
 
-my $query =     {   'table'     => 'cdr',
-                    'hashref'   => $hashref,
-                               'extra_sql' => $qsearch,
-                               'order_by'  => 'ORDER BY calldate',
-                };
+my $query = { 'table'     => 'cdr',
+              'hashref'   => $hashref,
+              'extra_sql' => $qsearch,
+              'order_by'  => 'ORDER BY calldate',
+            };
 
 if ( $cgi->param('longest') =~ /^(\d+)$/ && $cgi->param('longest') > 0 ) {
     $cgi->param('maxrecords',$1);
@@ -308,16 +308,26 @@ if ( $cgi->param('longest') =~ /^(\d+)$/ && $cgi->param('longest') > 0 ) {
 ###
 
 my %header = %{ FS::cdr->table_info->{'fields'} };
+$header{ratename} = 'Rate plan';
 
 my @first = qw( acctid calldate clid charged_party src dst dcontext );
 my %first = map { $_=>1 } @first;
 
-my @fields = ( @first, grep !$first{$_}, fields('cdr') );
+my @fields = ( @first,
+               grep !$first{$_}, ( fields('cdr'), 'ratename' )
+             );
 
 if ( $cgi->param('show') ) {
   @fields = grep $cgi->param("show_$_"), @fields;
 }
 
+if ( grep { $_ eq 'ratename' } @fields ) {
+  $query->{addl_from} .= '
+  LEFT JOIN rate_detail ON (cdr.rated_ratedetailnum = rate_detail.ratedetailnum)
+  LEFT JOIN rate        ON (rate_detail.ratenum = rate.ratenum)
+  ';
+}
+
 my @header = map {
                    if ( exists($header{$_}) ) {
                      $header{$_};
index 0eefd4c..ef54478 100644 (file)
@@ -188,7 +188,9 @@ die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('List rating data');
 
 my @fields = fields('cdr');
+push @fields, 'ratename';
 my $labels = FS::cdr->table_info->{'fields'};
+$labels->{ratename} = 'Rate plan';
 
 my $conf = new FS::Conf;
 my $default_phone_countrycode =