projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
non-package fees, fixes for tax calculation and sales reports, #25899
[freeside.git]
/
FS
/
FS
/
cdr.pm
diff --git
a/FS/FS/cdr.pm
b/FS/FS/cdr.pm
index
9d72c39
..
0fdcbdf
100644
(file)
--- a/
FS/FS/cdr.pm
+++ b/
FS/FS/cdr.pm
@@
-92,6
+92,8
@@
following fields are currently supported:
=item dst_ip_addr - Destination IP address (same)
=item dst_ip_addr - Destination IP address (same)
+=item dst_term - Terminating destination number (if different from dst)
+
=item startdate - Start of call (UNIX-style integer timestamp)
=item answerdate - Answer time of call (UNIX-style integer timestamp)
=item startdate - Start of call (UNIX-style integer timestamp)
=item answerdate - Answer time of call (UNIX-style integer timestamp)
@@
-194,6
+196,7
@@
sub table_info {
#'lastdata' => '',
'src_ip_addr' => 'Source IP',
'dst_ip_addr' => 'Dest. IP',
#'lastdata' => '',
'src_ip_addr' => 'Source IP',
'dst_ip_addr' => 'Dest. IP',
+ 'dst_term' => 'Termination dest.',
'startdate' => 'Start date',
'answerdate' => 'Answer date',
'enddate' => 'End date',
'startdate' => 'Start date',
'answerdate' => 'Answer date',
'enddate' => 'End date',
@@
-677,8
+680,19
@@
sub rate_prefix {
# (or calling station id for toll free calls)
###
# (or calling station id for toll free calls)
###
+ my $eff_ratenum = $self->is_tollfree('accountcode')
+ ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum')
+ : '';
+
my( $to_or_from, $column );
my( $to_or_from, $column );
- if ( $self->is_tollfree && ! $part_pkg->option_cacheable('disable_tollfree') )
+ if(
+ ( $self->is_tollfree
+ && ! $part_pkg->option_cacheable('disable_tollfree')
+ )
+ or ( $eff_ratenum
+ && $part_pkg->option_cacheable('accountcode_tollfree_field') eq 'src'
+ )
+ )
{ #tollfree call
$to_or_from = 'from';
$column = 'src';
{ #tollfree call
$to_or_from = 'from';
$column = 'src';
@@
-699,10
+713,6
@@
sub rate_prefix {
#asterisks here causes inserting the detail to barf, so:
$pretty_dst =~ s/\*//g;
#asterisks here causes inserting the detail to barf, so:
$pretty_dst =~ s/\*//g;
- my $eff_ratenum = $self->is_tollfree('accountcode')
- ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum')
- : '';
-
my $ratename = '';
my $intrastate_ratenum = $part_pkg->option_cacheable('intrastate_ratenum');
if ( $intrastate_ratenum && !$self->is_tollfree ) {
my $ratename = '';
my $intrastate_ratenum = $part_pkg->option_cacheable('intrastate_ratenum');
if ( $intrastate_ratenum && !$self->is_tollfree ) {
@@
-901,7
+911,7
@@
sub rate_prefix {
#${$opt{region_group_included_min}} -= $minutes
# if $region_group && $rate_detail->region_group;
#${$opt{region_group_included_min}} -= $minutes
# if $region_group && $rate_detail->region_group;
- if ( $included_min->{$regionnum}{$ratetimenum} > $minutes ) {
+ if ( $included_min->{$regionnum}{$ratetimenum} >
=
$minutes ) {
$charge_sec = 0;
$included_min->{$regionnum}{$ratetimenum} -= $minutes;
} else {
$charge_sec = 0;
$included_min->{$regionnum}{$ratetimenum} -= $minutes;
} else {
@@
-1141,6
+1151,8
@@
sub calltypename {
=cut
=cut
+# in the future, load this dynamically from detail_format classes
+
my %export_names = (
'simple' => {
'name' => 'Simple',
my %export_names = (
'simple' => {
'name' => 'Simple',
@@
-1159,6
+1171,10
@@
my %export_names = (
'name' => 'Basic',
'invoice_header' => "Date/Time,Called Number,Min/Sec,Price",
},
'name' => 'Basic',
'invoice_header' => "Date/Time,Called Number,Min/Sec,Price",
},
+ 'basic_upstream_dst_regionname' => {
+ 'name' => 'Basic with upstream destination name',
+ 'invoice_header' => "Date/Time,Called Number,Destination,Min/Sec,Price",
+ },
'default' => {
'name' => 'Default',
'invoice_header' => 'Date,Time,Number,Destination,Duration,Price',
'default' => {
'name' => 'Default',
'invoice_header' => 'Date,Time,Number,Destination,Duration,Price',
@@
-1647,9
+1663,15
@@
my %import_options = (
keys %cdr_info
},
keys %cdr_info
},
- 'format_row_callbacks' => { map { $_ => $cdr_info{$_}->{'row_callback'}; }
- keys %cdr_info
- },
+ 'format_row_callbacks' =>
+ { map { $_ => $cdr_info{$_}->{'row_callback'}; }
+ keys %cdr_info
+ },
+
+ 'format_parser_opts' =>
+ { map { $_ => $cdr_info{$_}->{'parser_opt'}; }
+ keys %cdr_info
+ },
);
sub _import_options {
);
sub _import_options {