X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fcustomer-table.html;h=83abad0103773028aeecb5945c5b4646585d6d3c;hb=73d97ad71884ce66b435f0e8d85e5bf99cda3712;hp=fc1af69c6bb424dcc7945a944f58632f8a442dc4;hpb=2a7f90bbc8958c0674bb470ecd8e4bed00e6a8c4;p=freeside.git diff --git a/httemplate/elements/customer-table.html b/httemplate/elements/customer-table.html index fc1af69c6..83abad010 100644 --- a/httemplate/elements/customer-table.html +++ b/httemplate/elements/customer-table.html @@ -72,30 +72,33 @@ Example: function update_customer(searchrow, customerArray) { + var display_custnum_obj = document.getElementById('display_custnum'+searchrow); var custnum_obj = document.getElementById('custnum'+searchrow); var customer = document.getElementById('customer'+searchrow); var customer_select = document.getElementById('cust_select'+searchrow); - custnum_obj.disabled = false; - custnum_obj.style.backgroundColor = '#ffffff'; + display_custnum_obj.disabled = false; + display_custnum_obj.style.backgroundColor = '#ffffff'; customer.disabled = false; customer.style.backgroundColor = '#ffffff'; if ( customerArray.length == 0 ) { - custnum_obj.value = 'Not found'; + custnum_obj.value = ''; + display_custnum_obj.value = 'Not found'; customer.value = 'Not found'; - custnum_obj.style.color = '#ff0000'; + display_custnum_obj.style.color = '#ff0000'; customer.style.color = '#ff0000'; customer.style.display = ''; customer_select.style.display = 'none'; return false; - } else if ( customerArray.length == 6 ) { + } else if ( customerArray.length >= 6 ) { custnum_obj.value = customerArray[0]; - custnum_obj.style.color = '#000000'; + display_custnum_obj.value = customerArray[6]; + display_custnum_obj.style.color = '#000000'; customer.value = customerArray[1]; update_balance_text(searchrow, customerArray[2]); @@ -139,7 +142,6 @@ Example: customer.style.display = ''; customer_select.style.display = 'none'; - var custnum_obj = document.getElementById('custnum'+searchrow); update_balance_text(searchrow, ''); update_status_text(searchrow, ''); update_status_color(searchrow, '#000000'); @@ -164,11 +166,12 @@ Example: this.style.color = '#000000' - var custnum_obj = this; + var display_custnum_obj = this; var searchrow = this.getAttribute('rownum'); - var custnum = this.value; + var custnum_obj = document.getElementById('custnum'+searchrow); + var display_custnum = this.value; - if ( custnum == 'searching...' || custnum == 'Not found' || custnum == '' ) + if ( display_custnum == 'searching...' || display_custnum == 'Not found' || display_custnum == '' ) return; if ( this.getAttribute('magic') == 'nosearch' ) { @@ -179,15 +182,16 @@ Example: if ( ( <% $opt{prefix} %>rownum - searchrow ) == 1 ) { <% $opt{prefix} %>addRow(); } - var customer = document.getElementById('customer'+searchrow); - customer.value = 'searching...'; - customer.disabled = true; - customer.style.color = '#000000'; - customer.style.backgroundColor = '#dddddd'; + + var customer_obj = document.getElementById('customer'+searchrow); + customer_obj.value = 'searching...'; + customer_obj.disabled = true; + customer_obj.style.color = '#000000'; + customer_obj.style.backgroundColor = '#dddddd'; var customer_select = document.getElementById('cust_select'+searchrow); - customer.style.display = ''; + customer_obj.style.display = ''; customer_select.style.display = 'none'; var invnum = document.getElementById('invnum'+searchrow); @@ -200,15 +204,47 @@ Example: function search_custnum_update(customers) { - var customerArray = eval('(' + customers + ')') || []; - update_customer(searchrow, customerArray); + var customerArrayArray = eval('(' + customers + ')') || []; + + if ( customerArrayArray.length == 0 ) { + update_customer(searchrow, []); + + } else if ( customerArrayArray.length == 1 ) { + + update_customer(searchrow, customerArrayArray[0]); % if ( $opt{custnum_update_callback} ) { - <% $opt{custnum_update_callback} %>(searchrow, '<% $opt{prefix} %>') + <% $opt{custnum_update_callback} %>(searchrow, '<% $opt{prefix} %>') % } + + } else { + + custnum_obj.value = 'Multiple'; // or something + custnum_obj.style.color = '#ff0000'; + + //blank the current list + customer_select.options.length = 0; + + opt(customer_select, '', 'Multiple customers match "' + custnum + '" - select one', '#ff0000'); + //add the multiple customers + for ( var s = 0; s < customerArrayArray.length; s++ ) { + opt(customer_select, + JSON.stringify(customerArrayArray[s]), + customerArrayArray[s][1], + '#000000'); + } + + opt(customer_select, 'cancel', '(Edit search string)', '#000000'); + + customer_obj.style.display = 'none'; + + customer_select.style.display = ''; + + } + } - custnum_search(custnum, search_custnum_update ); + custnum_search(display_custnum, search_custnum_update ); } @@ -233,7 +269,7 @@ Example: var invnum = document.getElementById('invnum'+searchrow); invnum.value = ''; - var custnum_obj = document.getElementById('custnum'+searchrow); + var custnum_obj = document.getElementById('display_custnum'+searchrow); custnum_obj.value = 'searching...'; custnum_obj.disabled = true; custnum_obj.style.color = '#000000'; @@ -248,9 +284,13 @@ Example: custnum_obj.disabled = false; custnum_obj.style.backgroundColor = '#ffffff'; - if ( customerArrayArray.length == 1 ) { + if ( customerArrayArray.length == 0 ) { + + update_customer(searchrow, []); - update_customer(customerArrayArray[1]); + } else if ( customerArrayArray.length == 1 ) { + + update_customer(searchrow, customerArrayArray[0]); % if ( $opt{custnum_update_callback} ) { <% $opt{custnum_update_callback} %>(searchrow, '<% $opt{prefix} %>') % } @@ -292,6 +332,7 @@ Example: var customer = this.options[this.selectedIndex].text; var searchrow = this.getAttribute('rownum'); + var display_custnum_obj = document.getElementById('display_custnum'+searchrow); var custnum_obj = document.getElementById('custnum'+searchrow); var customer_obj = document.getElementById('customer'+searchrow); var balance_obj = document.getElementById('balance'+searchrow); @@ -301,6 +342,7 @@ Example: } else if ( custnum_balance_status == 'cancel' ) { + display_custnum_obj.value = ''; custnum_obj.value = ''; custnum_obj.style.color = '#000000'; @@ -384,16 +426,22 @@ Example: " + rownum = "<% $row %>" + > + " rownum = "<% $row %>" > @@ -592,15 +640,22 @@ Example: var custnum_cell = document.createElement('TD'); + var display_custnum_input = document.createElement('INPUT'); + display_custnum_input.setAttribute('name', 'display_custnum'+<% $opt{prefix} %>rownum); + display_custnum_input.setAttribute('id', 'display_custnum'+<% $opt{prefix} %>rownum); + display_custnum_input.style.textAlign = 'right'; + display_custnum_input.setAttribute('size', 8); + display_custnum_input.setAttribute('maxlength', 12); + display_custnum_input.setAttribute('rownum', <% $opt{prefix} %>rownum); + display_custnum_input.onfocus = clearhint_custnum; + display_custnum_input.onchange = <% $opt{prefix} %>search_custnum; + custnum_cell.appendChild(display_custnum_input); + var custnum_input = document.createElement('INPUT'); + custnum_input.type = 'hidden'; custnum_input.setAttribute('name', 'custnum'+<% $opt{prefix} %>rownum); custnum_input.setAttribute('id', 'custnum'+<% $opt{prefix} %>rownum); - custnum_input.style.textAlign = 'right'; - custnum_input.setAttribute('size', 8); - custnum_input.setAttribute('maxlength', 12); custnum_input.setAttribute('rownum', <% $opt{prefix} %>rownum); - custnum_input.onfocus = clearhint_custnum; - custnum_input.onchange = <% $opt{prefix} %>search_custnum; custnum_cell.appendChild(custnum_input); row.appendChild(custnum_cell);