'links' => \@links,
'html_form' => qq!<FORM NAME="cdrForm" ACTION="$p/misc/cdr.cgi" METHOD="POST">!,
'html_foot' => $html_foot,
- )
&>
<%init>
}
}
+###
+# accountcode
+###
+
+if ( $cgi->param('accountcode') =~ /\S/ ) {
+ my $accountcode = $cgi->param('accountcode');
+ my @accountcode = map {
+ ( my $v = $_ ) =~ s/^\s+|\s+$//g; # trim margin whitespace
+ length $v ? dbh->quote($v) : ()
+ } grep /\S/, split /\R/, $accountcode; # collect non-trivial lines
+ if (@accountcode) {
+ my $search = 'accountcode IN ( ' . join( ',', @accountcode ) . ' )';
+ push @qsearch, $search;
+ push @search, $search;
+ }
+}
+
###
# finish it up
###
$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);
###
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{$_};