WIP setup add employees to account edit page.
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 19 Apr 2018 20:55:02 +0000 (16:55 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 19 Apr 2018 20:55:02 +0000 (16:55 -0400)
Adding some code for selecting and adding employee to billing account.

classes/billingSupport.php
models/admin/member/billing.php
views/admin/billing/editAccount.html

index 4b76a4b..ceb1c9f 100644 (file)
@@ -874,6 +874,8 @@ class GlmBillingSupport
     /**
      * getListOfAccountEmployees
      *
+     * Returns a list of employees data for a member.
+     *
      * @param int $member_id Member id
      *
      * @access public
index 86caab2..485e375 100644 (file)
@@ -124,6 +124,7 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
         $member_invoice     = false;
         $payable_types      = false;
         $account_status     = false;
+        $accounts           = false;
 
         // For lockedToMember.
         $lockedToMember = false;
@@ -393,6 +394,9 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
 
             // Get a list of this accounts employees. If they have any.
             $employees = $BillingSupport->getListOfAccountEmployees( $this->memberID );
+            // Need to get the accounts
+            $Accounts = new GlmDataAccounts( $this->wpdb, $this->config );
+            $accounts = $Accounts->getSimpleAccountList( '', 'ref_name' );
 
             // Need to see if there's an account for this member.
             $accountID = $this->wpdb->get_var(
@@ -408,8 +412,8 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
                     $account     = $Accounts->editEntry( $accountID );
                     $haveAccount = true;
                 } else {
-                    $accountID   = 0;
-                    $account     = $Accounts->newEntry();
+                    $accountID = 0;
+                    $account   = $Accounts->newEntry();
                     // Set the ref_name from memberData
                     $account['fieldData']['ref_name'] = $memberData['name'];
                     $haveAccount = false;
@@ -581,6 +585,7 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
             'member_invoice'     => $member_invoice,
             'payable_types'      => $payable_types,
             'account_status'     => $account_status,
+            'accounts'           => $accounts,
         );
 
         // Return status, any suggested view, and any data to controller.
index 510ece3..6088005 100644 (file)
                 <strong>Associated Members/Employees</strong>
             </div>
             <div class="glm-billing-input">
-                <select id="glm-billing-members">
-                    <option value="">Select Member to Add</option>
-                </select>
-                {if $employees}
-                    {foreach $employees as $employee}
-                        <div class="glm-billing-employee">
-                            {$employee.ref_name}
-                            <label><input type="checkbox" name="delete[]" value="{$employee.ref_dest}"> Remove </label>
-                        </div>
-                    {/foreach}
-                {/if}
+                <input id="glm-billing-member-list" placeholder="Lookup Member">
+                <div id="glm-billing-employees">
+                    {if $employees}
+                        {foreach $employees as $employee}
+                            <div class="glm-billing-employee">
+                                {$employee.ref_name}
+                                <a> Remove </a>
+                            </div>
+                        {/foreach}
+                    {/if}
+                </div>
             </div>
         </div>
     {/if}
 <script>
 jQuery(document).ready(function($){
 
+    var accounts = [ {foreach $accounts as $m} { label: "{$m.ref_name|unescape:'html'|replace:'"':''}", value: "{$m.ref_name|unescape:'html'|replace:'"':''}", id: '{$m.id}' }, {/foreach} ];
+
+    // Setup autocomplete for both inputs
+    $('#glm-billing-member-list').autocomplete({
+        source: accounts,
+        select: function( event, ui ){
+            console.log('selected: ', ui);
+            addEmployee( ui.item );
+            $('#glm-billing-member-list').val( '' );
+            return false;
+        },
+        change: function( event, ui) {
+            if( ui.item == null ) {
+                $('#glm-billing-member-list').val( '' );
+                return false;
+            }
+        },
+    });
+
+    function addEmployee( employee ) {
+        var html = '<div class="glm-billign-employee" data-id="' + employee.id + '">';
+        html += '<input type="hidden" name="employee[' + employee.id + ']" value="1">';
+        html += employee.label;
+        html += '<a class="glm-billing-employee-del">Remove</a>';
+        html += '</div>';
+        $('#glm-billing-employees').append(html);
+    }
+
     // Setup the date picker for the input field with the name anniversary_date
     $('input[name="anniversary_date"]').datepicker({
         dateFormat: 'mm/dd/yy'