$me = '[FS::part_pkg::agent_cdr]';
+tie my %temporalities, 'Tie::IxHash',
+ 'upcoming' => "Upcoming (future)",
+ 'preceding' => "Preceding (past)",
+;
+
%info = (
'name' => 'Wholesale CDR cost billing, for master customers of an agent.',
- 'shortname' => 'Whilesale CDR cost billing for agent.',
+ 'shortname' => 'Wholesale CDR cost billing for agent',
'inherit_fields' => [ 'prorate_Mixin', 'global_Mixin' ],
'fields' => { #false laziness w/cdr_termination
'output_format' => { 'name' => 'CDR invoice display format',
'type' => 'select',
'select_options' => { FS::cdr::invoice_formats() },
- 'default' => 'simple2', #XXX test
+ 'default' => 'simple2', #with source
},
'usage_section' => { 'name' => 'Section in which to place separate usage charges',
FS::part_pkg::prorate_Mixin::fieldorder,
qw(
output_format usage_section summarize_usage usage_mandate
- )
+ ),
],
'weight' => 53,
);
sub calc_recur {
- my $self, $cust_pkg, $sdate, $details, $param ) = @_;
+ my( $self, $cust_pkg, $sdate, $details, $param ) = @_;
#my $last_bill = $cust_pkg->last_bill;
my $last_bill = $cust_pkg->get('last_bill'); #->last_bill falls back to setup
my $charges = 0;
+ my $output_format = $self->option('output_format', 'Hush!') || 'simple2';
+
#CDR calculations
#false laziness w/agent.pm
my $classnum = ''; #usage class?
#option to turn off? or just use squelch_cdr for the customer probably
- push @$details, [ 'C', $call_details, $cost, $classnum ];
+ # XXX use detail_format for this at some point
+ push @$details, { 'format' => 'C',
+ 'detail' => $call_details,
+ 'amount' => $cost,
+ 'classnum' => $classnum };
#eofalse laziness w/cdr_termination
#eo CDR calculations
- $charges += ($cust_pkg->quantity || 1) * $self->calc_recur_Common(@_);
+ $charges += ($cust_pkg->quantity || 1)
+ * $self->calc_recur_Common($cust_pkg, $sdate, $details, $param);
$charges;
}