X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr.pm;h=0107659a86322ce1fa58a726fc15c54f194afc61;hb=158103c8701d8cd87148c579dc101979c808b8c2;hp=65ca50b29e18c61a73d447797d63d9b47d57a0f6;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index 65ca50b29..0107659a8 100644 --- a/FS/FS/cdr.pm +++ b/FS/FS/cdr.pm @@ -541,6 +541,10 @@ my %export_names = ( 'name' => 'Default plus accountcode', 'invoice_header' => 'Date,Time,Account,Number,Destination,Duration,Price', }, + 'description_default' => { + 'name' => 'Default with description field as destination', + 'invoice_header' => 'Caller,Date,Time,Number,Destination,Duration,Price', + }, ); my %export_formats = (); @@ -556,11 +560,11 @@ sub export_formats { my $duration_sub = sub { my($cdr, %opt) = @_; my $sec = $opt{seconds} || $cdr->billsec; - if ( length($opt{granularity}) && + if ( defined $opt{granularity} && $opt{granularity} == 0 ) { #per call return '1 call'; } - elsif ( $opt{granularity} == 60 ) {#full minutes + elsif ( defined $opt{granularity} && $opt{granularity} == 60 ) {#full minutes my $min = int($sec/60); $min++ if $sec%60; return $min.'m'; @@ -616,7 +620,10 @@ sub export_formats { $duration_sub, #PRICE - sub { my($cdr, %opt) = @_; $opt{money_char}. $opt{charge}; }, + sub { my($cdr, %opt) = @_; + $opt{charge} = '0.00' unless defined $opt{charge}; + $opt{money_char}.$opt{charge}; + }, ], ); @@ -626,8 +633,13 @@ sub export_formats { 'accountcode', @{ $export_formats{'default'} }[2..5], ]; + my @default = @{ $export_formats{'default'} }; + $export_formats{'description_default'} = + [ 'src', @default[0..2], + sub { my($cdr, %opt) = @_; $cdr->description }, + @default[4,5] ]; - %export_formats + return %export_formats; } sub downstream_csv { @@ -651,6 +663,8 @@ sub downstream_csv { } @{ $formats{$format} }; + return @columns if defined $opt{'keeparray'}; + my $status = $csv->combine(@columns); die "FS::CDR: error combining ". $csv->error_input(). "into downstream CSV" unless $status;