improve emailed cdr csv file (#5727 again)
[freeside.git] / FS / FS / part_pkg / voip_cdr.pm
index 11ff76b..9f150d6 100644 (file)
@@ -475,10 +475,12 @@ sub calc_usage {
         my $minutes = sprintf("%.1f", $seconds / 60);
         $minutes =~ s/\.0$// ;# if $granularity == 60;
 
-        $charge = sprintf('%.2f', ( $self->option('min_charge') * $minutes )
-                                  + 0.00000001 ); #so 1.005 rounds to 1.01
+        # XXX config?
+        #$charge = sprintf('%.2f', ( $self->option('min_charge') * $minutes )
+                                  #+ 0.00000001 ); #so 1.005 rounds to 1.01
+        $charge = sprintf('%.4f', ( $self->option('min_charge') * $minutes )
+                                  + 0.0000000001 ); #so 1.00005 rounds to 1.0001
 
-        $charge =  
         $charges += $charge;
 
         @call_details = ($cdr->downstream_csv( 'format' => $output_format,
@@ -556,13 +558,16 @@ sub calc_usage {
         if ( $charge > 0 ) {
           #just use FS::cust_bill_pkg_detail objects?
           my $call_details;
+          my $phonenum = $cust_svc->svc_x->phonenum;
 
           #if ( $self->option('rating_method') eq 'upstream_simple' ) {
           if ( scalar(@call_details) == 1 ) {
-            $call_details = [ 'C', $call_details[0], $charge, $classnum ];
+            $call_details =
+              [ 'C', $call_details[0], $charge, $classnum, $phonenum ];
           } else { #only used for $rating_method eq 'upstream' now
             $csv->combine(@call_details);
-            $call_details = [ 'C', $csv->string, $charge, $classnum ];
+            $call_details =
+              [ 'C', $csv->string, $charge, $classnum, $phonenum ];
           }
           warn "  adding details on charge to invoice: [ ".
               join(', ', @{$call_details} ). " ]"