cust_event
cust_credit_bill
cust_bill_pay
- cust_bill_pay
cust_credit_bill
cust_pay_batch
cust_bill_pay_batch
notice_name - overrides "Invoice" as the name of the sent document (templates from 10/2009 or newer required)
+locale - override customer's locale
+
=cut
#what's with all the sprintf('%10.2f')'s in here? will it cause any
# (alignment in text invoice?) problems to change them all to '%.2f' ?
-# yes: fixed width (dot matrix) text printing will be borked
+# yes: fixed width/plain text printing will be borked
sub print_generic {
my( $self, %params ) = @_;
my $conf = $self->conf;
);
#localization
- my $lh = FS::L10N->get_handle($cust_main->locale);
+ my $lh = FS::L10N->get_handle( $params{'locale'} || $cust_main->locale );
$invoice_data{'emt'} = sub { &$escape_function($self->mt(@_)) };
my %info = FS::Locales->locale_info($cust_main->locale || 'en_US');
# eval to avoid death for unimplemented languages
my $previous_section = { 'description' => $self->mt('Previous Charges'),
'subtotal' => $other_money_char.
sprintf('%.2f', $pr_total),
- 'summarized' => $summarypage ? 'Y' : '',
+ 'summarized' => '', #why? $summarypage ? 'Y' : '',
};
$previous_section->{posttotal} = '0 / 30 / 60 / 90 days overdue '.
join(' / ', map { $cust_main->balance_date_range(@$_) }
my $taxtotal = 0;
my $tax_section = { 'description' => $self->mt('Taxes, Surcharges, and Fees'),
'subtotal' => $taxtotal, # adjusted below
- 'summarized' => $summarypage ? 'Y' : '',
};
my $tax_weight = _pkg_category($tax_section->{description})
? _pkg_category($tax_section->{description})->weight
: 0;
- $tax_section->{'summarized'} = $summarypage && !$tax_weight ? 'Y' : '';
+ $tax_section->{'summarized'} = ''; #why? $summarypage && !$tax_weight ? 'Y' : '';
$tax_section->{'sort_weight'} = $tax_weight;
my $adjust_section = { 'description' =>
$self->mt('Credits, Payments, and Adjustments'),
'subtotal' => 0, # adjusted below
- 'summarized' => $summarypage ? 'Y' : '',
};
my $adjust_weight = _pkg_category($adjust_section->{description})
? _pkg_category($adjust_section->{description})->weight
: 0;
- $adjust_section->{'summarized'} = $summarypage && !$adjust_weight ? 'Y' : '';
+ $adjust_section->{'summarized'} = ''; #why? $summarypage && !$adjust_weight ? 'Y' : '';
$adjust_section->{'sort_weight'} = $adjust_weight;
my $unsquelched = $params{unsquelch_cdr} || $cust_main->squelch_cdr ne 'Y';
$options{'section'} = $section if $multisection;
$options{'format'} = $format;
$options{'escape_function'} = $escape_function;
- $options{'format_function'} = sub { () } unless $unsquelched;
+ $options{'no_usage'} = 1 unless $unsquelched;
$options{'unsquelched'} = $unsquelched;
$options{'summary_page'} = $summarypage;
$options{'skip_usage'} =
escape_function: the function used to escape strings.
+DEPRECATED? (expensive, mostly unused?)
format_function: the function used to format CDRs.
section: a hashref containing 'description'; if this is present,
my $format = $opt{format} || '';
my $escape_function = $opt{escape_function} || sub { shift };
my $format_function = $opt{format_function} || '';
+ my $no_usage = $opt{no_usage} || '';
my $unsquelched = $opt{unsquelched} || ''; #unused
my $section = $opt{section}->{description} if $opt{section};
my $summary_page = $opt{summary_page} || ''; #unused
my %details_opt = ( 'format' => $format,
'escape_function' => $escape_function,
'format_function' => $format_function,
+ 'no_usage' => $opt{'no_usage'},
);
if ( $cust_bill_pkg->pkgnum > 0 ) {
#instead of omitting details entirely in this case (unwanted side
# effects), just omit CDRs
- $details_opt{'format_function'} = sub { () }
+ $details_opt{'no_usage'} = 1
if $type && $type eq 'R';
push @d, $cust_bill_pkg->details(%details_opt);