X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=9ecdba685b3173caf914c3f4d42147a311197ca3;hp=7d9a7f5c991be3337eca087c8b1eaf1ed60fd98b;hb=d82acd06f8f8a431c69c3b14e3c5cb8252edb02d;hpb=3cbdd85a96348a287623e3b97c937c7749e99392 diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 7d9a7f5c9..9ecdba685 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -289,10 +289,6 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'type' => 'checkbox', }, - 'count_available_phones' => { 'name' => 'Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.', - 'type' => 'checkbox', - }, - #XXX also have option for an external db? these days we suck them into ours # 'cdr_location' => { 'name' => 'CDR database location' # 'type' => 'select', @@ -325,7 +321,8 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', cdr_svc_method rating_method rounding ratenum intrastate_ratenum calls_included - min_charge min_included sec_granularity + min_charge min_included + sec_granularity ignore_unrateable default_prefix disable_src @@ -352,7 +349,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', usage_mandate usage_section summarize_usage usage_showzero bill_every_call bill_inactive_svcs bill_only_pkg_dates - count_available_phones suspend_bill + suspend_bill ) ], 'weight' => 41, @@ -401,10 +398,11 @@ sub calc_usage { my $charges = 0; - my $included_min = $self->option('min_included', 1) || 0; + my $included_min_total = ($self->option('min_included', 1) || 0) + * ($cust_pkg->quantity || 1); #single price rating #or region group - $included_min *= ($cust_pkg->quantity || 1); + my $included_min_left = $included_min_total; my $included_calls = $self->option('calls_included', 1) || 0; $included_calls *= ($cust_pkg->quantity || 1); @@ -423,7 +421,8 @@ sub calc_usage { my $formatter = FS::detail_format->new($output_format, buffer => $details, - locale => $cust_pkg->cust_main->locale + locale => $cust_pkg->cust_main->locale, + rounding => ($self->option_cacheable('rounding') || 2), ); my $use_duration = $self->option('use_duration'); @@ -499,7 +498,7 @@ sub calc_usage { 'part_pkg' => $self, 'cust_pkg' => $cust_pkg, 'svcnum' => $svc_x->svcnum, - 'plan_included_min' => \$included_min, + 'plan_included_min' => \$included_min_left, 'detail_included_min_hashref' => \%detail_included_min, ); die $error if $error; #?? @@ -540,6 +539,15 @@ sub calc_usage { $formatter->finish; #writes into $details unshift @$details, $formatter->header if @$details; + if ( $included_min_total > 0 ) { + + my $min_detail = sprintf('%d / %d ', + $included_min_total - $included_min_left, + $included_min_total + ) . $cust_pkg->mt('included minutes used'); + unshift @$details, $min_detail; + } + $charges; } @@ -644,25 +652,6 @@ sub is_free { 0; } -# This equates svc_phone records; perhaps svc_phone should have a field -# to indicate it represents a line -sub calc_units { - my($self, $cust_pkg ) = @_; - my $count = 0; - if ( $self->option('count_available_phones', 1)) { - foreach my $pkg_svc ($cust_pkg->part_pkg->pkg_svc) { - if ($pkg_svc->part_svc->svcdb eq 'svc_phone') { # svc_pbx? - $count += $pkg_svc->quantity || 0; - } - } - $count *= $cust_pkg->quantity; - } else { - $count = - scalar(grep { $_->part_svc->svcdb eq 'svc_phone' } $cust_pkg->cust_svc); - } - $count; -} - sub reset_usage { my ($self, $cust_pkg, %opt) = @_; my @part_pkg_usage = $self->part_pkg_usage or return '';