i18n, RT#12515
[freeside.git] / FS / FS / cust_bill.pm
index 3f94796..0ba6cdf 100644 (file)
@@ -2832,8 +2832,10 @@ sub print_generic {
     if ($conf->exists('voip-cust_accountcode_cdr') && $cust_main->accountcode_cdr) {
       my ($accountcode_section, $accountcode_lines) =
         $self->_items_accountcode_cdr($escape_function_nonbsp,$format);
-      push @{$late_sections}, $accountcode_section;
-      push @detail_items, @$accountcode_lines;
+      if ( scalar(@$accountcode_lines) ) {
+          push @{$late_sections}, $accountcode_section;
+          push @detail_items, @$accountcode_lines;
+      }
     }
   }else{
     push @sections, { 'description' => '', 'subtotal' => '' };
@@ -4149,7 +4151,6 @@ sub _items_accountcode_cdr {
                     'description'   => 'Usage by Account Code',
                     'post_total'    => '',
                     'summarized'    => '',
-                    'total_generator' => sub { '' },
                     'header'        => '',
                   };
     my @lines;
@@ -4186,6 +4187,7 @@ sub _items_accountcode_cdr {
                     ext_description => [],
             };
 
+            $section->{'amount'} += $amount;
             $accountcodes{$accountcode}{'amount'} += $amount;
             $accountcodes{$accountcode}{calls}++;
             $accountcodes{$accountcode}{duration} += $detail->duration;
@@ -4200,7 +4202,9 @@ sub _items_accountcode_cdr {
         push @lines, $l;
     }
 
-    return ($section,\@lines);
+    my @sorted_lines = sort { $a->{'description'} <=> $b->{'description'} } @lines;
+
+    return ($section,\@sorted_lines);
 }
 
 sub _items_svc_phone_sections {