quick payment tool improvements, RT8121
authorlevinse <levinse>
Wed, 13 Apr 2011 05:42:38 +0000 (05:42 +0000)
committerlevinse <levinse>
Wed, 13 Apr 2011 05:42:38 +0000 (05:42 +0000)
httemplate/elements/customer-table.html
httemplate/misc/cust_main_note-import.cgi
httemplate/misc/xmlhttp-cust_main-search.cgi

index 89e54d7..4d9d102 100644 (file)
@@ -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:
 <TR>
   <TH>Inv #</TH>
   <TH>Cust #</TH>
+  <TH>Status</TH>
   <TH>Customer</TH>
+  <TH>Balance</TH>
 % foreach my $header ( @{$opt{header}} ) {
     <TH><% $header %></TH>
 % }
-  <TH>Balance</TH>
 </TR>
 % my $row = 0;
 % for ( $row = 0; exists($param->{"custnum$row"}); $row++ ) { 
@@ -405,6 +429,16 @@ Example:
           custnum_input<% $row %>.onchange = <% $opt{prefix} %>search_custnum;
         </SCRIPT>
       </TD>
+      
+      <TD>
+        <SPAN 
+               NAME      = "status<% $row %>"
+               ID        = "status<% $row %>"
+               rownum    = "<% $row %>"
+               STYLE     = "text-align:center; font-weight: bold"
+        >
+        </SPAN>
+      </TD>
 
       <TD>
         <INPUT TYPE="text" NAME="customer<% $row %>" ID="customer<% $row %>" SIZE=64 VALUE="<% $param->{"customer$row"} %>" rownum="<% $row %>">
@@ -461,21 +495,19 @@ Example:
 %     $col++;
 %   }
       <TD>
-       <INPUT TYPE      = "text"
+        <SPAN 
                NAME      = "balance<% $row %>"
                ID        = "balance<% $row %>"
-               SIZE      = 8
-               MAXLENGTH = 12
-               STYLE     = "text-align:right;"
-               VALUE     = "<% $param->{"balance$row"} %>"
                rownum    = "<% $row %>"
+               STYLE     = "text-align:center;"
         >
+        </SPAN>
       </TD>
     </TR>
 % } 
 
 <TR>
-  <TH COLSPAN=3 ID="<% $opt{'prefix'} %>_TOTAL_TOTAL">
+  <TH COLSPAN=5 ID="<% $opt{'prefix'} %>_TOTAL_TOTAL">
     Total <% $row ? $row-1 : 0 %>
     <% PL($opt{name_singular} || 'customer', ( $row ? $row-1 : 0 ) ) %>
   </TH>
@@ -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 =
index 79fdd09..72ac556 100644 (file)
@@ -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;
index 7140b20..6f02312 100644 (file)
@@ -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;
    [];
 }
 </%init>