From 9ab9e3293274cdba0ddbd2df21adb575f8b987ef Mon Sep 17 00:00:00 2001 From: levinse Date: Tue, 15 Feb 2011 04:20:21 +0000 Subject: [PATCH] quick payment tool improvements, RT10698 --- httemplate/elements/customer-table.html | 163 ++++++++++++++++++++++++++- httemplate/misc/xmlhttp-cust_main-search.cgi | 16 ++- 2 files changed, 174 insertions(+), 5 deletions(-) diff --git a/httemplate/elements/customer-table.html b/httemplate/elements/customer-table.html index 3c3f8b2ee..c3a5df937 100644 --- a/httemplate/elements/customer-table.html +++ b/httemplate/elements/customer-table.html @@ -41,6 +41,15 @@ Example: + % $col++; % } - + + " + rownum = "<% $row %>" + > + % } - + Total <% $row ? $row-1 : 0 %> <% PL($opt{name_singular} || 'customer', ( $row ? $row-1 : 0 ) ) %> @@ -394,7 +519,7 @@ Example: <% include('/elements/xmlhttp.html', 'url' => $p. 'misc/xmlhttp-cust_main-search.cgi', - 'subs' => [qw( custnum_search smart_search )], + 'subs' => [qw( custnum_search smart_search invnum_search )], ) %> @@ -411,6 +536,21 @@ Example: var tablebody = table.getElementsByTagName('tbody').item(0); var row = table.insertRow(rownum+1); + + var invnum_cell = document.createElement('TD'); + + var invnum_input = document.createElement('INPUT'); + invnum_input.setAttribute('name', 'invnum'+<% $opt{prefix} %>rownum); + invnum_input.setAttribute('id', 'invnum'+<% $opt{prefix} %>rownum); + invnum_input.style.textAlign = 'right'; + invnum_input.setAttribute('size', 8); + invnum_input.setAttribute('maxlength', 12); + invnum_input.setAttribute('rownum', <% $opt{prefix} %>rownum); + invnum_input.onfocus = clearhint_invnum; + invnum_input.onchange = <% $opt{prefix} %>search_invnum; + invnum_cell.appendChild(invnum_input); + + row.appendChild(invnum_cell); var custnum_cell = document.createElement('TD'); @@ -487,6 +627,21 @@ Example: % $col++; % } + var balance_cell = document.createElement('TD'); + + var balance_input = document.createElement('INPUT'); + balance_input.setAttribute('name', 'balance'+<% $opt{prefix} %>rownum); + balance_input.setAttribute('id', 'balance'+<% $opt{prefix} %>rownum); + balance_input.style.textAlign = 'right'; + balance_input.setAttribute('size', 8); + balance_input.setAttribute('maxlength', 12); + balance_input.setAttribute('rownum', <% $opt{prefix} %>rownum); + balance_input.disabled = true; + balance_input.style.backgroundColor = '#dddddd'; + balance_cell.appendChild(balance_input); + + row.appendChild(balance_cell); + //update the total # of rows display if ( <% $opt{prefix} %>rownum == 1 ) { <% $opt{prefix} %>total_el.innerHTML = diff --git a/httemplate/misc/xmlhttp-cust_main-search.cgi b/httemplate/misc/xmlhttp-cust_main-search.cgi index 481bea264..c71953ba9 100644 --- a/httemplate/misc/xmlhttp-cust_main-search.cgi +++ b/httemplate/misc/xmlhttp-cust_main-search.cgi @@ -25,9 +25,23 @@ % my @cust_main = smart_search( 'search' => $string, % 'no_fuzzy_on_exact' => 1, #pref? % ); -% my $return = [ map [ $_->custnum, $_->name ], @cust_main ]; +% my $return = [ map [ $_->custnum, $_->name, $_->balance ], @cust_main ]; % <% objToJson($return) %> +% } elsif ( $sub eq 'invnum_search' ) { +% +% my $string = $cgi->param('arg'); +% my $inv = qsearchs('cust_bill', { 'invnum' => $string }); +% my $return = []; +% if ( $inv ) { +% my $cust_main = qsearchs({ +% 'table' => 'cust_main', +% 'hashref' => { 'custnum' => $inv->custnum }, +% 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql, +% }); +% $return = [ $cust_main->custnum, $cust_main->name, $cust_main->balance ]; +% } +<% objToJson($return) %> % } <%init> -- 2.11.0