X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fcustomer-table.html;h=aa085c41aa3994482c4bda2cb03b77ce3337c003;hb=b431ece7b4a71aa5771f44393da582692f668817;hp=c3a5df937542132045db9f7bf39f2ee29878d3b8;hpb=99a7600cf4b5986b6f2be8ee1ad871ca77799c6b;p=freeside.git diff --git a/httemplate/elements/customer-table.html b/httemplate/elements/customer-table.html index c3a5df937..aa085c41a 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 = '<% $money_char %>' + customerArray[2] + '   '; + status.innerHTML = customerArray[3]; + status.style.color = '#'+customerArray[4]; customer.style.display = ''; customer_select.style.display = 'none'; @@ -178,31 +182,43 @@ 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(name) { + function search_custnum_update(customers) { - var name = eval('(' + name + ')' ); + var customerArray = eval('(' + customers + ')'); customer.disabled = false; customer.style.backgroundColor = '#ffffff'; + + if ( customerArray.length == 0 ) { - if ( name.length > 0 ) { - customer.value = name; - customer.setAttribute('magic', 'nosearch'); -% if ( $opt{custnum_update_callback} ) { - <% $opt{custnum_update_callback} %>(searchrow, '<% $opt{prefix} %>') -% } - } else { - customer.value = 'Not found'; + customer.value = 'Not found'; customer.style.color = '#ff0000'; custnum_obj.style.color = '#ff0000'; - } + } else if ( customerArray.length == 5 ) { + + custnum_obj.value = customerArray[0]; + custnum_obj.style.color = '#000000'; + customer.value = customerArray[1]; + balance.innerHTML = '<% $money_char %>' + customerArray[2] + '   '; + status.innerHTML = customerArray[3]; + status.style.color = '#'+customerArray[4]; + + customer.style.display = ''; + customer_select.style.display = 'none'; +% if ( $opt{custnum_update_callback} ) { + <% $opt{custnum_update_callback} %>(searchrow, '<% $opt{prefix} %>') +% } + } } - custnum_search( custnum, search_custnum_update ); + custnum_search(custnum, search_custnum_update ); } @@ -236,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) { @@ -258,7 +277,9 @@ Example: custnum_obj.value = customerArray[0][0]; customer_obj.value = customerArray[0][1]; - balance.value = customerArray[0][2]; + balance.innerHTML = '<% $money_char %>' + customerArray[0][2] + '   '; + status.innerHTML = customerArray[0][3]; + status.style.color = '#'+customerArray[0][4]; customer_obj.style.display = ''; customer_select.style.display = 'none'; @@ -280,7 +301,7 @@ Example: //add the multiple customers for ( var s = 0; s < customerArray.length; s++ ) - opt(customer_select, customerArray[s][0], 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'); @@ -298,16 +319,18 @@ Example: function select_customer() { - var custnum = 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 == '' ) { + if ( custnum_balance_status == '' ) { - } else if ( custnum == 'cancel' ) { + } else if ( custnum_balance_status == 'cancel' ) { custnum_obj.value = ''; custnum_obj.style.color = '#000000'; @@ -317,6 +340,14 @@ Example: customer_obj.focus(); } else { + + 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'; @@ -324,6 +355,11 @@ Example: customer_obj.value = customer; customer_obj.style.color = '#000000'; + balance_obj.innerHTML = '<% $money_char %>' + balance; + + status_obj.innerHTML = status; + status_obj.style.color = '#'+color; + this.style.display = 'none'; customer_obj.style.display = ''; @@ -349,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++ ) { @@ -392,6 +429,16 @@ Example: custnum_input<% $row %>.onchange = <% $opt{prefix} %>search_custnum; + + + + + " rownum="<% $row %>"> @@ -447,22 +494,20 @@ Example: % $col++; % } - - + " rownum = "<% $row %>" > + +   % } - + Total <% $row ? $row-1 : 0 %> <% PL($opt{name_singular} || 'customer', ( $row ? $row-1 : 0 ) ) %> @@ -566,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'); @@ -590,6 +647,17 @@ Example: customer_cell.appendChild(customer_select); row.appendChild(customer_cell); + + var balance_cell = document.createElement('TD'); + balance_cell.style.textAlign = 'right'; + + var balance_span = document.createElement('SPAN'); + balance_span.setAttribute('name', 'balance'+<% $opt{prefix} %>rownum); + balance_span.setAttribute('id', 'balance'+<% $opt{prefix} %>rownum); + balance_span.setAttribute('rownum', <% $opt{prefix} %>rownum); + balance_cell.appendChild(balance_span); + + row.appendChild(balance_cell); % my $col = 0; % foreach my $field ( @{$opt{fields}} ) { @@ -627,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 = @@ -667,6 +720,7 @@ Example: <%init> my(%opt) = @_; +my $conf = new FS::Conf; $opt{prefix} = '' unless defined $opt{prefix}; $opt{prefix} .= '_' if $opt{prefix}; @@ -687,4 +741,6 @@ my %align = ( 'c' => 'center', ); +my $money_char = $conf->config('money_char') || '$'; +