'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',
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
use_cdrtypenum ignore_cdrtypenum
use_calltypenum ignore_calltypenum
ignore_disposition disposition_in
- skip_dcontext skip_dst_prefix
+ skip_dcontext skip_dcontext_suffix skip_dst_prefix
skip_dstchannel_prefix skip_src_length_more
noskip_src_length_accountcode_tollfree
accountcode_tollfree_ratenum accountcode_tollfree_field
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,
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);
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');
'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; #??
$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;
}
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 '';