Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / FS / FS / detail_format / sum_duration_prefix.pm
index 19b6648..cd7bbe3 100644 (file)
@@ -25,7 +25,10 @@ sub append {
   my $self = shift;
   my $prefixes = ($self->{prefixes} ||= {});
   foreach my $cdr (@_) {
-    my $phonenum = $self->{inbound} ? $cdr->src : $cdr->dst;
+    my (undef, $phonenum) = $cdr->parse_number(
+      column => ( $self->{inbound} ? 'src' : 'dst' ),
+    );
+
     $phonenum =~ /^(\d{$prefix_length})/;
     my $prefix = $1 || 'other';
     warn "$me appending ".$cdr->dst." to $prefix\n" if $DEBUG;
@@ -47,7 +50,8 @@ sub append {
     #         "' in CDR #".$cdr->acctid."\n";
     $subtotal->{count}++;
     $subtotal->{duration} += $object->rated_seconds;
-    $subtotal->{amount} += $object->rated_price;
+    $subtotal->{amount} += $object->rated_price
+      if $object->freesidestatus ne 'no-charge';
   }
 }
 
@@ -70,7 +74,7 @@ sub finish {
       $prefix,
       map({ 
           $_->{count},
-          (int($_->{duration}/60) . ' min'),
+          sprintf('%.01f min', $_->{duration}/60),
         } @subtotals ),
       $self->money_char . sprintf('%.02f',$total_amount),
     );