Rework for account page.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 19 Jun 2019 20:41:58 +0000 (16:41 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 19 Jun 2019 20:41:58 +0000 (16:41 -0400)
Working on statements in ajax popup.
Also need to redo the forms with foundation 6 markup so can use abide
form validation.

classes/data/dataAccounts.php
models/admin/ajax/ajaxStatements.php [new file with mode: 0644]
models/admin/billing/accounts.php
models/admin/member/billing.php
views/admin/billing/accountSearchForm.html
views/admin/billing/accounts.html
views/admin/billing/editAccountAjax.html [new file with mode: 0644]
views/admin/billing/statements.html

index 86eddc2..f602db8 100644 (file)
@@ -122,6 +122,7 @@ class GlmDataAccounts extends GlmDataAbstract
         $billingAccountEnabled      = $this->config['settings']['account_number_enabled'];
         $billingAccountRequired     = $this->config['settings']['account_number_required'];
         $billingAccountUnique       = $this->config['settings']['account_number_unique'];
+        $memberTypesEnabled         = $this->config['settings']['member_types_enabled'];
         if ( $billingFieldsRequired && $billingContactNameEnabled ) {
             $billingContactNameRequired = true;
         } else if ( $billingFieldsRequired && !$billingContactNameEnabled ) {
@@ -211,8 +212,6 @@ class GlmDataAccounts extends GlmDataAbstract
                 'use'       => 'a',
             ),
 
-
-
             'invoice_type' => array(
                 'field'    => 'invoice_type',
                 'type'     => 'integer',
@@ -372,27 +371,16 @@ class GlmDataAccounts extends GlmDataAbstract
                 'required'  => false,
             ),
 
-            // Customer Profile Id
-            // 'customer_profile_id' => array(
-            //     'field'    => 'customer_profile_id',
-            //     'type'     => 'text',
-            //     'use'      => 'a',
-            // ),
-            // Payment Profile Id
-            // 'payment_profile_id' => array(
-            //     'field'    => 'payment_profile_id',
-            //     'type'     => 'text',
-            //     'use'      => 'a',
-            // ),
-            // Payment Profile Card
-            // 'payment_profile_card' => array(
-            //     'field'    => 'payment_profile_card',
-            //     'type'     => 'text',
-            //     'use'      => 'a',
-            // ),
-
          );
 
+        if ( !$memberTypesEnabled ) {
+            $this->fields['invoice_type']['type']      = 'pointer';
+            $this->fields['invoice_type']['p_table']   = GLM_MEMBERS_BILLING_PLUGIN_DB_PREFIX . 'invoice_types';
+            $this->fields['invoice_type']['p_field']   = "CONCAT( name, ' ($', amount , ')' )";
+            $this->fields['invoice_type']['p_orderby'] = 'name';
+            $this->fields['invoice_type']['p_blank']   = true;
+        }
+
 
     }
 
diff --git a/models/admin/ajax/ajaxStatements.php b/models/admin/ajax/ajaxStatements.php
new file mode 100644 (file)
index 0000000..5675a53
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * PDF Output by admin-ajax
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package  glmMembersDatabase
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @version  0.1
+ */
+
+require_once GLM_MEMBERS_BILLING_PLUGIN_PATH . '/models/admin/member/billing.php';
+
+/**
+ * Steve Note
+ *
+ * You can get to this using the following URL.
+ *
+ *
+ {host}/wp-admin/admin-ajax.php?action=glm_members_admin_ajax&glm_action=runQueue
+ *
+ * You should be able to do this as POST or GET and should be able to add and read additional parameters.
+ * I added a "mystuff" parameter to the URL above and it does output from the code in the
+ * modelAction() function below.
+ *
+ * To add another model under models/admin/ajax all you need to do is create it and add it to the
+ * setup/validActions.php file.
+ *
+ */
+
+/**
+ * This class handles the work of creating new invoices based on.
+ * 1) Member Type of member matching a paid invoiceType
+ * 2) Member renewal date past
+ * 3) Member has Billing Account
+ * 4) Member has no active Invoice
+ * 5) Renewal date is within the next 30 Days
+ *
+ */
+class GlmMembersAdmin_ajax_ajaxBillingInfo extends GlmMembersAdmin_member_billing
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+
+    public $ajaxSide = true;
+
+    public function __construct ($wpdb, $config)
+    {
+
+        // Save WordPress Database object
+        $this->wpdb = $wpdb;
+
+        // Save plugin configuration object
+        $this->config = $config;
+
+    }
+
+
+}
index b664190..721cd66 100644 (file)
@@ -135,8 +135,8 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts
         }
 
         // Enqueue GLMA Foundation
-        wp_enqueue_style( 'Foundation6', GLM_MEMBERS_BILLING_PLUGIN_URL . '/css/foundation.min.css' );
-        wp_enqueue_script( 'Foundation6', GLM_MEMBERS_BILLING_PLUGIN_URL . '/js/foundation.min.js' );
+        wp_enqueue_style( 'Foundation6', GLM_MEMBERS_PLUGIN_URL . '/css/foundation-6.min.css' );
+        wp_enqueue_script( 'Foundation6', GLM_MEMBERS_PLUGIN_URL . '/js/foundation-6.min.js' );
 
         // Do selected option
         switch ($option) {
index 7ab390e..cc0f046 100644 (file)
@@ -663,18 +663,13 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
                     $account = $Accounts->updateEntry( $_REQUEST['id'] );
                     if ( !$account['status'] ) {
                         $accountUpdateError = true;
-                        if ( $this->ajaxSide ) {
-                            header( 'Content-type:application/json;charset=utf-8', true );
-                            echo json_encode( false, true );
-                            exit;
-                        }
                     } else {
                         $accountUpdated = true;
-                        if ( $this->ajaxSide ) {
-                            header( 'Content-type:application/json;charset=utf-8', true );
-                            echo json_encode( true, true );
-                            exit;
-                        }
+                    }
+                    if ( $this->ajaxSide ) {
+                        header( 'Content-type:application/json;charset=utf-8', true );
+                        echo json_encode( $account, true );
+                        exit;
                     }
                 }
 
@@ -790,6 +785,9 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
 
             // echo '<pre>$account: ' . print_r( $account, true ) . '</pre>';
             $view = 'editAccount';
+            if ( $this->ajaxSide ) {
+                $view = 'editAccountAjax';
+            }
             break;
 
         case 'view':
index f760448..2d8ba41 100644 (file)
@@ -93,7 +93,7 @@ jQuery(document).ready(function($) {
         <div class="billing-search-form-container">
                 <b>Member Account:&nbsp;</b>
                 <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}">
-                <input id="account_name" name="searchName" value="{if $searchName}{$searchName}{/if}" />
+                <input id="account_name" type="text" name="searchName" value="{if $searchName}{$searchName}{/if}" />
         </div>
         <div class="billing-search-form-container">
             <label class="billing-search-form-checkbox">
index 5e4462d..e3e17c8 100644 (file)
@@ -1,14 +1,3 @@
-<style>
-ul.wp-submenu {
-    margin-left: 0;
-}
-body {
-    background-color: rgb(241, 241, 241) !important;
-}
-input[type="text"] {
-    display: inline;
-}
-</style>
 {include file='admin/billing/header.html'}
 
 <div id="exportAccountsButton" class="button button-secondary glm-admin-export-button">Accounts Export</div>
@@ -186,6 +175,44 @@ input[type="text"] {
             );
             return false;
         });
+
+        $('.account-member-statements').on('click', function(e){
+            e.preventDefault();
+            var member    = $(this).data('member');
+            var $modalStm = $('#glmBillingStatements');
+
+            $.ajax({
+                url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=ajaxBillingInfo&option=list&member=' + member,
+                beforeSend: startAjax,
+                complete: completeAjax,
+            })
+            .done(function(resp){
+                $modalStm.html(resp).foundation('open').trigger('resizeme.zp.reveal');
+                $('.makeAPayment').on('click', function(e){
+                    e.preventDefault();
+                    var member        = $(this).data('member');
+                    var $modalPayment = $('#glmBillingPayment');
+                    $.ajax({
+                        url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=ajaxBillingInfo&option=makepaymentadjustment&member=' + member,
+                        beforeSend: startAjax,
+                        complete: completeAjax,
+                    }).done(function(resp){
+                        $modalPayment.html(resp).foundation('open').trigger('resizeme.zp.reveal');
+
+                    });
+
+                    return false;
+                });
+                $('.view').on('click', function(e){
+                    e.preventDefault();
+                    console.log('view clicked');
+                    return false;
+                });
+
+            });
+            return false;
+        });
+
         $(document).foundation();
         function startAjax(){
             $('#glmLoading').show();
@@ -196,17 +223,22 @@ input[type="text"] {
     });
 
 </script>
+
 <div id="glmBillingInfo" class="medium reveal" data-reveal>
+</div>
+<div class="reveal" id="billingInfoSuccess" data-reveal>
+    <h2>Billing Info Updated!</h2>
     <button class="close-button" data-close aria-label="Close" type="button">
         <span aria-hidden="true">&times;</span>
     </button>
 </div>
-<div class="reveal" id="billingInfoSuccess" data-reveal>
-    <h2>Billing Info Updated!</h2>
+<div id="glmBillingStatements" class="large reveal" data-reveal>
     <button class="close-button" data-close aria-label="Close" type="button">
         <span aria-hidden="true">&times;</span>
     </button>
 </div>
+<div id="glmBillingPayment" class="medium reveal" data-reveal>
+</div>
 <div id="glmLoading" class="" style="display:none; position: absolute; left: 50%; top: 50vh;width: 100%; height: 100%;z-index: 9999;">
     <img src="{$pluginAssetsUrl}loading25.gif">
 </div>
diff --git a/views/admin/billing/editAccountAjax.html b/views/admin/billing/editAccountAjax.html
new file mode 100644 (file)
index 0000000..2ba6786
--- /dev/null
@@ -0,0 +1,353 @@
+<button class="close-button" data-close aria-label="Close" type="button">
+    <span aria-hidden="true">&times;</span>
+</button>
+
+{if $accountUpdated}<span class="glm-notice glm-flash-updated">Account Updated</span>{/if}
+{if $accountUpdateError}<span class="glm-notice glm-flash-updated">Account Update Error</span>{/if}
+{if $accountInsertError}<span class="glm-notice glm-flash-updated">Account Insert Error</span>{/if}
+{if $accountAdded}<span class="glm-notice glm-flash-updated">Account Added</span>{/if}
+
+{$data = $account}
+
+<div class="glm-billing-form">
+    <form id="billingInfoForm" action="{$ajaxUrl}?action=glm_members_admin_ajax" method="post" data-abide novalidate>
+        <input type="hidden" name="glm_action" value="ajaxBillingInfo" />
+
+        <input class="button button-primary" type="submit" value="{if $haveAccount}Save{else}Create{/if} Account">
+        <input type="hidden" name="member" value="{$memberID}" />
+        <input type="hidden" name="ref_dest" value="{$memberID}" />
+        <input type="hidden" name="option" value="account" />
+
+        {if $settings.member_types_enabled}
+            <input type="hidden" name="invoice_type" value="{$account.fieldData.invoice_type}" />
+        {/if}
+        {if $lockedToMember}
+            <input type="hidden" name="anniversary_date" value="{$account.fieldData.anniversary_date.date}" />
+            <input type="hidden" name="renewal_date" value="{$account.fieldData.renewal_date.date}" />
+            <input type="hidden" name="account_number" value="{$account.fieldData.account_number}" />
+        {/if}
+
+        {if $accountID}
+            <input type="hidden" name="id" value="{$accountID}">
+        {/if}
+        {if !$settings.account_number_enabled}<input type="hidden" name="account_number" value="{$account.fieldData.account_number}" />{/if}
+
+        <fieldset class="fieldset">
+            <legend>Account Information</legend>
+
+            {$field = 'ref_name'}
+            {$fieldLabel = 'Name'}
+            {include file='admin/ui/f6-text.html'}
+
+
+    {if !$lockedToMember}
+        {if $settings.account_number_enabled}
+
+            {$field = 'account_number'}
+            {$fieldLabel = 'Account Number'}
+            {include file='admin/ui/f6-text.html'}
+
+        {/if}
+
+        {if !$settings.member_types_enabled}
+
+            {$field = 'invoice_type'}
+            {$fieldLabel = 'Payment Type'}
+            {include file='admin/ui/f6-select.html'}
+
+        {/if}
+
+        {if $settings.invoice_methods_enabled}
+
+            <div class="">
+                <div class="glm-billing-label">Invoice Delivery Methods</div>
+                <div class="glm-billing-input" data-tabid="glm-invoice-method">
+                    <label for="email_invoice"><input id="email_invoice" type="checkbox" name="email_invoice" {if $account.fieldData.email_invoice.value}checked{/if} /> By Email</label>
+                    <label for="usmail_invoice"><input id="usmail_invoice" type="checkbox" name="usmail_invoice" {if $account.fieldData.usmail_invoice.value}checked{/if} /> By US mail</label>
+                    <label for="fax_invoice"><input id="fax_invoice" type="checkbox" name="fax_invoice" {if $account.fieldData.fax_invoice.value}checked{/if} /> By Fax</label>
+                </div>
+            </div>
+
+        {/if}
+
+
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label{if $account.fieldRequired.anniversary_date} glm-required{/if}">Anniversary Date</div>
+            <div class="glm-billing-input{if $account.fieldFail.anniversary_date} glm-form-bad-input{/if}" data-tabid="glm-anniversary-date">
+                <input type="text" name="anniversary_date" value="{$account.fieldData.anniversary_date.date}" class="glm-form-text-input-medium">
+                {if $account.fieldFail.anniversary_date}<p>{$account.fieldFail.anniversary_date}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label{if $account.fieldRequired.renewal_date} glm-required{/if}">Renewal Date</div>
+            <div class="glm-billing-input{if $account.fieldFail.renewal_date} glm-form-bad-input{/if}" data-tabid="glm-renewal-date">
+                <input type="text" name="renewal_date" value="{$account.fieldData.renewal_date.date}" class="glm-form-text-input-medium">
+                {if $account.fieldFail.renewal_date}<p>{$account.fieldFail.renewal_date}</p>{/if}<br>
+            </div>
+        </div>
+    {/if}
+
+    {if $settings.allow_employees}
+
+        <div class="glm-billing-field">
+            <div class="glm-billing-label{if $account.fieldRequired.boss} glm-required{/if}">Boss</div>
+            <div class="glm-billing-input{if $account.fieldFail.boss} glm-form-bad-input{/if}" data-tabid="glm-name">
+                <input id="billing-boss" type="checkbox" name="boss"{if $account.fieldData.boss.value} checked{/if}>
+            {if $account.fieldFail.boss}<p>{$account.fieldFail.boss}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div id="glm-emp-list" class="glm-billing-field">
+            <div class="glm-billing-label">
+                <strong>Associated Members/Employees</strong>
+            </div>
+            <div class="glm-billing-input">
+                <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">
+                                <input type="hidden" name="employees[{$employee.employee}]" value="1">
+                                {$employee.employee_name}
+                                <span class="glm-billing-employee-del dashicons dashicons-trash glm-right"></span>
+                            </div>
+                        {/foreach}
+                    {/if}
+                </div>
+            </div>
+        </div>
+
+    {/if}
+
+    </fieldset>
+
+    <fieldset>
+        <legend>Billing Information</legend>
+
+        <div class="glm-billing-field">
+            <div class="glm-billing-label{if $account.fieldRequired.email} glm-required{/if}">Billing Email</div>
+            <div class="glm-billing-input{if $account.fieldFail.email} glm-form-bad-input{/if}" data-tabid="glm-email">
+                <input type="email" name="email" value="{$account.fieldData.email}" class="glm-form-text-input-medium"{if $account.fieldRequired.email} required{/if}>
+                {if $account.fieldFail.email}<p>{$account.fieldFail.email}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_company} glm-required{/if}">Billing Company</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_company} glm-form-bad-input{/if}" data-tabid="glm-billing-company">
+                <input type="text" name="billing_company" value="{$account.fieldData.billing_company}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_company} required{/if}>
+                {if $account.fieldFail.billing_company}<p>{$account.fieldFail.billing_company}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_position} glm-required{/if}">Billing Position</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_position} glm-form-bad-input{/if}" data-tabid="glm-billing-position">
+                <input type="text" name="billing_position" value="{$account.fieldData.billing_position}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_position} required{/if}>
+                {if $account.fieldFail.billing_position}<p>{$account.fieldFail.billing_position}</p>{/if}<br>
+            </div>
+        </div>
+
+
+        {if $settings.billing_contact_name_enabled}
+            <div class="glm-billing-field">
+                <div class="glm-billing-label{if $account.fieldRequired.billing_contact_name} glm-required{/if}">Billing Contact Name</div>
+                <div class="glm-billing-input{if $account.fieldFail.billing_contact_name} glm-form-bad-input{/if}" data-tabid="glm-billing-fname">
+                    <input type="text" name="billing_contact_name" value="{$account.fieldData.billing_contact_name}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_contact_name} required{/if}>
+                    {if $account.fieldFail.billing_contact_name}<p>{$account.fieldFail.billing_contact_name}</p>{/if}<br>
+                </div>
+            </div>
+        {else}
+            <div class="glm-billing-field glm-billing-left-half">
+                <div class="glm-billing-label{if $account.fieldRequired.billing_fname} glm-required{/if}">Billing First Name</div>
+                <div class="glm-billing-input{if $account.fieldFail.billing_fname} glm-form-bad-input{/if}" data-tabid="glm-billing-fname">
+                    <input type="text" name="billing_fname" value="{$account.fieldData.billing_fname}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_fname} required{/if}>
+                    {if $account.fieldFail.billing_fname}<p>{$account.fieldFail.billing_fname}</p>{/if}<br>
+                </div>
+            </div>
+
+            <div class="glm-billing-field glm-billing-right-half">
+                <div class="glm-billing-label{if $account.fieldRequired.billing_lname} glm-required{/if}">Billing Last Name</div>
+                <div class="glm-billing-input{if $account.fieldFail.billing_lname} glm-form-bad-input{/if}" data-tabid="glm-billing-lname">
+                    <input type="text" name="billing_lname" value="{$account.fieldData.billing_lname}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_lname} required{/if}>
+                    {if $account.fieldFail.billing_lname}<p>{$account.fieldFail.billing_lname}</p>{/if}<br>
+                </div>
+            </div>
+        {/if}
+
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_addr1} glm-required{/if}">Billing Address 1</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_addr1} glm-form-bad-input{/if}" data-tabid="glm-billing-addr1">
+                <input type="text" name="billing_addr1" value="{$account.fieldData.billing_addr1}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_addr1} required{/if}>
+                {if $account.fieldFail.billing_addr1}<p>{$account.fieldFail.billing_addr1}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_addr2} glm-required{/if}">Billing Address2</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_addr2} glm-form-bad-input{/if}" data-tabid="glm-billing-addr2">
+                <input type="text" name="billing_addr2" value="{$account.fieldData.billing_addr2}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_addr2} required{/if}>
+                {if $account.fieldFail.billing_addr2}<p>{$account.fieldFail.billing_addr2}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_city} glm-required{/if}">Billing City</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_city} glm-form-bad-input{/if}" data-tabid="glm-billing-city">
+                <input type="text" name="billing_city" value="{$account.fieldData.billing_city}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_city} required{/if}>
+                {if $account.fieldFail.billing_city}<p>{$account.fieldFail.billing_city}</p>{/if}<br>
+            </div>
+        </div>
+
+        {if $settings.billing_county_enabled}
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_county} glm-required{/if}">Billing County</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_county} glm-form-bad-input{/if}" data-tabid="glm-billing-county">
+                <select name="billing_county"{if $account.fieldRequired.billing_county} required{/if}>
+                    <option value=""></option>
+                    {foreach $account.fieldData.billing_county.list as $s}
+                        <option value="{$s.value}"{if $account.fieldData.billing_county.value == $s.value} selected="selected"{/if}>
+                            {$s.name}
+                        </option>
+                    {/foreach}
+                </select>
+                {if $account.fieldFail.billing_county}<p>{$account.fieldFail.billing_county}</p>{/if}<br>
+            </div>
+        </div>
+        {else}
+        <input type="hidden" name="billing_county" value="{$account.fieldData.billing_county.value}">
+        {/if}
+
+        <div class="glm-billing-field glm-billing-{if $settings.billing_county_enabled}left{else}right{/if}-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_state} glm-required{/if}">Billing State</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_state} glm-form-bad-input{/if}" data-tabid="glm-billing-state">
+                <select name="billing_state"{if $account.fieldRequired.billing_state} required{/if}>
+                    <option value=""></option>
+                    {foreach $account.fieldData.billing_state.list as $s}
+                        <option value="{$s.value}"{if $account.fieldData.billing_state.value == $s.value} selected="selected"{/if}>
+                            {$s.name}
+                        </option>
+                    {/foreach}
+                </select>
+                {if $account.fieldFail.billing_state}<p>{$account.fieldFail.billing_state}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-{if $settings.billing_county_enabled}right{else}left{/if}-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_zip} glm-required{/if}">Billing Zip</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_zip} glm-form-bad-input{/if}" data-tabid="glm-billing-zip">
+                <input type="text" name="billing_zip" value="{$account.fieldData.billing_zip}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_zip} required{/if}>
+                {if $account.fieldFail.billing_zip}<p>{$account.fieldFail.billing_zip}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-{if $settings.billing_county_enabled}left{else}right{/if}-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_country} glm-required{/if}">Billing Country</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_country} glm-form-bad-input{/if}" data-tabid="glm-billing-country">
+                <input type="text" name="billing_country" value="{$account.fieldData.billing_country}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_country} required{/if}>
+            {if $account.fieldFail.billing_country}<p>{$account.fieldFail.billing_country}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-{if $settings.billing_county_enabled}right{else}left{/if}-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_phone} glm-required{/if}">Billing Phone</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_phone} glm-form-bad-input{/if}" data-tabid="glm-billing-phone">
+                <input type="text" name="billing_phone" value="{$account.fieldData.billing_phone}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_phone} required{/if}>
+                {if $account.fieldFail.billing_phone}<p>{$account.fieldFail.billing_phone}</p>{/if}<br>
+            </div>
+        </div>
+
+        <div class="glm-billing-field glm-billing-{if $settings.billing_county_enabled}left{else}right{/if}-half">
+            <div class="glm-billing-label{if $account.fieldRequired.billing_fax} glm-required{/if}">Billing Fax</div>
+            <div class="glm-billing-input{if $account.fieldFail.billing_fax} glm-form-bad-input{/if}" data-tabid="glm-billing-fax">
+                <input type="text" name="billing_fax" value="{$account.fieldData.billing_fax}" class="glm-form-text-input-medium"{if $account.fieldRequired.billing_fax} required{/if}>
+                {if $account.fieldFail.billing_fax}<p>{$account.fieldFail.billing_fax}</p>{/if}<br>
+            </div>
+        </div>
+
+        </fieldset>
+
+        <input class="button button-primary" type="submit" value="{if $haveAccount}Save{else}Create{/if} Account">
+
+    </form>
+</div>
+
+<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} ];
+    var isBoss = {if $account.fieldData.boss.value}true{else}false{/if};
+
+    // Setup autocomplete for both inputs
+    $('#glm-billing-member-list').autocomplete({
+        source: accounts,
+        select: function( event, 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-billing-employee">';
+        html += '<input type="hidden" name="employees[' + employee.id + ']" value="1">';
+        html += employee.label;
+        html += '<span class="glm-billing-employee-del dashicons dashicons-trash glm-right"></span>';
+        html += '</div>';
+        $('#glm-billing-employees').append(html);
+    }
+
+    // If the boss flag in unchecked then hide the employees box and
+    // disable the employees inputs.
+    $('#billing-boss').change(function(){
+        if ( $(this).is(':checked') ) {
+            isBoss = true;
+        } else {
+            isBoss = false;
+        }
+        setupEmployeesPart();
+    });
+    function setupEmployeesPart() {
+        if ( isBoss ) {
+            $('#glm-emp-list').show();
+            $('input[name^="employees"]').each(function(){
+                $(this).removeAttr('disabled');
+            });
+        } else {
+            $('#glm-emp-list').hide();
+            $('input[name^="employees"]').each(function(){
+                $(this).prop('disabled', true);
+            });
+        }
+    }
+    setupEmployeesPart();
+
+
+    $('#glm-billing-employees').on('click', '.glm-billing-employee-del', function(){
+        //console.log( 'clicked glm-billing-employee-del on ' );
+        $(this).parent('.glm-billing-employee').remove();
+    });
+
+    // Setup the date picker for the input field with the name anniversary_date
+    $('input[name="anniversary_date"]').datepicker({
+        dateFormat: 'mm/dd/yy'
+    });
+    // Setup the date picker for the input field with the name renewal_date
+    $('input[name="renewal_date"]').datepicker({
+        dateFormat: 'mm/dd/yy'
+    });
+
+    // Flash certain elements for a short time after display
+    $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
+
+});
+</script>
+
+{include file='admin/footer.html'}
index 991dca0..8bbee6b 100644 (file)
@@ -1,3 +1,4 @@
+{if !$adminAjaxPassthru}
 <style>
 
 @media only screen and (max-width: 760px), (min-device-width: 768px) and (max-device-width: 1024px)  {
 }
 </style>
 
-{if $fromMemberMenu}
-    {include file='admin/member/header.html'}
-    {include file='admin/billing/memberBillingSubHeader.html'}
+    {if $fromMemberMenu}
+        {include file='admin/member/header.html'}
+        {include file='admin/billing/memberBillingSubHeader.html'}
+    {else}
+        {include file='admin/billing/header.html'}
+    {/if}
 {else}
-    {include file='admin/billing/header.html'}
+    <h3>Statements</h3>
+    <button class="close-button" data-close aria-label="Close" type="button">
+        <span aria-hidden="true">&times;</span>
+    </button>
 {/if}
 
 <div id="glm-admin-billing-wrapper">
                         <td class="glm-shrink">${$transaction.transaction_data.balance}</td>
                         <td class="glm-shrink">
                         {if isset( $billing_settings.uptravel_payment_form ) && $billing_settings.uptravel_payment_form}
-                            {if $transaction.transaction_data.paid}&nbsp;{else}<a href="{$thisUrl}?page={$thisPage}&glm_action=billing&option=makepaymentadjustment&member={$memberID}">Make A Payment</a>{/if}
+                            {if $transaction.transaction_data.paid}&nbsp;{else}<a class="makeAPayment" data-member="{$memberID}" href="{$thisUrl}?page={$thisPage}&glm_action=billing&option=makepaymentadjustment&member={$memberID}">Make A Payment</a>{/if}
                         {else}
-                            {if $transaction.transaction_data.paid}&nbsp;{else}<a href="{$thisUrl}?page={$thisPage}&glm_action=billing&option=makepayment&member={$memberID}">Pay Invoice</a>{/if}
+                            {if $transaction.transaction_data.paid}&nbsp;{else}<a class="payInvoice" data-member="{$memberID}" href="{$thisUrl}?page={$thisPage}&glm_action=billing&option=makepayment&member={$memberID}">Pay Invoice</a>{/if}
                         {/if}
                         </td>
                         <td class="glm-shrink">
                             {if isset( $settings.invoice_pdf_enabled ) && $settings.invoice_pdf_enabled}
-                                <a href="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=createPDFInvoice&id={$transaction.type_id}" target="_blank">Print</a>
+                                <a class="print" data-member="{$memberID}" href="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=createPDFInvoice&id={$transaction.type_id}" target="_blank">Print</a>
                             {else}
-                                <a href="{$thisUrl}?page={$thisPage}&glm_action=billing&option=view&member={$memberID}&id={$transaction.type_id}">View</a>
+                                <a class="view" data-member="{$memberID}" href="{$thisUrl}?page={$thisPage}&glm_action=billing&option=view&member={$memberID}&id={$transaction.type_id}">View</a>
                             {/if}
                         </td>
                     </tr>
     </table>
 
 </div>
+{if !$adminAjaxPassthru}
 {include file='admin/footer.html'}
+{/if}