From b64ad663a0b694d86079c82c80f9de929b2559af Mon Sep 17 00:00:00 2001 From: levinse Date: Wed, 13 Apr 2011 05:42:38 +0000 Subject: [PATCH] quick payment tool improvements, RT8121 --- httemplate/elements/customer-table.html | 114 ++++++++++++++++++--------- httemplate/misc/cust_main_note-import.cgi | 4 +- httemplate/misc/xmlhttp-cust_main-search.cgi | 8 +- 3 files changed, 83 insertions(+), 43 deletions(-) diff --git a/httemplate/elements/customer-table.html b/httemplate/elements/customer-table.html index 89e54d703..4d9d10213 100644 --- a/httemplate/elements/customer-table.html +++ b/httemplate/elements/customer-table.html @@ -100,7 +100,9 @@ Example: var custnum_obj = document.getElementById('custnum'+searchrow); var balance = document.getElementById('balance'+searchrow); - balance.value = ''; + var status = document.getElementById('status'+searchrow); + balance.innerHTML = ''; + status.innerHTML = ''; function search_invnum_update(customers) { @@ -121,12 +123,14 @@ Example: customer.style.display = ''; customer_select.style.display = 'none'; - } else if ( customerArray.length == 3 ) { + } else if ( customerArray.length == 5 ) { custnum_obj.value = customerArray[0]; custnum_obj.style.color = '#000000'; customer.value = customerArray[1]; - balance.value = customerArray[2]; + balance.innerHTML = customerArray[2]; + status.innerHTML = customerArray[3]; + status.style.color = '#'+customerArray[4]; customer.style.display = ''; customer_select.style.display = 'none'; @@ -178,7 +182,10 @@ Example: invnum.value = ''; var balance = document.getElementById('balance'+searchrow); - balance.value = ''; + balance.innerHTML = ''; + + var status = document.getElementById('status'+searchrow); + status.innerHTML = ''; function search_custnum_update(customers) { @@ -193,12 +200,14 @@ Example: customer.style.color = '#ff0000'; custnum_obj.style.color = '#ff0000'; - } else if ( customerArray.length == 3 ) { + } else if ( customerArray.length == 5 ) { custnum_obj.value = customerArray[0]; custnum_obj.style.color = '#000000'; customer.value = customerArray[1]; - balance.value = customerArray[2]; + balance.innerHTML = customerArray[2]; + status.innerHTML = customerArray[3]; + status.style.color = '#'+customerArray[4]; customer.style.display = ''; customer_select.style.display = 'none'; @@ -243,7 +252,10 @@ Example: var customer_select = document.getElementById('cust_select'+searchrow); var balance = document.getElementById('balance'+searchrow); - balance.value = ''; + balance.innerHTML = ''; + + var status = document.getElementById('status'+searchrow); + status.innerHTML = ''; function search_customer_update(customers) { @@ -265,7 +277,9 @@ Example: custnum_obj.value = customerArray[0][0]; customer_obj.value = customerArray[0][1]; - balance.value = customerArray[0][2]; + balance.innerHTML = customerArray[0][2]; + status.innerHTML = customerArray[0][3]; + status.style.color = '#'+customerArray[0][4]; customer_obj.style.display = ''; customer_select.style.display = 'none'; @@ -287,7 +301,7 @@ Example: //add the multiple customers for ( var s = 0; s < customerArray.length; s++ ) - opt(customer_select, customerArray[s][0] + '_' + customerArray[s][2], customerArray[s][1], '#000000'); + opt(customer_select, customerArray[s][0] + '_' + customerArray[s][2] + '_' + customerArray[s][3] + '_' + customerArray[s][4], customerArray[s][1], '#000000'); opt(customer_select, 'cancel', '(Edit search string)', '#000000'); @@ -305,17 +319,18 @@ Example: function select_customer() { - var custnum_balance = this.options[this.selectedIndex].value; + var custnum_balance_status = this.options[this.selectedIndex].value; var customer = this.options[this.selectedIndex].text; var searchrow = this.getAttribute('rownum'); var custnum_obj = document.getElementById('custnum'+searchrow); var customer_obj = document.getElementById('customer'+searchrow); var balance_obj = document.getElementById('balance'+searchrow); + var status_obj = document.getElementById('status'+searchrow); - if ( custnum_balance == '' ) { + if ( custnum_balance_status == '' ) { - } else if ( custnum_balance == 'cancel' ) { + } else if ( custnum_balance_status == 'cancel' ) { custnum_obj.value = ''; custnum_obj.style.color = '#000000'; @@ -326,8 +341,13 @@ Example: } else { - var custnum = custnum_balance.substring(0,custnum_balance.indexOf('_')); - var balance = custnum_balance.substring(custnum_balance.indexOf('_')+1); + var pos_underscore1 = custnum_balance_status.indexOf('_'); + var pos_underscore2 = custnum_balance_status.indexOf('_',pos_underscore1+1); + var pos_underscore3 = custnum_balance_status.indexOf('_',pos_underscore2+1); + var custnum = custnum_balance_status.substring(0,pos_underscore1); + var balance = custnum_balance_status.substring(pos_underscore1+1,pos_underscore2); + var status = custnum_balance_status.substring(pos_underscore2+1,pos_underscore3); + var color = custnum_balance_status.substring(pos_underscore3+1); custnum_obj.value = custnum; custnum_obj.style.color = '#000000'; @@ -335,7 +355,10 @@ Example: customer_obj.value = customer; customer_obj.style.color = '#000000'; - balance_obj.value = balance; + balance_obj.innerHTML = balance; + + status_obj.innerHTML = status; + status_obj.style.color = '#'+color; this.style.display = 'none'; customer_obj.style.display = ''; @@ -362,11 +385,12 @@ Example: Inv # Cust # + Status Customer + Balance % foreach my $header ( @{$opt{header}} ) { <% $header %> % } - Balance % my $row = 0; % for ( $row = 0; exists($param->{"custnum$row"}); $row++ ) { @@ -405,6 +429,16 @@ Example: custnum_input<% $row %>.onchange = <% $opt{prefix} %>search_custnum; + + + + + " rownum="<% $row %>"> @@ -461,21 +495,19 @@ Example: % $col++; % } - " rownum = "<% $row %>" + STYLE = "text-align:center;" > + % } - + Total <% $row ? $row-1 : 0 %> <% PL($opt{name_singular} || 'customer', ( $row ? $row-1 : 0 ) ) %> @@ -579,6 +611,18 @@ Example: custnum_cell.appendChild(custnum_input); row.appendChild(custnum_cell); + + var status_cell = document.createElement('TD'); + + var status_span = document.createElement('SPAN'); + status_span.setAttribute('name', 'status'+<% $opt{prefix} %>rownum); + status_span.setAttribute('id', 'status'+<% $opt{prefix} %>rownum); + status_span.style.textAlign = 'center'; + status_span.style.fontWeight = 'bold'; + status_span.setAttribute('rownum', <% $opt{prefix} %>rownum); + status_cell.appendChild(status_span); + + row.appendChild(status_cell); var customer_cell = document.createElement('TD'); @@ -603,6 +647,17 @@ Example: customer_cell.appendChild(customer_select); row.appendChild(customer_cell); + + var balance_cell = document.createElement('TD'); + + var balance_span = document.createElement('SPAN'); + balance_span.setAttribute('name', 'balance'+<% $opt{prefix} %>rownum); + balance_span.setAttribute('id', 'balance'+<% $opt{prefix} %>rownum); + balance_span.style.textAlign = 'center'; + balance_span.setAttribute('rownum', <% $opt{prefix} %>rownum); + balance_cell.appendChild(balance_span); + + row.appendChild(balance_cell); % my $col = 0; % foreach my $field ( @{$opt{fields}} ) { @@ -640,21 +695,6 @@ 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/cust_main_note-import.cgi b/httemplate/misc/cust_main_note-import.cgi index 79fdd09ff..72ac556fd 100644 --- a/httemplate/misc/cust_main_note-import.cgi +++ b/httemplate/misc/cust_main_note-import.cgi @@ -49,8 +49,8 @@ if ( customerArray.length == 0 ) { custnum_obj.value = 'Not found'; custnum_obj.style.color = '#ff0000'; - } else if ( customerArray.length == 3 ) { - var name = customerArray[1]; + } else if ( customerArray.length == 5 ) { + var name = customerArray[1]; opt(customer_select,custnum,name,'#000000'); customer_select.selectedIndex = customer_select.length - 1; custnum_obj.value = custnum; diff --git a/httemplate/misc/xmlhttp-cust_main-search.cgi b/httemplate/misc/xmlhttp-cust_main-search.cgi index 7140b20b8..6f023121f 100644 --- a/httemplate/misc/xmlhttp-cust_main-search.cgi +++ b/httemplate/misc/xmlhttp-cust_main-search.cgi @@ -12,7 +12,7 @@ % my @cust_main = smart_search( 'search' => $string, % 'no_fuzzy_on_exact' => 1, #pref? % ); -% my $return = [ map [ $_->custnum, $_->name, $_->balance ], @cust_main ]; +% my $return = [ map [ $_->custnum, $_->name, $_->balance, $_->ucfirst_status, $_->statuscolor ], @cust_main ]; % <% objToJson($return) %> % } elsif ( $sub eq 'invnum_search' ) { @@ -33,13 +33,13 @@ sub findbycustnum{ my $agent = shift; my $hashref = { 'custnum' => $custnum }; $hashref = { 'agent_custid' => $custnum } if $agent; - my $cust_main = qsearchs({ + my $c = qsearchs({ 'table' => 'cust_main', 'hashref' => $hashref, 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql, }); - return [ $cust_main->custnum, $cust_main->name, $cust_main->balance ] - if $cust_main; + return [ $c->custnum, $c->name, $c->balance, $c->ucfirst_status, $c->statuscolor ] + if $c; []; } -- 2.11.0