From 2ae0d46c96d1272f8c33c60bc80ac55a7f2ef0e7 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 14 May 2008 21:23:00 +0000 Subject: [PATCH] config option to omit statement type items from invoices --- FS/FS/Conf.pm | 7 +++ FS/FS/Conf_compat17.pm | 37 +++++++++++++++ FS/FS/cust_bill.pm | 124 ++++++++++++++++++++++++++++--------------------- 3 files changed, 116 insertions(+), 52 deletions(-) diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 3aa19b707..73ca9073b 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -2237,6 +2237,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'disable_previous_balance', + 'section' => 'billing', + 'description' => 'Disable inclusion of previous balancem payment, and credit lines on invoices', + 'type' => 'checkbox', + }, + + { 'key' => 'usps_webtools-userid', 'section' => 'UI', 'description' => 'Production UserID for USPS web tools. Enables USPS address standardization. See the USPS website, register and agree not to use the tools for batch purposes.', diff --git a/FS/FS/Conf_compat17.pm b/FS/FS/Conf_compat17.pm index bcd78e8c7..e9e25bb13 100644 --- a/FS/FS/Conf_compat17.pm +++ b/FS/FS/Conf_compat17.pm @@ -2190,6 +2190,43 @@ httemplate/docs/config.html }, }, + { + 'key' => 'cust_main-agent_custid-format', + 'section' => '', + 'description' => 'Enables searching of various formatted values in cust_main.agent_custid', + 'type' => 'select', + 'select_hash' => [ + '' => 'Numeric only', + 'ww?d+' => 'Numeric with one or two letter prefix', + ], + }, + + { + 'key' => 'card_masking_method', + 'section' => 'UI', + 'description' => 'Digits to display when masking credit cards. Note that the first six digits are necessary to canonically identify the credit card type (Visa/MC, Amex, Discover, Maestro, etc.) in all cases. The first four digits can identify the most common credit card types in most cases (Visa/MC, Amex, and Discover). The first two digits can distinguish between Visa/MC and Amex.', + 'type' => 'select', + 'select_hash' => [ + '' => '123456xxxxxx1234', + 'first6last2' => '123456xxxxxxxx12', + 'first4last4' => '1234xxxxxxxx1234', + 'first4last2' => '1234xxxxxxxxxx12', + 'first2last4' => '12xxxxxxxxxx1234', + 'first2last2' => '12xxxxxxxxxxxx12', + 'first0last4' => 'xxxxxxxxxxxx1234', + 'first0last2' => 'xxxxxxxxxxxxxx12', + ], + }, + + { + 'key' => 'disable_previous_balance', + 'section' => 'billing', + 'description' => 'Disable inclusion of previous balance lines on invoices', + 'type' => 'checkbox', + }, + + + ); 1; diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 520bfe1f2..f47081317 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -1950,7 +1950,11 @@ sub print_generic { push @sections, { 'description' => '', 'subtotal' => '' }; } - foreach my $line_item ( $self->_items_previous ) { + foreach my $line_item ( $conf->exists('disable_previous_balance') + ? () + : $self->_items_previous + ) + { my $detail = { ext_description => [], }; @@ -1975,7 +1979,7 @@ sub print_generic { ]; } - if (@pr_cust_bill) { + if ( @pr_cust_bill && !$conf->exists('disable_previous_balance') ) { push @buf, ['','-----------']; push @buf, [ 'Total Previous Balance', $money_char. sprintf("%10.2f", $pr_total) ]; @@ -2036,7 +2040,7 @@ sub print_generic { } - if ( $multisection ) { + if ( $multisection && !$conf->exists('disable_previous_balance') ) { unshift @sections, $previous_section; } @@ -2066,7 +2070,10 @@ sub print_generic { } push @buf,['','-----------']; - push @buf,['Total New Charges', + push @buf,[( $conf->exists('disable_previous_balance') + ? 'Total Charges' + : 'Total New Charges' + ), $money_char. sprintf("%10.2f",$self->charged) ]; push @buf,['','']; @@ -2074,66 +2081,79 @@ sub print_generic { my $total = {}; $total->{'total_item'} = &$embolden_function('Total'); $total->{'total_amount'} = - $total->{'total_amount'} = &$embolden_function( - $other_money_char. sprintf('%.2f', $self->charged + $pr_total ) + $other_money_char. + sprintf( '%.2f', + $self->charged + ( $conf->exists('disable_previous_balance') + ? 0 + : $pr_total + ) + ) ); push @total_items, $total; push @buf,['','-----------']; push @buf,['Total Charges', - $money_char. sprintf("%10.2f",$self->charged + $pr_total) ]; + $money_char. + sprintf( '%10.2f', $self->charged + + ( $conf->exists('disable_previous_balance') + ? 0 + : $pr_total + ) + ) + ]; push @buf,['','']; } - - #foreach my $thing ( sort { $a->_date <=> $b->_date } $self->_items_credits, $self->_items_payments + unless ( $conf->exists('disable_previous_balance') ) { + #foreach my $thing ( sort { $a->_date <=> $b->_date } $self->_items_credits, $self->_items_payments - # credits - foreach my $credit ( $self->_items_credits ) { - my $total; - $total->{'total_item'} = &$escape_function($credit->{'description'}); - #$credittotal - $total->{'total_amount'} = '-'. $other_money_char. $credit->{'amount'}; - push @total_items, $total; - } + # credits + foreach my $credit ( $self->_items_credits ) { + my $total; + $total->{'total_item'} = &$escape_function($credit->{'description'}); + #$credittotal + $total->{'total_amount'} = '-'. $other_money_char. $credit->{'amount'}; + push @total_items, $total; + } - # credits (again) - foreach ( $self->cust_credited ) { - - #something more elaborate if $_->amount ne $_->cust_credit->credited ? - - my $reason = substr($_->cust_credit->reason,0,32); - $reason .= '...' if length($reason) < length($_->cust_credit->reason); - $reason = " ($reason) " if $reason; - push @buf,[ - "Credit #". $_->crednum. " (". time2str("%x",$_->cust_credit->_date) .")". $reason, - $money_char. sprintf("%10.2f",$_->amount) - ]; - } + # credits (again) + foreach ( $self->cust_credited ) { + + #something more elaborate if $_->amount ne $_->cust_credit->credited ? + + my $reason = substr($_->cust_credit->reason,0,32); + $reason .= '...' if length($reason) < length($_->cust_credit->reason); + $reason = " ($reason) " if $reason; + push @buf,[ + "Credit #". $_->crednum. " (". time2str("%x",$_->cust_credit->_date) .")". $reason, + $money_char. sprintf("%10.2f",$_->amount) + ]; + } - # payments - foreach my $payment ( $self->_items_payments ) { - my $total = {}; - $total->{'total_item'} = &$escape_function($payment->{'description'}); - #$paymenttotal - $total->{'total_amount'} = '-'. $other_money_char. $payment->{'amount'}; - push @total_items, $total; - push @buf, [ $payment->{'description'}, - $money_char. sprintf("%10.2f", $payment->{'amount'}), - ]; - } + # payments + foreach my $payment ( $self->_items_payments ) { + my $total = {}; + $total->{'total_item'} = &$escape_function($payment->{'description'}); + #$paymenttotal + $total->{'total_amount'} = '-'. $other_money_char. $payment->{'amount'}; + push @total_items, $total; + push @buf, [ $payment->{'description'}, + $money_char. sprintf("%10.2f", $payment->{'amount'}), + ]; + } - { - my $total; - $total->{'total_item'} = &$embolden_function($self->balance_due_msg); - $total->{'total_amount'} = - &$embolden_function( - $other_money_char. sprintf('%.2f', $self->owed + $pr_total ) - ); - push @total_items, $total; - push @buf,['','-----------']; - push @buf,[$self->balance_due_msg, $money_char. - sprintf("%10.2f", $balance_due ) ]; + { + my $total; + $total->{'total_item'} = &$embolden_function($self->balance_due_msg); + $total->{'total_amount'} = + &$embolden_function( + $other_money_char. sprintf('%.2f', $self->owed + $pr_total ) + ); + push @total_items, $total; + push @buf,['','-----------']; + push @buf,[$self->balance_due_msg, $money_char. + sprintf("%10.2f", $balance_due ) ]; + } } $invoice_data{'logo_file'} = $params{'logo_file'} -- 2.11.0