From 117b59b69ddc3dab173ec531762686d8c49ad08f Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 13 Feb 2008 23:42:00 +0000 Subject: [PATCH] directory assistance (flat per-call) billing RT#3114 --- FS/FS/part_pkg/voip_cdr.pm | 8 ++++++-- FS/FS/rate_detail.pm | 2 +- httemplate/edit/rate_region.cgi | 9 +++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 2341fd020..7cf177972 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -261,9 +261,13 @@ sub calc_recur { my $granularity = $rate_detail->sec_granularity; my $seconds = $cdr->billsec; # |ength($cdr->billsec) ? $cdr->billsec : $cdr->duration; - $seconds += $granularity - ( $seconds % $granularity ); + $seconds += $granularity - ( $seconds % $granularity ) + if $granularity; # 0 is per call my $minutes = sprintf("%.1f", $seconds / 60); $minutes =~ s/\.0$// if $granularity == 60; + + # per call rather than per minute + $minutes = 1 unless $granularity; $included_min{$regionnum} -= $minutes; @@ -280,7 +284,7 @@ sub calc_recur { @call_details = ( #time2str("%Y %b %d - %r", $cdr->calldate_unix ), time2str("%c", $cdr->calldate_unix), #XXX this should probably be a config option dropdown so they can select US vs- rest of world dates or whatnot - $minutes.'m', + $granularity ? $minutes.'m' : $minutes.' call', '$'.$charge, $pretty_destnum, $rate_region->regionname, diff --git a/FS/FS/rate_detail.pm b/FS/FS/rate_detail.pm index 7f8c89eba..ad41b40ec 100644 --- a/FS/FS/rate_detail.pm +++ b/FS/FS/rate_detail.pm @@ -46,7 +46,7 @@ inherits from FS::Record. The following fields are currently supported: =item min_charge - charge per minute -=item sec_granularity - granularity in seconds, i.e. 6 or 60 +=item sec_granularity - granularity in seconds, i.e. 6 or 60; 0 for per-call =back diff --git a/httemplate/edit/rate_region.cgi b/httemplate/edit/rate_region.cgi index 9dfcb3740..04f285f37 100644 --- a/httemplate/edit/rate_region.cgi +++ b/httemplate/edit/rate_region.cgi @@ -49,10 +49,10 @@ Rate plan - Included
minutes
+ Included
minutes/calls
- Charge per
minute
+ Charge per
minute/call
Granularity @@ -81,11 +81,11 @@ - min_included |h %>"> + min_included |h %>"> - $min_charge ) %>"> + $min_charge ) %>"> @@ -137,6 +137,7 @@ tie my %granularity, 'Tie::IxHash', '6' => '6 second', '30' => '30 second', # '1/2 minute', '60' => 'minute', + '0' => 'call', ; my @rate_prefix = $rate_region->rate_prefix; -- 2.11.0