diff options
-rw-r--r-- | FS/FS/cust_main.pm | 16 | ||||
-rw-r--r-- | httemplate/elements/select-terms.html | 17 | ||||
-rwxr-xr-x | httemplate/search/cust_main.html | 2 | ||||
-rwxr-xr-x | httemplate/search/report_cust_main.html | 11 |
4 files changed, 44 insertions, 2 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 858ac14ff..08c7a5113 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -8405,6 +8405,22 @@ sub search_sql { ; } + ### + # invoice terms + ### + + if ( $params->{'invoice_terms'} =~ /^([\w ]+)$/ ) { + my $terms = $1; + if ( $1 eq 'NULL' ) { + push @where, + "( cust_main.invoice_terms IS NULL OR cust_main.invoice_terms = '' )"; + } else { + push @where, + "cust_main.invoice_terms IS NOT NULL", + "cust_main.invoice_terms = '$1'"; + } + } + ## # amounts ## diff --git a/httemplate/elements/select-terms.html b/httemplate/elements/select-terms.html index 629d1e464..52f9fb542 100644 --- a/httemplate/elements/select-terms.html +++ b/httemplate/elements/select-terms.html @@ -2,7 +2,18 @@ ID = "invoice_terms" <% $opt{'disabled'} ? 'DISABLED' : ''%> > - <OPTION VALUE=""><% $empty_label %> +# #false laziness w/select-table.html +% while ( @pre_options ) { +% my $pre_opt = shift(@pre_options); +% my $pre_label = shift(@pre_options); +% my $selected = # ( ref($value) && $value->{$pre_opt} ) || +% ( $curr_value eq $pre_opt ); + <OPTION VALUE="<% $pre_opt %>" + <% $selected ? 'SELECTED' : '' %> + ><% $pre_label %> +% } + + <OPTION VALUE="<% $empty_value %>"><% $empty_label %> % foreach my $term ( @terms ) { <OPTION VALUE="<% $term %>" <% $curr_value eq $term ? ' SELECTED' : '' %>><% $term %> % } @@ -19,8 +30,12 @@ my $empty_label = ($conf->config('invoice_default_terms') || 'Payable upon receipt'). ')'; +my $empty_value = $opt{'empty_value'} || ''; + my @terms = ( 'Payable upon receipt', ( map "Net $_", 0, 10, 15, 20, 30, 45, 60 ), ); +my @pre_options = $opt{pre_options} ? @{ $opt{pre_options} } : (); + </%init> diff --git a/httemplate/search/cust_main.html b/httemplate/search/cust_main.html index d6586e84e..a1693b87d 100755 --- a/httemplate/search/cust_main.html +++ b/httemplate/search/cust_main.html @@ -45,7 +45,7 @@ my %search_hash = (); #scalars my @scalars = qw ( agentnum status cancelled_pkgs cust_fields flattened_pkgs custbatch - no_censustract paydate_year paydate_month + no_censustract paydate_year paydate_month invoice_terms ); for my $param ( @scalars ) { diff --git a/httemplate/search/report_cust_main.html b/httemplate/search/report_cust_main.html index 4369a682d..5860fbfbb 100755 --- a/httemplate/search/report_cust_main.html +++ b/httemplate/search/report_cust_main.html @@ -82,6 +82,17 @@ } } </SCRIPT> + + <TR> + <TD ALIGN="right">Invoice terms</TD> + <TD> + <% include( '/elements/select-terms.html', + 'pre_options' => [ '' => 'all' ], + 'empty_value' => 'NULL', + ) + %> + </TD> + </TR> <% include( '/elements/tr-input-lessthan_greaterthan.html', label => 'Current balance', |