add invoice terms to advanced customer report. dogfood.
authorivan <ivan>
Sat, 14 Nov 2009 00:08:13 +0000 (00:08 +0000)
committerivan <ivan>
Sat, 14 Nov 2009 00:08:13 +0000 (00:08 +0000)
FS/FS/cust_main.pm
httemplate/elements/select-terms.html
httemplate/search/cust_main.html
httemplate/search/report_cust_main.html

index 858ac14..08c7a51 100644 (file)
@@ -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
   ##
index 629d1e4..52f9fb5 100644 (file)
@@ -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>
index d6586e8..a1693b8 100755 (executable)
@@ -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 ) {
index 4369a68..5860fbf 100755 (executable)
         }
       }
     </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',