From da86d5a8af2f915a340a74f6c97772451a1e23ef Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 8 Mar 2011 01:46:50 +0000 Subject: [PATCH 1/1] show credit balance on invoices, #11564 --- FS/FS/Conf.pm | 7 +++++++ FS/FS/cust_bill.pm | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 00b0cec3c..cbfde5003 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -3451,6 +3451,13 @@ and customer address. Include units.', }, { + 'key' => 'previous_balance-show_credit', + 'section' => 'invoicing', + 'description' => 'Show the customer\'s credit balance on invoices when applicable.', + 'type' => 'checkbox', + }, + + { 'key' => 'balance_due_below_line', 'section' => 'invoicing', 'description' => 'Place the balance due message below a line. Only meaningful when when invoice_sections is false.', diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 2c58a988d..ba308beba 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -2433,6 +2433,12 @@ sub print_generic { ); my $embolden_function = $embolden_functions{$format}; + my %newline_tokens = ( 'latex' => '\\\\', + 'html' => '
', + 'template' => "\n", + ); + my $newline_token = $newline_tokens{$format}; + warn "$me generating template variables\n" if $DEBUG > 1; @@ -3117,6 +3123,26 @@ sub print_generic { push @buf,[$self->balance_due_msg, $money_char. sprintf("%10.2f", $balance_due ) ]; } + + if ( $conf->exists('previous_balance-show_credit') + and $cust_main->balance < 0 ) { + my $credit_total = { + 'total_item' => &$embolden_function($self->credit_balance_msg), + 'total_amount' => &$embolden_function( + $other_money_char. sprintf('%.2f', -$cust_main->balance) + ), + }; + if ( $multisection ) { + $adjust_section->{'posttotal'} .= $newline_token . + $credit_total->{'total_item'} . ' ' . $credit_total->{'total_amount'}; + } + else { + push @total_items, $credit_total; + } + push @buf,['','-----------']; + push @buf,[$self->credit_balance_msg, $money_char. + sprintf("%10.2f", -$cust_main->balance ) ]; + } } if ( $multisection ) { @@ -3476,6 +3502,8 @@ sub balance_due_date { $duedate; } +sub credit_balance_msg { 'Credit Balance Remaining' } + =item invnum_date_pretty Returns a string with the invoice number and date, for example: -- 2.11.0