diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Schema.pm | 4 | ||||
| -rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 7 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 5046ec733..782597313 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -2694,7 +2694,9 @@ sub tables_hashref {        ],        'primary_key' => 'ratedetailnum',        'unique'      => [ [ 'ratenum', 'orig_regionnum', 'dest_regionnum' ] ], -      'index'       => [ [ 'ratenum', 'dest_regionnum' ] ], +      'index'       => [ [ 'ratenum', 'dest_regionnum' ], +                         [ 'ratenum', 'ratetimenum' ] +                       ],      },      'rate_region' => { diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index df1f2ccf1..08cf4a10a 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -570,8 +570,11 @@ sub calc_usage {              if ( !exists($interval_cache{$regionnum}) ) {                my @intervals = (                  sort { $a->stime <=> $b->stime } -                map { my $r = $_->rate_time; $r ? $r->intervals : () } -                $rate->rate_detail +                  map { $_->rate_time->intervals } +                    qsearch({ 'table'     => 'rate_detail', +                              'hashref'   => { 'ratenum' => $rate->ratenum }, +                              'extra_sql' => 'AND ratetimenum IS NOT NULL', +                           })                );                $interval_cache{$regionnum} = \@intervals;                warn "  cached ".scalar(@intervals)." interval(s)\n" | 
