Save WIP for billing revamp
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 11 Jul 2019 20:50:27 +0000 (16:50 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 11 Jul 2019 20:50:27 +0000 (16:50 -0400)
Working on foundation 6 revamp for:
Settings
Invoice Types
Notifications
Reporting
Invoicing

21 files changed:
models/admin/billing/invoiceTypes.php [new file with mode: 0644]
models/admin/billing/notifications.php [new file with mode: 0644]
setup/validActions.php
views/admin/billing/accounts.html
views/admin/billing/editInvoice.html
views/admin/billing/editNotificationType.html [new file with mode: 0644]
views/admin/billing/editPayment.html
views/admin/billing/exportReportModal.html
views/admin/billing/header.html
views/admin/billing/index.html
views/admin/billing/invoiceStore.html
views/admin/billing/invoiceTypes.html [new file with mode: 0644]
views/admin/billing/invoices.html
views/admin/billing/invoicing.html
views/admin/billing/invoicingSubHeader.html
views/admin/billing/notificationSubHeader.html [new file with mode: 0644]
views/admin/billing/notifications.html [new file with mode: 0644]
views/admin/billing/payments.html
views/admin/billing/reports.html
views/admin/billing/reportsSubHeader.html
views/admin/billing/settings.html

diff --git a/models/admin/billing/invoiceTypes.php b/models/admin/billing/invoiceTypes.php
new file mode 100644 (file)
index 0000000..b68c5d9
--- /dev/null
@@ -0,0 +1,210 @@
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * Admin InvoiceTypes List
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package  glmMembersDatabase
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @version  0.1
+ */
+
+// Load Member Types data abstract
+require_once GLM_MEMBERS_BILLING_PLUGIN_CLASS_PATH.'/data/dataInvoiceTypes.php';
+require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberTypes.php';
+
+/*
+ * This class performs the work for the default action of the "Members" menu
+ * option, which is to display the members dashboard.
+ *
+ */
+class GlmMembersAdmin_billing_invoiceTypes extends GlmDataInvoiceTypes
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+
+    /*
+     * Constructor
+     *
+     * This contructor sets up this model. At this time that only includes
+     * storing away the WordPress data object.
+     *
+     * @return object Class object
+     *
+     */
+    public function __construct ($wpdb, $config)
+    {
+
+        // Save WordPress Database object
+        $this->wpdb = $wpdb;
+
+        // Save plugin configuration object
+        $this->config = $config;
+
+        // Run constructor for members data class
+        parent::__construct(false, false);
+
+    }
+
+    /*
+     * Perform Model Action
+     *
+     * This method does the work for this model and returns any resulting data
+     *
+     * @return array Status and data array
+     *
+     * 'status'
+     *
+     * True if successfull and false if there was a fatal failure.
+     *
+     * 'menuItemRedirect'
+     *
+     * If not false, provides a menu item the controller should
+     * execute after this one. Normally if this is used, there would also be a
+     * modelRedirect value supplied as well.
+     *
+     * 'modelRedirect'
+     *
+     * If not false, provides an action the controller should execute after
+     * this one.
+     *
+     * 'view'
+     *
+     * A suggested view name that the contoller should use instead of the
+     * default view for this model or false to indicate that the default view
+     * should be used.
+     *
+     * 'data'
+     *
+     * Data that the model is returning for use in merging with the view to
+     * produce output.
+     *
+     */
+    public function modelAction ($actionData = false)
+    {
+
+        $success          = true;
+        $haveInvoiceTypes = false;
+        $invoiceTypes     = false;
+        $error            = false;
+        $enable_members   = $this->config['settings']['enable_members'];
+        $memberTypes      = false;
+
+        // Enqueue GLMA Foundation
+        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' );
+
+        // Check for region id
+        $id = 0;
+        if (isset($_REQUEST['id'])) {
+            $id = $_REQUEST['id']-0;
+        }
+
+        // echo '<pre>$_REQUEST: ' . print_r( $_REQUEST, true ) . '</pre>';
+
+        // If there's an action option
+        if (isset($_REQUEST['option'])) {
+
+            switch($_REQUEST['option']) {
+
+                case 'addNew':
+                    $this->insertEntry();
+                    break;
+
+                case 'update':
+                    if ($id > 0) {
+                        $this->updateEntry($id);
+                    }
+                    break;
+
+                case 'delete':
+                    if ($id > 0) {
+                        $this->deleteEntry($id, true);
+                    }
+                    break;
+
+            }
+
+        }
+
+        // Get a current list of members
+        $invoiceTypes = $this->getList();
+
+        // echo '<pre>$invoiceTypes: ' . print_r( $invoiceTypes, true ) . '</pre>';
+
+        // If we have list entries - even if it's an empty list
+        $success          = true;
+        $haveInvoiceTypes = false;
+        if ($invoiceTypes !== false) {
+
+            $success = true;
+
+            // If we have any entries
+            if (count($invoiceTypes) > 0) {
+                $haveInvoiceTypes = true;
+            }
+        }
+
+        // Sort results by higherarchy (Parent/Child and Alpha)
+        $invoiceTypes = $this->sortParentChild($invoiceTypes);
+        // echo '<pre>$invoiceTypes: ' . print_r( $invoiceTypes, true ) . '</pre>';
+
+        // Get list of Member Types
+        $MemberType = new GlmDataMemberTypes( $this->wpdb, $this->config );
+        $memberTypes = $MemberType->getList();
+        // echo '<pre>$memberTypes: ' . print_r( $memberTypes, true ) . '</pre>';
+
+
+        // If we had a fatal error, redirect to the error page
+        if ($error) {
+            return array(
+                'status'           => $success,
+                'menuItemRedirect' => 'error',
+                'modelRedirect'    => 'index',
+                'view'             => 'admin/error/index.html',
+                'data'             => false
+            );
+        }
+
+
+
+        // Compile template data
+        $templateData = array(
+            'action'           => $_REQUEST['glm_action'],
+            'enable_members'   => $enable_members,
+            'haveInvoiceTypes' => $haveInvoiceTypes,
+            'invoiceTypes'     => $invoiceTypes,
+            'recurrenceTypes'  => $this->config['recurrence'],
+            'memberTypes'      => $memberTypes,
+        );
+
+        // Return status, suggested view, and data to controller
+        return array(
+            'status'           => $success,
+            'menuItemRedirect' => false,
+            'modelRedirect'    => false,
+            'view'             => 'admin/billing/invoiceTypes.html',
+            'data'             => $templateData
+        );
+
+    }
+
+
+}
diff --git a/models/admin/billing/notifications.php b/models/admin/billing/notifications.php
new file mode 100644 (file)
index 0000000..394fbb4
--- /dev/null
@@ -0,0 +1,318 @@
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * Admin NotificationTypes List
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package  glmMembersDatabase
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @version  0.1
+ */
+
+// Load Member Types data abstract
+require_once GLM_MEMBERS_BILLING_PLUGIN_CLASS_PATH.'/data/dataNotificationTypes.php';
+
+/*
+ * This class performs the work for the default action of the "Members" menu
+ * option, which is to display the members dashboard.
+ *
+ */
+class GlmMembersAdmin_billing_notifications extends GlmDataNotificationTypes
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+
+    /*
+     * Constructor
+     *
+     * This contructor sets up this model. At this time that only includes
+     * storing away the WordPress data object.
+     *
+     * @return object Class object
+     *
+     */
+    public function __construct ($wpdb, $config)
+    {
+
+        // Save WordPress Database object
+        $this->wpdb = $wpdb;
+
+        // Save plugin configuration object
+        $this->config = $config;
+
+        // Run constructor for members data class
+        parent::__construct(false, false);
+
+    }
+
+    /*
+     * Perform Model Action
+     *
+     * This method does the work for this model and returns any resulting data
+     *
+     * @return array Status and data array
+     *
+     * 'status'
+     *
+     * True if successfull and false if there was a fatal failure.
+     *
+     * 'menuItemRedirect'
+     *
+     * If not false, provides a menu item the controller should
+     * execute after this one. Normally if this is used, there would also be a
+     * modelRedirect value supplied as well.
+     *
+     * 'modelRedirect'
+     *
+     * If not false, provides an action the controller should execute after
+     * this one.
+     *
+     * 'view'
+     *
+     * A suggested view name that the contoller should use instead of the
+     * default view for this model or false to indicate that the default view
+     * should be used.
+     *
+     * 'data'
+     *
+     * Data that the model is returning for use in merging with the view to
+     * produce output.
+     *
+     */
+    public function modelAction ($actionData = false)
+    {
+
+        $id                      = 0;
+        $option                  = 'list';
+        $view                    = 'notifications';
+        $success                 = true;
+        $notificationUpdated     = false;
+        $notificationUpdateError = false;
+        $notificationAdded       = false;
+        $notificationInsertError = false;
+        $haveNotificationTypes   = false;
+        $notificationTypes       = false;
+        $notification            = false;
+        $error                   = false;
+        $enable_members          = $this->config['settings']['enable_members'];
+
+        // Enqueue GLMA Foundation
+        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' );
+
+        // Check for region id
+        $id = 0;
+        if (isset($_REQUEST['id'])) {
+            $id = $_REQUEST['id']-0;
+        }
+
+        // need to setup the fields for send_by_(date/action)
+        if ( isset( $_REQUEST['send_by'] ) ) {
+            switch ( $_REQUEST['send_by'] ) {
+            case 'date':
+                $_REQUEST['send_by_date']   = true;
+                $_REQUEST['send_by_action'] = false;
+                break;
+            case 'action':
+                $_REQUEST['send_by_action'] = true;
+                $_REQUEST['send_by_date']   = false;
+                break;
+            default:
+                $_REQUEST['send_by_action'] = false;
+                $_REQUEST['send_by_date']   = false;
+                break;
+            }
+        }
+
+        // Get any provided option
+        if (isset($_REQUEST['option'])) {
+            $option = $_REQUEST['option'];
+        }
+
+        switch( $option ) {
+
+        case 'add':
+            /**
+             * add:
+             *
+             * This calls the dataAbstract newEntry method and sets up the
+             * edit for for creating a new notification_type.
+             */
+            $notification = $this->newEntry();
+            $view = 'editNotificationType';
+            break;
+
+        case 'insert':
+            /**
+             * insert:
+             *
+             * Calls the insertEntry method that stores the actual data for the data abstract class.
+             */
+            $view = 'editNotificationType';
+            $notification = $this->insertEntry();
+            if ( $notification['status'] ) {
+                $notificationAdded = true;
+                $id = $notification['fieldData']['id'];
+                $notification = $this->editEntry( $id );
+            } else {
+                $notificationInsertError = true;
+            }
+            break;
+
+        case 'edit':
+            /**
+             * edit:
+             *
+             * Calls the editEntry method to setup the edit form for this record by id.
+             */
+            $notification = $this->editEntry( $id );
+            $view = 'editNotificationType';
+            break;
+
+        case 'update':
+            /**
+             * update:
+             *
+             * Calls the updateEntry method for the data abstract to save the edit data.
+             */
+            if ($id > 0) {
+                $notification = $this->updateEntry($id);
+                if ( $notification['status'] ) {
+                    $notificationUpdated = true;
+                    $notification = $this->editEntry( $id );
+                } else {
+                    $notificationUpdateError = true;
+                }
+                $view = 'editNotificationType';
+            }
+
+            break;
+
+        case 'delete':
+            /**
+             * delete:
+             *
+             * Calls the delete entry method of the dataabstract class.
+             * To delete the given entry by id.
+             */
+            if ($id > 0) {
+                $this->deleteEntry($id, true);
+            }
+        case 'list':
+        default:
+            // Get a current list of members
+            $notificationTypes = $this->getList();
+            break;
+        }
+
+
+        // If we have list entries - even if it's an empty list
+        $success = true;
+        $haveNotificationTypes = false;
+        if ($notificationTypes !== false) {
+
+            $success = true;
+
+            // If we have any entries
+            if (count($notificationTypes) > 0) {
+                $haveNotificationTypes = true;
+            }
+        }
+
+        // If we had a fatal error, redirect to the error page
+        if ($error) {
+            return array(
+                'status'           => $success,
+                'menuItemRedirect' => 'error',
+                'modelRedirect'    => 'index',
+                'view'             => 'admin/error/index.html',
+                'data'             => false
+            );
+        }
+        $mergeTagsBilling = array(
+            'Name of Account', '{$account.name}',
+            'Billing First Name', '{$account.fname}',
+            'Billing Last Name', '{$account.lname}',
+            'Billing Address Line 1', '{$account.addr1}',
+            'Billing Address Line 2', '{$account.addr2}',
+            'Billing City', '{$account.city}',
+            'Billing State', '{$account.state}',
+            'Billing Zip', '{$account.zip}',
+            'Billing Email', '{$account.email}',
+            'Billing Phone', '{$account.phone}',
+            'Billing Company', '{$account.company}',
+            'Billing Position', '{$account.position}',
+            'Renewal Date', '{$account.renewal_date}',
+            'Current Due Amount', '{$account.current_due}',
+        );
+        $mergeTagsInvoice = array(
+            'Invoice Amount', '{$data.amount}',
+        );
+        $mergeTagsPayment = array(
+            'Payment Amount', '{$data.payment}',
+        );
+        $mergeTagsContact = array(
+            'Contact First Name', '{$contact.fname}',
+            'Contact Last Name', '{$contact.lname}',
+            'Contact Address Line 1', '{$contact.addr1}',
+            'Contact Address Line 2', '{$contact.addr2}',
+            'Contact City', '{$contact.city}',
+            'Contact State', '{$contact.state}',
+            'Contact Zip', '{$contact.zip}',
+            'Contact Company', '{$contact.company}',
+            'Contact Position', '{$contact.position}',
+            'Contact Email', '{$contact.email}',
+            'Contact Office Phone', '{$contact.office_phone}',
+            'Contact Mobile Phone', '{$contact.mobile_phone}',
+        );
+        // Compile template data
+        $templateData = array(
+            'notification_id'         => $id,
+            'action'                  => $_REQUEST['glm_action'],
+            'enable_members'          => $enable_members,
+            'haveNotificationTypes'   => $haveNotificationTypes,
+            'notificationTypes'       => $notificationTypes,
+            'notification'            => $notification,
+            'notificationUpdated'     => $notificationUpdated,
+            'notificationUpdateError' => $notificationUpdateError,
+            'notificationAdded'       => $notificationAdded,
+            'notificationInsertError' => $notificationInsertError,
+            'send_date_period'        => $this->config['send_date_period'],
+            'send_date_when'          => $this->config['send_date_when'],
+            'send_action'             => $this->config['send_action'],
+            'mergeTagsBilling'        => $mergeTagsBilling,
+            'mergeTagsInvoice'        => $mergeTagsInvoice,
+            'mergeTagsPayment'        => $mergeTagsPayment,
+            'mergeTagsContact'        => $mergeTagsContact,
+        );
+
+        // Return status, suggested view, and data to controller
+        return array(
+            'status'           => $success,
+            'menuItemRedirect' => false,
+            'modelRedirect'    => false,
+            'view'             => 'admin/billing/' . $view . '.html',
+            'data'             => $templateData
+        );
+
+    }
+
+
+}
index c46b080..9bc8f6f 100644 (file)
@@ -88,16 +88,18 @@ $glmMembersBillingAddOnValidActions = array(
             'notificationTypes' => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
         ),
         'billing' => array(
-            'index'     => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'list'      => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'invoices'  => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'payments'  => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'accounts'  => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'invoicing' => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'reports'   => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'logs'      => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'contact'   => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
-            'settings'  => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'index'         => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'list'          => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'invoices'      => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'payments'      => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'accounts'      => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'invoicing'     => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'reports'       => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'logs'          => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'contact'       => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'settings'      => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'invoiceTypes'  => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
+            'notifications' => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
         ),
         'member' => array(
             'billing' => GLM_MEMBERS_BILLING_PLUGIN_SLUG,
index c5f12b0..75021ff 100644 (file)
@@ -1,8 +1,8 @@
 {include file='admin/billing/header.html'}
 
-<div class="callout large">
+<div class="callout">
 
-    <h2 class="subheader">Accounts</h2>
+    <h3 class="subheader">Accounts</h3>
 
     <div id="exportAccountsButton" class="button secondary">Accounts Export</div>
 
@@ -36,7 +36,7 @@
                 {foreach $accounts as $t}
                     <tr class="glm-account-row{if $t@iteration is div by 2} alternate{/if}" data-id="{$t.id}">
                         <td> {$t.id} </td>
-                        <td> <a class="account-link" id="account-ref-dest-{$t.id}" href="{$adminUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$t.ref_dest}"><b>{$t.ref_name}</b></a> </td>
+                        <td> <a class="account-link" id="account-ref-dest-{$t.id}" href="{$adminUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$t.ref_dest}" target="_blank"><b>{$t.ref_name}</b></a> </td>
                         {if $settings.allow_employees}
                             <td> {if $t.boss.value}Yes{/if} </td>
                         {/if}
@@ -47,7 +47,7 @@
                     <tr id="account-container-{$t.id}" class="hide-for-large glm-account-links {if $t@iteration is div by 2} alternate{/if}">
                         <td colspan="{if $settings.allow_employees}6{else}5{/if}">
                             <span class="account-dashboard-link">
-                                <a class="account-member-dashboard" data-member="{$t.ref_dest}" href="{$adminUrl}?page=glm-members-admin-menu-member&member={$t.ref_dest}">Member Dashboard</a> |
+                                <a class="account-member-dashboard" data-member="{$t.ref_dest}" href="{$adminUrl}?page=glm-members-admin-menu-member&member={$t.ref_dest}" target="_blank">Member Dashboard</a> |
                             </span>
                             <span class="account-dashboard-link">
                                 <a class="account-member-statements" data-member="{$t.ref_dest}" href="{$adminUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$t.ref_dest}">View Statements</a> |
index f730df3..1b33ba0 100644 (file)
@@ -1,6 +1,6 @@
 {include file='admin/billing/header.html'}
 
-<div class="callout large">
+<div class="callout">
 
     {if $invoiceUpdated}<span class="glm-notice glm-flash-updated">Invoice Updated</span>{/if}
     {if $invoiceUpdateError}<span class="glm-notice glm-flash-updated">Invoice Update Error</span>{/if}
diff --git a/views/admin/billing/editNotificationType.html b/views/admin/billing/editNotificationType.html
new file mode 100644 (file)
index 0000000..e516eea
--- /dev/null
@@ -0,0 +1,261 @@
+<style>
+.merge-tags table caption {
+    font-weight: bold;
+}
+</style>
+
+{include file='admin/billing/header.html'}
+
+<div class="callout">
+
+    {* Set $data to $notification *}
+    {* This is for using the UI elements *}
+    {$data = $notification}
+
+    {* Notification Updated *}
+    {if $notificationUpdated}
+        <div class="success callout" data-closable>
+            <button class="close-button" aria-label="Close alert" type="button" data-close>
+                <span aria-hidden="true">&times;</span>
+            </button>
+            <p><i class="fi-alert"></i> Notification Updated</p>
+        </div>
+    {/if}
+    {* Notification Added *}
+    {if $notificationAdded}
+        <div class="success callout" data-closable>
+            <button class="close-button" aria-label="Close alert" type="button" data-close>
+                <span aria-hidden="true">&times;</span>
+            </button>
+            <p><i class="fi-alert"></i> Notification Added</p>
+        </div>
+    {/if}
+    {* Notification Update Error *}
+    {if $notificationUpdateError}
+        <div class="alert callout" data-closable>
+            <button class="close-button" aria-label="Close alert" type="button" data-close>
+                <span aria-hidden="true">&times;</span>
+            </button>
+            <p><i class="fi-alert"></i> Notification Update Error</p>
+        </div>
+    {/if}
+    {* Notification Insert Error *}
+    {if $notificationInsertError}
+        <div class="alert callout" data-closable>
+            <button class="close-button" aria-label="Close alert" type="button" data-close>
+                <span aria-hidden="true">&times;</span>
+            </button>
+            <p><i class="fi-alert"></i> Notification Insert Error</p>
+        </div>
+    {/if}
+
+    <form action="{$thisUrl}?page={$thisPage}&glm_action=notifications" method="post" data-abide novalidate>
+        {if $notification_id}
+            <input type="hidden" name="option" value="update">
+            <input type="hidden" name="id" value="{$notification_id}">
+        {else}
+            <input type="hidden" name="option" value="insert">
+        {/if}
+
+        <fieldset class="fieldset">
+            <legend>Notification</legend>
+
+            <div class="grid-container">
+
+                {* Name *}
+                {$ui = [
+                    'value'       => $data.fieldData.name,
+                    'field'       => 'name',
+                    'label'       => 'Name',
+                    'required'    => $data.fieldRequired.name,
+                    'errorText'   => 'Name is Required',
+                    'dataError'   => $data.fieldFail.name
+                ]}
+                {include file='ui/f6/text.html'}
+
+                <div class="grid-x grid-margin-x">
+                    <div class="cell small-12">
+                        <span class="label">Send Notification based on</span>
+                    </div>
+                </div>
+
+                <div class="grid-x grid-margin-x">
+                    <div class="cell small-12">
+                        <div class="grid-x grid-margin-x">
+                            <div class="cell small-12 medium-3">
+                                <label>Renewal Date</label>
+                                <div class="switch">
+                                    <input class="switch-input" type="radio" id="send_by1" name="send_by" value="date" required{if $notification.fieldData.send_by_date.value} checked{/if}>
+                                    <label class="switch-paddle" for="send_by1"><span class="show-for-sr">Date</span></label>
+                                </div>
+                            </div>
+                            <div class="cell small-12 medium-3">
+                                {* Number *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.send_date_number,
+                                    'field'       => 'send_date_number',
+                                    'label'       => 'Number',
+                                    'pattern'     => 'number',
+                                    'required'    => $data.fieldRequired.send_date_number,
+                                    'errorText'   => 'Number is Required to be numeric',
+                                    'dataError'   => $data.fieldFail.send_date_number
+                                ]}
+                                {include file='ui/f6/text.html'}
+                            </div>
+                            <div class="cell small-12 medium-2">
+                                {* Period *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.send_date_period,
+                                    'field'     => 'send_date_period',
+                                    'label'     => 'Period',
+                                    'list'      => $send_date_period,
+                                    'l_blank'   => false,
+                                    'required'  => $data.fieldRequired.send_date_period,
+                                    'errorText' => 'Period is Required',
+                                    'dataError' => $data.fieldFail.send_date_period
+                                ]}
+                                {include file='ui/f6/select.html'}
+                            </div>
+                            <div class="cell small-12 medium-2">
+                                {* When *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.send_date_when,
+                                    'field'     => 'send_date_when',
+                                    'label'     => 'When',
+                                    'list'      => $send_date_when,
+                                    'l_blank'   => false,
+                                    'required'  => $data.fieldRequired.send_date_when,
+                                    'errorText' => 'When is Required',
+                                    'dataError' => $data.fieldFail.send_date_when
+                                ]}
+                                {include file='ui/f6/select.html'}
+                            </div>
+                        </div>
+                    </div>
+                    <div class="cell small-12">
+                        <div class="grid-x grid-margin-x">
+                            <div class="cell small-12 medium-3">
+                                <label>Immediate Action</label>
+                                <div class="switch">
+                                    <input class="switch-input" type="radio" id="send_by2" name="send_by" value="action" required{if $notification.fieldData.send_by_action.value} checked{/if}>
+                                    <label class="switch-paddle" for="send_by2"><span class="show-for-sr">Action</span></label>
+                                </div>
+                            </div>
+                            <div class="cell small-12 medium-4">
+
+                                {* Send Action *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.send_action,
+                                    'field'     => 'send_action',
+                                    'label'     => 'Send Action',
+                                    'list'      => $send_action,
+                                    'l_blank'   => false,
+                                    'required'  => $data.fieldRequired.send_action,
+                                    'errorText' => 'Send Action is Required',
+                                    'dataError' => $data.fieldFail.send_action
+                                ]}
+                                {include file='ui/f6/select.html'}
+
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                {* To Email *}
+                {$ui = [
+                    'value'       => $data.fieldData.to_email,
+                    'field'       => 'to_email',
+                    'label'       => 'To Email',
+                    'pattern'     => 'email',
+                    'required'    => $data.fieldRequired.to_email,
+                    'errorText'   => 'To Email is Required to be valid email',
+                    'helpText'    => '<span class="label">Leave this field blank to send notice to proper {$account.email} address</span>',
+                    'dataError'   => $data.fieldFail.to_email
+                ]}
+                {include file='ui/f6/text.html'}
+
+                {* Subject *}
+                {$ui = [
+                    'value'       => $data.fieldData.subject,
+                    'field'       => 'subject',
+                    'label'       => 'Subject',
+                    'required'    => $data.fieldRequired.subject,
+                    'errorText'   => 'Subject is Required',
+                    'dataError'   => $data.fieldFail.subject
+                ]}
+                {include file='ui/f6/text.html'}
+
+                {* From *}
+                {$ui = [
+                    'value'       => $data.fieldData.from_header,
+                    'field'       => 'from_header',
+                    'label'       => 'From',
+                    'pattern'     => 'email',
+                    'required'    => $data.fieldRequired.from_header,
+                    'errorText'   => 'From is Required to be valid email',
+                    'dataError'   => $data.fieldFail.from_header
+                ]}
+                {include file='ui/f6/text.html'}
+
+                {* Reply To *}
+                {$ui = [
+                    'value'       => $data.fieldData.replyto,
+                    'field'       => 'replyto',
+                    'label'       => 'Reply To',
+                    'required'    => $data.fieldRequired.replyto,
+                    'errorText'   => 'Reply To is Required',
+                    'dataError'   => $data.fieldFail.replyto
+                ]}
+                {include file='ui/f6/text.html'}
+
+                {* Message *}
+                {$ui = [
+                    'value'     => $data.fieldData.message,
+                    'field'     => 'message',
+                    'label'     => 'Message',
+                    'height'    => '250',
+                    'required'  => $data.fieldRequired.message,
+                    'errortext' => 'Message is Required',
+                    'dataError' => $data.fieldFail.message
+                ]}
+                {include file='ui/f6/editor.html'}
+
+                <div class="grid-x grid-margin-x">
+                    <div class="cell small-12 medium-7">
+
+                        <h4>Merge Tags</h4>
+                        <p>The "merge tags" listed below may be used in the E-Mail message content
+                        to include certain information about the Account or Invoice. Be sure to
+                        include the "{literal}{{/literal}" and "{literal}}{/literal}" and "$" characters exactly as show.</p>
+
+                        {html_table loop=$mergeTagsBilling cols=2 table_attr='border=0 width=400' caption='Billing Examples'}
+
+                        {html_table loop=$mergeTagsContact cols=2 table_attr='border=0 width=400' caption='Contact Examples'}
+
+                        {html_table loop=$mergeTagsInvoice cols=2 table_attr='border=0 width=400' caption='Only available using Immediate Action - Create Invoice'}
+
+                        {html_table loop=$mergeTagsPayment cols=2 table_attr='border=0 width=400' caption='Only available using Immediate Action - Received Payment'}
+
+                    </div>
+                </div>
+
+                <input class="button primary" type="submit" value="{if $notification_id}Update{else}Add{/if} Notification Type">
+
+            </div>
+
+        </fieldset>
+
+    </form>
+
+</div>
+
+<script>
+jQuery(document).ready(function($){
+
+    // 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 abf589d..ce94881 100644 (file)
@@ -1,6 +1,6 @@
 {include file='admin/billing/header.html'}
 
-<div class="callout large">
+<div class="callout">
 
     {if $paymentUpdated}<span class="glm-notice glm-flash-updated">Payment Updated</span>{/if}
     {if $paymentUpdateError}<span class="glm-notice glm-flash-updated">Payment Update Error</span>{/if}
index adb5499..0d83c6e 100644 (file)
@@ -2,7 +2,7 @@
     <form id="exportForm" action="{$ajaxUrl}" method="post" enctype="multipart/form-data">
         <input type="hidden" name="action" value="glm_members_admin_ajax">
         <input type="hidden" name="glm_action" value="reportsListExport">
-        <table class="glm-admin-table unsriped">
+        <table class="glm-admin-table unstriped">
             <tr>
                 <th>Payment Types</th>
                 <td>
index e71c16e..9a8d889 100644 (file)
         <li class="tabs-title{if $thisAction==settings} is-active{/if}">
             <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=settings">Settings</a>
         </li>
+        <li class="tabs-title{if $thisAction==invoiceTypes} is-active{/if}">
+            <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoiceTypes">Invoice Types</a>
+        </li>
+        <li class="tabs-title{if $thisAction==notifications} is-active{/if}">
+            <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=notifications">Notifications</a>
+        </li>
     </ul>
 
     <script>
     jQuery(document).ready(function($){
         $(document).foundation();
-        $('.glmSettings').on('click', function(e){
-            e.preventDefault();
-            var $modal = $('#glmSettings');
 
-            $.ajax({
-                url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=ajaxBillingSettings',
-                cache: false,
-                beforeSend: startAjax,
-                complete: completeAjax,
-            })
-            .done(function(resp){
-                $modal.html(resp).foundation('open').trigger('resizeme.zp.reveal');
-            });
-            return false;
-        });
-        function startAjax(){
-            $('#glmLoading').show();
-        }
-        function completeAjax(){
-            $('#glmLoading').hide();
-        };
     });
     </script>
 
-    {* Reveal for Settings *}
-    <div id="glmSettings" class="large reveal" data-reveal>
-    </div>
-    {* Ajax Loading Graphic *}
-    <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>
-
     <div class="">
index 08512de..a5b26f3 100644 (file)
@@ -5,9 +5,10 @@
     {include file='admin/billing/header.html'}
 {/if}
 
-<div class="callout large">
+<div class="callout">
+
+    <h3 class="subheader">Accounts</h3>
 
-    <h2 class="subheader">Accounts</h2>
     <div class="button-group">
         <div id="exportAccountsButton" class="button secondary">Accounts Export</div>
         <a class="button primary" href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoices&option=add">Create Invoice</a>
@@ -33,7 +34,7 @@
                 {if $list.number > 0}
                     {foreach $list.data.list as $t}
                         <tr class="glm-account-row{if $t@iteration is div by 2} alternate{/if}" data-id="{$t.id}">
-                            <td> <a class="account-link" id="account-ref-dest-{$t.id}" href="{$adminUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$t.ref_dest}">{$t.ref_name}</a> </td>
+                            <td> <a class="account-link" id="account-ref-dest-{$t.id}" href="{$adminUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$t.ref_dest}" target="_blank">{$t.ref_name}</a> </td>
                             <td> {$t.email} </td>
                             <td> {$t.anniversary_date.date} </td>
                             <td> {$t.renewal_date.date} </td>
@@ -41,7 +42,7 @@
                         <tr id="account-container-{$t.id}" class="glm-account-links glm-hidden{if $t@iteration is div by 2} alternate{/if}">
                             <td colspan="4">
                                 <span class="account-dashboard-link">
-                                    <a class="account-member-dashboard" data-member="{$t.ref_dest}" href="{$adminUrl}?page=glm-members-admin-menu-member&member={$t.ref_dest}">Member Dashboard</a> |
+                                    <a class="account-member-dashboard" data-member="{$t.ref_dest}" href="{$adminUrl}?page=glm-members-admin-menu-member&member={$t.ref_dest}" target="_blank">Member Dashboard</a> |
                                 </span>
                                 <span class="account-dashboard-link">
                                     <a class="account-member-statements" data-member="{$t.ref_dest}" href="{$adminUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$t.ref_dest}">View Statements</a> |
index 6e3ffe5..109c41a 100644 (file)
@@ -10,7 +10,7 @@ body {
     width: auto !important;
 }
 </style>
-<table id="container-table" width="600" cellspacing="0" cellpadding="0">
+<table id="container-table" width="600" cellspacing="0" cellpadding="0" class="unstriped">
     <tr>
         <td>{if $settings.company_logo}<img src="{$glmPluginMediaUrl}/images/medium/{$settings.company_logo}">{/if}</td>
         <td width="160" align="right">
diff --git a/views/admin/billing/invoiceTypes.html b/views/admin/billing/invoiceTypes.html
new file mode 100644 (file)
index 0000000..711f333
--- /dev/null
@@ -0,0 +1,334 @@
+{include file='admin/billing/header.html'}
+
+<div class="callout">
+
+    <h3 class="subheader">InvoiceTypes</h3>
+
+    {* Add InvoiceTypes Button and Dialog Box *}
+    <div id="newInvoiceTypeButton" class="button primary">Add a Invoice Type</div>
+    <div id="newInvoiceTypeDialog" class="glm-dialog-box" title="Enter a New InvoiceType">
+        <form action="{$thisUrl}?page={$thisPage}&glm_action=invoiceTypes" method="post" enctype="multipart/form-data">
+            <input type="hidden" name="glm_action" value="invoiceTypes">
+            <input type="hidden" name="option" value="addNew">
+            <table class="stack unstriped">
+                <tr>
+                    <th class="glm-required" style="text-align: right;">Invoice Type Name</th>
+                    <td>
+                        <input type="text" name="name" class="glm-form-text-input" required>
+                    </td>
+                </tr>
+                <tr>
+                    <th class="glm-required" style="text-align: right;">Parent</th>
+                    <td>
+                        <select name="parent">
+                            <option value="0">(none)</option>
+                            {if $haveInvoiceTypes}
+                                {foreach $invoiceTypes as $t}
+                                    {if !$t.parent.value} <!-- don't show child categories -->
+                                        <option value="{$t.id}">{$t.name}</option>
+                                    {/if}
+                                {/foreach}
+                            {/if}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Member Type</th>
+                    <td>
+                        <select name="member_type">
+                            <option value="0">(none)</option>
+                            {if $memberTypes}
+                                {foreach $memberTypes as $type}
+                                    <option value="{$type.id}">{$type.name}</option>
+                                {/foreach}
+                            {/if}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th class="glm-required" style="text-align: right;">Amount:Numbers only<br> (999.99)</th>
+                    <td>
+                        <input type="text" name="amount" class="glm-form-text-input" required>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Dynamic Amount:</th>
+                    <td>
+                        <input type="hidden" name="dynamic_amount" class="glm-form-text-input" value="0">
+                        <input type="checkbox" name="dynamic_amount" class="glm-form-text-input" value="1">
+                        Ask for the amount on Invoice Forms
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Recurring:</th>
+                    <td>
+                        <input type="hidden" name="recurring" class="glm-form-text-input" value="0">
+                        <input type="checkbox" name="recurring" class="glm-form-text-input" value="1">
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Recurrence:</th>
+                    <td>
+                        <select name="recurrence">
+                            <option value="">(none)</option>
+                                {foreach $recurrenceTypes as $typeId => $typeLabel}
+                                    <option value="{$typeId}">{$typeLabel}</option>
+                                {/foreach}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Code:</th>
+                    <td>
+                        <input type="text" name="qcode" class="glm-form-text-input">
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Category:</th>
+                    <td>
+                        <input type="text" name="category" class="glm-form-text-input">
+                    </td>
+                </tr>
+            </table>
+            <p><span class="glm-required">*</span> Required</p>
+            <a id="newInvoiceTypeCancel" class="button button-primary glm-right">Cancel</a>
+            <input type="submit" value="Add new Invoice Type" class="button button-primary">
+        </form>
+    </div>
+
+    {* Add InvoiceTypes Button *}
+    <div id="deleteInvoiceTypeDialog" class="glm-dialog-box" title="Delete InvoiceType">
+        <div style="text-align: center;">
+            <p>Are you sure you want to delete this invoice Type?</p>
+            <p><div id="deleteInvoiceTypeConfirm" class="button button-primary">Yes, delete this invoice Type</div></p>
+            <p><div id="deleteInvoiceTypeCancel" class="button button-primary">Cancel</div></p>
+        </div>
+    </div>
+
+    {* Edit InvoiceTypes Dialog Box *}
+    <div id="editInvoiceTypeDialog" class="glm-dialog-box" title="Edit this InvoiceType">
+        <form action="{$thisUrl}?page={$thisPage}&glm_action=invoiceTypes" method="post" enctype="multipart/form-data">
+            <input type="hidden" name="glm_action" value="invoiceTypes">
+            <input type="hidden" name="option" value="update">
+            <input id="edit-id" type="hidden" name="id" value="">
+            <table class="stack unstriped">
+                <tr>
+                    <th style="text-align: right;" class="glm-required">Invoice Type Name:</th>
+                    <td>
+                        <input id="edit-name" type="text" name="name" class="glm-form-text-input" required>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;" class="glm-required">Parent:</th>
+                    <td>
+                        <select id="edit-parent" name="parent">
+                            <option value="0">(none)</option>
+                                {if $haveInvoiceTypes}
+                                    {foreach $invoiceTypes as $t}
+                                        {if !$t.parent.value} <!-- don't show child categories -->
+                                            <option value="{$t.id}">{$t.name}</option>
+                                        {/if}
+                                    {/foreach}
+                                {/if}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Member Type</th>
+                    <td>
+                        <select id="edit-member_type" name="member_type">
+                            <option value="0">(none)</option>
+                            {if $memberTypes}
+                                {foreach $memberTypes as $type}
+                                    <option value="{$type.id}">{$type.name}</option>
+                                {/foreach}
+                            {/if}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;" class="glm-required">Amount:Numbers only<br> (999.99)</th>
+                    <td>
+                        <input id="edit-amount" type="text" name="amount" class="glm-form-text-input" required>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Dynamic Amount:</th>
+                    <td>
+                        <input type="hidden" name="dynamic_amount" class="glm-form-text-input" value="0">
+                        <input id="edit-dynamic-amount" type="checkbox" name="dynamic_amount" class="glm-form-text-input" value="1">
+                        Ask for the amount on Invoice Forms
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Recurring:</th>
+                    <td>
+                        <input type="hidden" name="recurring" class="glm-form-text-input" value="0">
+                        <input id="edit-recurring" type="checkbox" name="recurring" class="glm-form-text-input" value="1">
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Recurrence:</th>
+                    <td>
+                        <select id="edit-recurrence" name="recurrence">
+                            <option value="">(none)</option>
+                                {foreach $recurrenceTypes as $typeId => $typeLabel}
+                                    <option value="{$typeId}">{$typeLabel}</option>
+                                {/foreach}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Code:</th>
+                    <td>
+                        <input id="edit-qcode" type="text" name="qcode" class="glm-form-text-input">
+                    </td>
+                </tr>
+                <tr>
+                    <th style="text-align: right;">Category:</th>
+                    <td>
+                        <input id="edit-category" type="text" name="category" class="glm-form-text-input">
+                    </td>
+                </tr>
+            </table>
+            <p><span class="glm-required">*</span> Required</p>
+            <a id="editInvoiceTypeCancel" class="button button-primary glm-right">Cancel</a>
+            <input type="submit" value="Update this Invoice Type" class="button button-primary">
+        </form>
+    </div>
+
+
+    <table class="stack hover">
+        <thead>
+            <tr>
+                <th style="width: 50px;">ID</th>
+                <th style="width: 850px;">InvoiceType</th>
+                <th>Amount</th>
+                <th>Dynamic Amount</th>
+                <th>Recurring</th>
+                <th>Recurrence</th>
+                <th>&nbsp;</th>
+            </tr>
+        </thead>
+        <tbody>
+            {if $haveInvoiceTypes}
+                {assign var="i" value="0"}
+                {foreach $invoiceTypes as $t}
+                    {if $i++ is odd by 1}
+                        <tr>
+                    {else}
+                        <tr class="alternate">
+                    {/if}
+                        <td>{$t.id}</td>
+                        <td>
+                            <div{if $t.parent.value} class="glm-indent"{/if}>
+                                <a class="editInvoiceType"
+                                    data-invoice-id="{$t.id}"
+                                    data-invoice-name="{$t.name|escape}"
+                                    data-invoice-parent="{$t.parent.value}"
+                                    data-invoice-member_type="{$t.member_type.value}"
+                                    data-invoice-amount="{$t.amount}"
+                                    data-invoice-dynamic-amount="{$t.dynamic_amount.value}"
+                                    data-invoice-recurring="{$t.recurring.value}"
+                                    data-invoice-recurrence="{$t.recurrence}"
+                                    data-invoice-qcode="{$t.qcode}"
+                                    data-invoice-category="{$t.category|escape}">{$t.name}</a>
+                            </div>
+                        </td>
+                        <td>{$t.amount}</td>
+                        <td>{if $t.dynamic_amount.value}Yes{else}No{/if}</td>
+                        <td>{if $t.recurring.value}Yes{else}No{/if}</td>
+                        <td>{if $t.recurrence}{$recurrenceTypes[$t.recurrence]}{/if}</td>
+                        <td>
+                            <div class="deleteInvoiceTypeButton button button-secondary glm-button-small glm-right"
+                                data-invoiceTypeID="{$t.id}">Delete</div>
+                        </td>
+                    </tr>
+                {/foreach}
+            {else}
+                <tr class="alternate"><td colspan="2">(no Invoice Types listed)</td></tr>
+            {/if}
+        </tbody>
+    </table>
+
+</div>
+
+<script type="text/javascript">
+jQuery(document).ready(function($) {
+
+    $("#newInvoiceTypeDialog").dialog({
+        autoOpen: false,
+        minWidth: 600,
+        dialogClass: "glm-dialog-no-close"
+    });
+    $("#editInvoiceTypeDialog").dialog({
+        autoOpen: false,
+        minWidth: 600,
+        dialogClass: "glm-dialog-no-close"
+    });
+    $("#deleteInvoiceTypeDialog").dialog({
+        autoOpen: false,
+        minWidth: 400,
+        dialogClass: "glm-dialog-no-close"
+    });
+
+    $('#newInvoiceTypeButton').click( function() {
+        $("#newInvoiceTypeDialog").dialog("open");
+    });
+    $('.editInvoiceType').click( function() {
+        $('#edit-recurring').prop( 'checked', false );
+        $('#edit-dynamic-amount').prop( 'checked', false );
+
+        var invoiceID            = $(this).data('invoice-id');
+        var invoiceName          = $(this).data('invoice-name');
+        var invoiceParent        = $(this).data('invoice-parent');
+        var invoiceType          = $(this).data('invoice-member_type');
+        var invoiceAmount        = $(this).data('invoice-amount');
+        var invoiceDynamicAmount = $(this).data('invoice-dynamic-amount');
+        var invoiceRecurring     = $(this).data('invoice-recurring');
+        var invoiceRecurrence    = $(this).data('invoice-recurrence');
+        var invoiceQcode         = $(this).data('invoice-qcode');
+        var invoiceCategory      = $(this).data('invoice-category');
+
+        // Set the values of the edit form for the selected invoiceType
+        $('#edit-id').val( invoiceID );
+        $('#edit-name').val( invoiceName );
+        $('#edit-parent').val( invoiceParent );
+        $('#edit-member_type').val( invoiceType );
+        $('#edit-amount').val( invoiceAmount );
+        $('#edit-qcode').val( invoiceQcode );
+        $('#edit-category').val( invoiceCategory );
+        if ( invoiceDynamicAmount === 1 ) {
+            $('#edit-dynamic-amount').prop( 'checked', true );
+        }
+        if ( invoiceRecurring === 1 ) {
+            $('#edit-recurring').prop( 'checked', true );
+        }
+        $('#edit-recurrence').val( invoiceRecurrence );
+
+        $("#editInvoiceTypeDialog").dialog("open");
+    });
+    $('#editInvoiceTypeCancel').click( function() {
+        $("#editInvoiceTypeDialog").dialog("close");
+    });
+    $('#newInvoiceTypeCancel').click( function() {
+        $("#newInvoiceTypeDialog").dialog("close");
+    });
+
+    var id = false;
+    $('.deleteInvoiceTypeButton').click( function() {
+        id = $(this).attr('data-invoiceTypeID');
+        $("#deleteInvoiceTypeDialog").dialog("open");
+    });
+    $('#deleteInvoiceTypeConfirm').click( function() {
+        $("#deleteInvoiceTypeDialog").dialog("close");
+        window.location.href = "{$thisUrl}?page={$thisPage}&glm_action=invoiceTypes&option=delete&id=" + id;
+    });
+    $('#deleteInvoiceTypeCancel').click( function() {
+        $("#deleteInvoiceTypeDialog").dialog("close");
+    });
+
+});
+</script>
+
+{include file='admin/footer.html'}
index 342357c..762bbde 100644 (file)
@@ -1,8 +1,8 @@
 {include file='admin/billing/header.html'}
 
-<div class="callout large">
+<div class="callout">
 
-    <h2 class="subheader">Invoices</h2>
+    <h3 class="subheader">Invoices</h3>
 
     <a class="button primary" href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoices&option=add">Create Invoice</a>
     {if $invoiceSent}<p><span class="glm-notice glm-flash-updated">Invoice Sent</span></p>{/if}
index 12e994f..45ffa0c 100644 (file)
@@ -1,8 +1,8 @@
 {include file='admin/billing/header.html'}
 
-<div class="callout large">
+<div class="callout">
 
-    <h2 class="subheader">Invoicing</h2>
+    <h3 class="subheader">Invoicing</h3>
     {include file='admin/billing/invoicingSubHeader.html'}
 
     <form id="invoicing-form" action="{$thisUrl}?page={$thisPage}" method="get">
         <input type="hidden" name="nextStart" value="{$nextStart}">
         <input type="hidden" name="limit" value="{$limit}">
 
-        <div class="grid-container full">
-            <div class="grid-x grid-padding-x">
-                {if $paymentTypes}
-                    <div class="cell small-12 medium-2">
-                        <label>Payment Types:</label><br>
-                        <select multiple size="10" name="invoice_types[]">
-                            {foreach $paymentTypes as $paymentType}
-                                <option value="{$paymentType.id}"{if isset($smarty.request.invoice_types) && in_array( $paymentType.id, $smarty.request.invoice_types )} selected{/if}>{$paymentType.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                {/if}
-                {if $counties}
-                    <div class="cell small-12 medium-2">
-                        <label>Counties:</label><br>
-                        <select multiple size="10" name="counties[]">
-                            {foreach $counties as $county}
-                                <option value="{$county.id}"{if isset($smarty.request.counties) && in_array( $county.id, $smarty.request.counties )} selected{/if}>{$county.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                {/if}
-                {if $option == 'createLabels'}
-                    <div class="cell small-12 medium-2">
-                        <br>
-                        <label>
-                            <input class="labelOption" type="checkbox" name="only_payment_due"{if isset($smarty.request.only_payment_due) && $smarty.request.only_payment_due} checked{/if}>
-                            Only Payments Due<br>
-                        </label>
-                        <label>
-                            <input id="exportCSV" type="checkbox" name="export_file"{if isset($smarty.request.export_file) && $smarty.request.export_file} checked{/if}>
-                            Export as CSV File<br>
-                        </label>
-                        <label>
-                            <input class="labelOption" type="checkbox" name="no_contact_name"{if isset($smarty.request.no_contact_name) && $smarty.request.no_contact_name} checked{/if}>
-                            Remove Member Billing Contact<br>
-                        </label>
-                    </div>
-                {/if}
-                {if $option == 'sendEmails'}
+        <fieldset class="fieldset">
+            <legend>Filter</legend>
+            <div class="grid-container full">
+                <div class="grid-x grid-padding-x">
+                    {if $paymentTypes}
+                        <div class="cell small-12 medium-2">
+                            <label>Payment Types:</label><br>
+                            <select multiple size="10" name="invoice_types[]">
+                                {foreach $paymentTypes as $paymentType}
+                                    <option value="{$paymentType.id}"{if isset($smarty.request.invoice_types) && in_array( $paymentType.id, $smarty.request.invoice_types )} selected{/if}>{$paymentType.name}</option>
+                                {/foreach}
+                            </select>
+                        </div>
+                    {/if}
+                    {if $counties}
+                        <div class="cell small-12 medium-2">
+                            <label>Counties:</label><br>
+                            <select multiple size="10" name="counties[]">
+                                {foreach $counties as $county}
+                                    <option value="{$county.id}"{if isset($smarty.request.counties) && in_array( $county.id, $smarty.request.counties )} selected{/if}>{$county.name}</option>
+                                {/foreach}
+                            </select>
+                        </div>
+                    {/if}
+                    {if $option == 'createLabels'}
+                        <div class="cell small-12 medium-2">
+                            <br>
+                            <label>
+                                <input class="labelOption" type="checkbox" name="only_payment_due"{if isset($smarty.request.only_payment_due) && $smarty.request.only_payment_due} checked{/if}>
+                                Only Payments Due<br>
+                            </label>
+                            <label>
+                                <input id="exportCSV" type="checkbox" name="export_file"{if isset($smarty.request.export_file) && $smarty.request.export_file} checked{/if}>
+                                Export as CSV File<br>
+                            </label>
+                            <label>
+                                <input class="labelOption" type="checkbox" name="no_contact_name"{if isset($smarty.request.no_contact_name) && $smarty.request.no_contact_name} checked{/if}>
+                                Remove Member Billing Contact<br>
+                            </label>
+                        </div>
+                    {/if}
+                    {if $option == 'sendEmails'}
+                        <div class="cell small-12 medium-2">
+                            <label>Email Notification:</label><br>
+                            {if $notification_types}
+                                {foreach $notification_types as $notice}
+                                    <label>
+                                        <input class="labelOption" type="radio" name="notification_id" value="{$notice.id}" required>
+                                        {$notice.name}<br>
+                                    </label>
+                                {/foreach}
+                            {/if}
+                        </div>
+                    {/if}
                     <div class="cell small-12 medium-2">
-                        <label>Email Notification:</label><br>
-                        {if $notification_types}
-                            {foreach $notification_types as $notice}
-                                <label>
-                                    <input class="labelOption" type="radio" name="notification_id" value="{$notice.id}" required>
-                                    {$notice.name}<br>
-                                </label>
-                            {/foreach}
+                        <input class="button" type="submit" value="Filter">
+                        {if $option == 'createInvoices'}
+                            <input class="button" type="submit" name="submitType" value="Create Invoices" onClick="return( confirm( 'Are you Sure?' ) );">
+                        {elseif $option == 'printInvoices'}
+                            <input class="button" id="print-invoices" type="submit" name="submitType" value="Print Invoices">
+                        {elseif $option == 'createLabels'}
+                            <input class="button" id="create-labels" type="submit" name="submitType" value="Create Labels">
+                        {elseif $option == 'sendEmails'}
+                            <input class="button" type="submit" name="submitType" value="Send Emails">
                         {/if}
                     </div>
-                {/if}
-                <div class="cell small-12 medium-2">
-                    <input class="button" type="submit" value="Filter">
-                    {if $option == 'createInvoices'}
-                        <input class="button" type="submit" name="submitType" value="Create Invoices" onClick="return( confirm( 'Are you Sure?' ) );">
-                    {elseif $option == 'printInvoices'}
-                        <input class="button" id="print-invoices" type="submit" name="submitType" value="Print Invoices">
-                    {elseif $option == 'createLabels'}
-                        <input class="button" id="create-labels" type="submit" name="submitType" value="Create Labels">
-                    {elseif $option == 'sendEmails'}
-                        <input class="button" type="submit" name="submitType" value="Send Emails">
-                    {/if}
                 </div>
             </div>
-        </div>
+        </fieldset>
         <br clear="all">
         <br clear="all">
         <p>Total found: {$totalAccounts}</p>
index 33c9ea6..3d8123b 100644 (file)
@@ -1,14 +1,18 @@
-<ul class="menu">
-    <li class="{if $option==createInvoices} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createInvoices">Create Invoices</a>
-    </li>
-    <li class="{if $option==printInvoices} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=printInvoices">Print Invoices</a>
-    </li>
-    <li class="{if $option==createLabels} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createLabels">Create Labels</a>
-    </li>
-    <li class="{if $option==sendEmails} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=sendEmails">Send Emails</a>
-    </li>
-</ul>
+<div class="top-bar">
+    <div class="top-bar-left">
+        <ul class="menu">
+            <li class="{if $option==createInvoices} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createInvoices">Create Invoices</a>
+            </li>
+            <li class="{if $option==printInvoices} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=printInvoices">Print Invoices</a>
+            </li>
+            <li class="{if $option==createLabels} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createLabels">Create Labels</a>
+            </li>
+            <li class="{if $option==sendEmails} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=sendEmails">Send Emails</a>
+            </li>
+        </ul>
+    </div>
+</div>
diff --git a/views/admin/billing/notificationSubHeader.html b/views/admin/billing/notificationSubHeader.html
new file mode 100644 (file)
index 0000000..2269573
--- /dev/null
@@ -0,0 +1,8 @@
+<h2 class="nav-tab-wrapper" style="margin-bottom: 1em;">
+    <a href="{$thisUrl}?page=glm-members-admin-menu-settings&glm_action=billing"
+       class="glm-settings-tab nav-tab{if $action == 'billing'} nav-tab-active{/if}">Invoice Settings</a>
+    <a href="{$thisUrl}?page=glm-members-admin-menu-settings&glm_action=invoiceTypes"
+       class="glm-settings-tab nav-tab{if $action == 'invoiceTypes'} nav-tab-active{/if}">Invoice Types</a>
+    <a href="{$thisUrl}?page=glm-members-admin-menu-settings&glm_action=notificationTypes"
+       class="glm-settings-tab nav-tab{if $action == 'notificationTypes'} nav-tab-active{/if}">Notification Types</a>
+</h2>
diff --git a/views/admin/billing/notifications.html b/views/admin/billing/notifications.html
new file mode 100644 (file)
index 0000000..2eab5c7
--- /dev/null
@@ -0,0 +1,177 @@
+{include file='admin/billing/header.html'}
+
+<div class="callout">
+
+    <h3 class="subheader">NotificationTypes</h3>
+
+    {* Add NotificationTypes Button and Dialog Box *}
+    <a href="{$thisUrl}?page={$thisPage}&glm_action=notifications&option=add" class="button primary">Add a Notification Type</a>
+
+    {* Add NotificationTypes Button *}
+    <div id="deleteNotificationTypeDialog" class="glm-dialog-box" title="Delete NotificationType">
+        <div style="text-align: center;">
+            <p>Are you sure you want to delete this notification Type?</p>
+            <p><div id="deleteNotificationTypeConfirm" class="button button-primary">Yes, delete this notification Type</div></p>
+            <p><div id="deleteNotificationTypeCancel" class="button button-primary">Cancel</div></p>
+        </div>
+    </div>
+
+    {* Edit NotificationTypes Dialog Box *}
+    <div id="editNotificationTypeDialog" class="glm-dialog-box" title="Edit this NotificationType">
+        <form action="{$thisUrl}?page={$thisPage}&glm_action=notifications" method="post" enctype="multipart/form-data" data-abide novalidate>
+            <input type="hidden" name="glm_action" value="notifications">
+            <input type="hidden" name="option" value="update">
+            <input id="edit-id" type="hidden" name="id" value="">
+            <table class="stack">
+                <tr>
+                    <th class="glm-required">Name:</th>
+                    <td>
+                        <input id="edit-name" type="text" name="name" required />
+                    </td>
+                </tr>
+                <tr>
+                    <th colspan="2" class="glm-required">Send Notification based on</th>
+                </tr>
+                <tr>
+                    <th colspan="2">Due Date</th>
+                </tr>
+                <tr>
+                    <th class="glm-required"><input type="radio" id="edit-sendbydate" name="send_by" value="date" required></th>
+                    <td>
+                        <input
+                            type="number"
+                            step="1"
+                            min="0"
+                            max="100"
+                            name="send_date_number"
+                            id="edit-senddatenumber"
+                            class="glm-form-text-input-veryshort">
+                        <select id="edit-senddateperiod" name="send_date_period">
+                            {foreach $send_date_period as $id => $val}
+                                <option value="{$id}">{$val}</option>
+                            {/foreach}
+                        </select>
+                        <select id="edit-senddatewhen" name="send_date_when">
+                            {foreach $send_date_when as $id => $val}
+                                <option value="{$id}">{$val}</option>
+                            {/foreach}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th colspan="2">Immediate Action</th>
+                </tr>
+                <tr>
+                    <th><input id="edit-sendbyaction" type="radio" name="send_by" value="action" required></th>
+                    <td>
+                        <select id="edit-sendaction" name="send_action">
+                            {foreach $send_action as $id => $val}
+                                <option value="{$id}">{$val}</option>
+                            {/foreach}
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <th class="glm-required">Subject</th>
+                    <td class="glm-required">
+                        <input type="text" id="edit-subject" name="subject" required />
+                    </td>
+                </tr>
+                <tr>
+                    <th class="glm-required">From</th>
+                    <td class="glm-required">
+                        <input type="text" id="edit-fromheader" name="from_header" required />
+                    </td>
+                </tr>
+                <tr>
+                    <th class="glm-required">Reply-To</th>
+                    <td class="glm-required">
+                        <input type="text" id="edit-replyto" name="replyto" required />
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2">
+                        <textarea id="edit-message" name="message"></textarea>
+                    </td>
+                </tr>
+            </table>
+            <p><span class="glm-required">*</span> Required</p>
+            <a id="editNotificationTypeCancel" class="button button-primary glm-right">Cancel</a>
+            <input type="submit" value="Update this Notification Type" class="button button-primary">
+        </form>
+    </div>
+
+    <table class="stack hover">
+        <thead>
+            <tr>
+                <th style="width:50px;">ID</th>
+                <th>Notification</th>
+                <th>Subject</th>
+                <th>Trigger</th>
+                <th>&nbsp;</th>
+            </tr>
+        </thead>
+        <tbody>
+            {if $haveNotificationTypes}
+                {assign var="i" value="0"}
+                {foreach $notificationTypes as $t}
+                    <tr>
+                        <td style="width:50px;">{$t.id}</td>
+                        <td>
+                            <div>
+                                <a href="{$thisUrl}?page={$thisPage}&glm_action=notifications&option=edit&id={$t.id}" data-notification-id="{$t.id}">{$t.name}</a>
+                            </div>
+                        </td>
+                        <td>{$t.subject}</td>
+                        <td>
+                            {if $t.send_by_action.value != 0}
+                                Action:
+                                {$send_action[$t.send_action]}
+                            {else}
+                                {$t.send_date_number}
+                                {$send_date_period[$t.send_date_period]}{if $t.send_date_number}s{/if}
+                                {$send_date_when[$t.send_date_when]}
+                                Due Date
+                            {/if}
+                        </td>
+                        <td>
+                            <div
+                                class="deleteNotificationTypeButton button button-secondary glm-button-small glm-right"
+                                data-notificationTypeID="{$t.id}">Delete</div>
+                        </td>
+                    </tr>
+                {/foreach}
+            {else}
+                <tr class="alternate"><td colspan="2">(no Notification Types listed)</td></tr>
+            {/if}
+        </tbody>
+    </table>
+
+</div>
+<script type="text/javascript">
+    jQuery(document).ready(function($) {
+
+        $("#deleteNotificationTypeDialog").dialog({
+            autoOpen: false,
+            minWidth: 400,
+            dialogClass: "glm-dialog-no-close"
+        });
+
+
+        var id = false;
+        $('.deleteNotificationTypeButton').click( function() {
+            id = $(this).attr('data-notificationTypeID');
+            $("#deleteNotificationTypeDialog").dialog("open");
+        });
+        $('#deleteNotificationTypeConfirm').click( function() {
+            $("#deleteNotificationTypeDialog").dialog("close");
+            window.location.href = "{$thisUrl}?page={$thisPage}&glm_action=notifications&option=delete&id=" + id;
+        });
+        $('#deleteNotificationTypeCancel').click( function() {
+            $("#deleteNotificationTypeDialog").dialog("close");
+        });
+
+    });
+</script>
+
+{include file='admin/footer.html'}
index c7a8ee4..0fa2326 100644 (file)
@@ -2,7 +2,7 @@
 
 <div class="callout large">
 
-    <h2 class="subheader">Payments</h2>
+    <h3 class="subheader">Payments</h3>
 
     <div class="button-group">
         <div id="exportPaymentsButton" class="button secondary">Payments Export</div>
index c9075fc..a9c1b5d 100644 (file)
@@ -1,11 +1,11 @@
 {include file='admin/billing/header.html'}
-<div class="callout large">
+<div class="callout">
 
-    <h2 class="subheader">Reports</h2>
+    <h3 class="subheader">Reports</h3>
     {include file='admin/billing/reportsSubHeader.html'}
 
     {if $option == 'reportGenerator'}
-        <div id="exportReportsButton" class="button button-secondary glm-admin-export-button">Report Export</div>
+        <div id="exportReportsButton" class="button secondary glm-admin-export-button">Report Export</div>
     {/if}
 
     <form id="reports-form" action="{$thisUrl}?page={$thisPage}" method="get">
         <input type="hidden" name="nextStart" value="{$nextStart}">
         <input type="hidden" name="limit" value="{$limit}">
         {if $option == 'reportGenerator'}
-            <div class="glm-admin-table-inner">
-                {if $paymentTypes}
-                    <div class="billing-search-form-select">
-                        <label for="invoice_types">Payment Types:</label><br>
-                        <select multiple size="10" id="invoice_types" name="invoice_types[]">
-                            {foreach $paymentTypes as $paymentType}
-                                <option value="{$paymentType.id}"{if isset($smarty.request.invoice_types) && in_array( $paymentType.id, $smarty.request.invoice_types )} selected{/if}>{$paymentType.name}</option>
-                            {/foreach}
-                        </select>
+            <fieldset class="fieldset">
+                <legend>Filter Reports</legend>
+
+                <div class="grid-container">
+
+                    <div class="grid-x grid-padding-x">
+
+                        {if $paymentTypes}
+                            <div class="cell small-12 medium-3">
+
+                                {* Payment Types *}
+                                {$ui = [
+                                    'value'     => $smarty.request.invoice_types,
+                                    'field'     => 'invoice_type',
+                                    'label'     => 'Payment Types',
+                                    'list'      => $paymentTypes,
+                                    'l_label'   => 'name',
+                                    'l_value'   => 'id',
+                                    'l_blank'   => false,
+                                    'l_size'    => 10,
+                                    'required'  => false,
+                                    'errorText' => 'Payment Types is Required',
+                                    'dataError' => ''
+                                ]}
+                                {include file='ui/f6/multiselect.html'}
+
+                            </div>
+                        {/if}
+
+                        {if $counties}
+                            <div class="cell small-12 medium-3">
+
+                                {* Counties *}
+                                {$ui = [
+                                    'value'     => $smarty.request.counties,
+                                    'field'     => 'counties',
+                                    'label'     => 'Counties',
+                                    'list'      => $counties,
+                                    'l_label'   => 'name',
+                                    'l_value'   => 'id',
+                                    'l_blank'   => false,
+                                    'l_size'    => 10,
+                                    'required'  => false,
+                                    'errorText' => 'Counties is Required',
+                                    'dataError' => ''
+                                ]}
+                                {include file='ui/f6/multiselect.html'}
+
+                            </div>
+                        {/if}
+                        <div class="cell small-12 medium-3">
+
+                            {* Member Name *}
+                            {$ui = [
+                                'value'     => $smarty.request.member_name,
+                                'field'     => 'member_name',
+                                'label'     => 'Member Name',
+                                'required'  => false,
+                                'errorText' => 'Member Name is Required',
+                                'dataError' => ''
+                            ]}
+                            {include file='ui/f6/text.html'}
+
+                            {if isset( $settings.account_number_enabled ) && $settings.account_number_enabled}
+                                {* Account Number *}
+                                {$ui = [
+                                    'value'     => $smarty.request.account_number,
+                                    'field'     => 'account_number',
+                                    'label'     => 'Account Number',
+                                    'required'  => false,
+                                    'errorText' => 'Account Number is Required',
+                                    'dataError' => ''
+                                ]}
+                                {include file='ui/f6/text.html'}
+                            {/if}
+
+                        </div>
+
+                    </div>
+
+                </div>
+
+                <div class="glm-admin-table-inner">
+                    <div class="billing-search-form-container">
+                        <label>From:</label>
+                        <input id="from_date" class="reportForm glm-date-input" name="from_date" value="{if isset($smarty.request.from_date)}{$smarty.request.from_date}{/if}" />
+                        <label>To:</label>
+                        <input id="to_date" class="reportForm glm-date-input" name="to_date" value="{if isset($smarty.request.to_date)}{$smarty.request.to_date}{/if}" />
                     </div>
-                {/if}
-                {if $counties}
-                    <div class="billing-search-form-select">
-                        <label for="counties">Counties:</label><br>
-                        <select multiple size="10" id="counties" name="counties[]">
-                            {foreach $counties as $county}
-                                <option value="{$county.id}"{if isset($smarty.request.counties) && in_array( $county.id, $smarty.request.counties )} selected{/if}>{$county.name}</option>
+                    <div class="billing-search-form-container">
+                        <label for="transactionTypes">Transaction Types:</label>
+                        <select multiple size="4" id="transactionTypes" name="transactionTypes[]">
+                            {foreach $actionTypeSel as $typeId => $typeLabel}
+                                <option value="{$typeId}"{if isset($smarty.request.transactionTypes) && in_array( $typeId, $smarty.request.transactionTypes )} selected{/if}>{$typeLabel}</option>
                             {/foreach}
                         </select>
+                        {if isset( $settings.quickbooks_enabled ) && $settings.quickbooks_enabled}
+                            <br />
+                            <label>
+                                <input type="checkbox" id="qif" name="qif" /> Export QIF File
+                            </label>
+                        {/if}
+                    </div>
+                    <div class="billing-search-form-submit">
+                        <input id="report_search" type="submit" value="Search">
                     </div>
-                {/if}
-                <div class="billing-search-form-container">
-                    <label for="member_name">Member Name:</label>
-                    <input class="reportForm" id="member_name" name="member_name" value="{if isset($smarty.request.member_name)}{$smarty.request.member_name}{/if}" />
-                    {if isset( $settings.account_number_enabled ) && $settings.account_number_enabled}
-                        <label for="account_number">Account Number:</label>
-                        <input class="reportForm" id="account_number" name="account_number" value="{if isset($smarty.request.account_number)}{$smarty.request.account_number}{/if}" />
-                    {/if}
-                    <label>From:</label>
-                    <input id="from_date" class="reportForm glm-date-input" name="from_date" value="{if isset($smarty.request.from_date)}{$smarty.request.from_date}{/if}" />
-                    <label>To:</label>
-                    <input id="to_date" class="reportForm glm-date-input" name="to_date" value="{if isset($smarty.request.to_date)}{$smarty.request.to_date}{/if}" />
-                </div>
-                <div class="billing-search-form-container">
-                    <label for="transactionTypes">Transaction Types:</label>
-                    <select multiple size="4" id="transactionTypes" name="transactionTypes[]">
-                        {foreach $actionTypeSel as $typeId => $typeLabel}
-                            <option value="{$typeId}"{if isset($smarty.request.transactionTypes) && in_array( $typeId, $smarty.request.transactionTypes )} selected{/if}>{$typeLabel}</option>
-                        {/foreach}
-                    </select>
-                    {if isset( $settings.quickbooks_enabled ) && $settings.quickbooks_enabled}
-                        <br />
-                        <label>
-                            <input type="checkbox" id="qif" name="qif" /> Export QIF File
-                        </label>
-                    {/if}
-                </div>
-                <div class="billing-search-form-submit">
-                    <input id="report_search" type="submit" value="Search">
                 </div>
-            </div>
+            </fieldset>
         {/if}
         {if $option == 'accountsByAge'}
         <h3>over 60 days</h3>
index f19c9b1..a55d7eb 100644 (file)
@@ -1,20 +1,24 @@
-<ul class="menu">
-    <li class="{if $option==openAccounts} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=openAccounts">Open Accounts</a>
-    </li>
-    <li class="{if $option==closedAccounts} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=closedAccounts">Closed Accounts</a>
-    </li>
-    <li class="{if $option==accountsByAge} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=accountsByAge">Accounts By Age</a>
-    </li>
-    <li class="{if $option==reportGenerator} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=reportGenerator">Report Generator</a>
-    </li>
-    <li class="{if $option==noAccounts} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=noAccounts">No Accounts</a>
-    </li>
-    <li class="{if $option==allAccounts} is-active{/if}">
-        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=allAccounts">All Accounts</a>
-    </li>
-</ul>
+<div class="top-bar">
+    <div class="top-bar-left">
+        <ul class="menu">
+            <li class="{if $option==openAccounts} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=openAccounts">Open Accounts</a>
+            </li>
+            <li class="{if $option==closedAccounts} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=closedAccounts">Closed Accounts</a>
+            </li>
+            <li class="{if $option==accountsByAge} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=accountsByAge">Accounts By Age</a>
+            </li>
+            <li class="{if $option==reportGenerator} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=reportGenerator">Report Generator</a>
+            </li>
+            <li class="{if $option==noAccounts} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=noAccounts">No Accounts</a>
+            </li>
+            <li class="{if $option==allAccounts} is-active{/if}">
+                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=allAccounts">All Accounts</a>
+            </li>
+        </ul>
+    </div>
+</div>
index 037bbb0..bc78afb 100644 (file)
@@ -1,10 +1,14 @@
 {* Billing Settings *}
 {include file='admin/billing/header.html'}
 
-<div class="callout large">
+{* Here we are setting $data so it can be used for the Foundation 6 UI Elements *}
+{$data = $billingSettings}
 
-    <h2 class="subheader">Settings</h2>
+<div class="callout">
 
+    <h3 class="subheader">Settings</h3>
+
+    {* Updated Settings *}
     {if $settingsUpdated}
         <div class="success callout" data-closable>
             <button class="close-button" aria-label="Close alert" type="button" data-close>
@@ -13,6 +17,7 @@
             <p><i class="fi-alert"></i> Settings Updated</p>
         </div>
     {/if}
+    {* Error for Update Settings *}
     {if $settingsUpdateError}
         <div class="alert callout" data-closable>
             <button class="close-button" aria-label="Close alert" type="button" data-close>
 
         {include file='ui/f6/errorCallout.html'}
 
-        <div class="grid-x grid-margin-x">
-            <div class="cell small-12 medium-6">
-
-                <fieldset class="fieldset">
-                    <legend>Invoice Information</legend>
-
-                    {$data = $billingSettings}
-
-                    {* Company Name *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_name,
-                        'field'       => 'company_name',
-                        'label'       => 'Company Name',
-                        'required'    => $data.fieldRequired.company_name,
-                        'errorText'   => 'Company Name is Required',
-                        'dataError'   => $data.fieldFail.company_name
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company Name 2 *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_name2,
-                        'field'       => 'company_name2',
-                        'label'       => 'Company Name 2',
-                        'required'    => $data.fieldRequired.company_name2,
-                        'errorText'   => 'Company Name 2 is Required',
-                        'dataError'   => $data.fieldFail.company_name2
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company Address 1 *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_addr1,
-                        'field'       => 'company_addr1',
-                        'label'       => 'Company Address 1',
-                        'required'    => $data.fieldRequired.company_addr1,
-                        'errorText'   => 'Company Address 1 is Required',
-                        'dataError'   => $data.fieldFail.company_addr1
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company Address 2 *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_addr2,
-                        'field'       => 'company_addr2',
-                        'label'       => 'Company Address 2',
-                        'required'    => $data.fieldRequired.company_addr2,
-                        'errorText'   => 'Company Address 2 is Required',
-                        'dataError'   => $data.fieldFail.company_addr2
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company City *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_city,
-                        'field'       => 'company_city',
-                        'label'       => 'Company City',
-                        'required'    => $data.fieldRequired.company_city,
-                        'errorText'   => 'Company City is Required',
-                        'dataError'   => $data.fieldFail.company_city
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company State *}
-                    {$ui = [
-                        'value'     => $data.fieldData.company_state.value,
-                        'field'     => 'company_state',
-                        'label'     => 'Company State',
-                        'list'      => $data.fieldData.company_state.list,
-                        'l_label'   => 'name',
-                        'l_value'   => 'value',
-                        'l_blank'   => true,
-                        'required'  => $data.fieldRequired.company_state,
-                        'errorText' => 'Company State is Required',
-                        'dataError' => $data.fieldFail.company_state
-                    ]}
-                    {include file='ui/f6/select.html'}
-
-                    {* Company Zip *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_zip,
-                        'field'       => 'company_zip',
-                        'label'       => 'Company Zip',
-                        'required'    => $data.fieldRequired.company_zip,
-                        'errorText'   => 'Company Zip is Required',
-                        'dataError'   => $data.fieldFail.company_zip
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company Phone *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_phone,
-                        'field'       => 'company_phone',
-                        'label'       => 'Company Phone',
-                        'required'    => $data.fieldRequired.company_phone,
-                        'errorText'   => 'Company Phone is Required',
-                        'dataError'   => $data.fieldFail.company_phone
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company Email *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_email,
-                        'field'       => 'company_email',
-                        'label'       => 'Company Email',
-                        'required'    => $data.fieldRequired.company_email,
-                        'errorText'   => 'Company Email is Required',
-                        'dataError'   => $data.fieldFail.company_email
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Company URL *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_url,
-                        'field'       => 'company_url',
-                        'label'       => 'Company URL',
-                        'required'    => $data.fieldRequired.company_url,
-                        'errorText'   => 'Company URL is Required',
-                        'dataError'   => $data.fieldFail.company_url
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Payment Terms *}
-                    {$ui = [
-                        'value'       => $data.fieldData.payment_terms,
-                        'field'       => 'payment_terms',
-                        'label'       => 'Payment Terms',
-                        'required'    => $data.fieldRequired.payment_terms,
-                        'errorText'   => 'Payment Terms is Required',
-                        'dataError'   => $data.fieldFail.payment_terms
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-
-
-                </fieldset>
-            </div>
-
-
-            <div class="cell small-12 medium-6">
-                <fieldset class="fieldset">
-                    <legend>Invoice configurations</legend>
-
-                    {* Company Logo *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_logo,
-                        'field'       => 'company_logo',
-                        'label'       => 'Company Logo',
-                        'required'    => $data.fieldRequired.company_logo,
-                        'errorText'   => 'Company Logo is Required',
-                        'dataError'   => $data.fieldFail.company_logo
-                    ]}
-                    {include file='ui/f6/image.html'}
-
-                    {* Company Logo Width *}
-                    {$ui = [
-                        'value'       => $data.fieldData.company_logo_width,
-                        'field'       => 'company_logo_width',
-                        'label'       => 'Company Logo Width',
-                        'pattern'     => 'number',
-                        'required'    => $data.fieldRequired.company_logo_width,
-                        'errorText'   => 'Company Logo Width Must be numeric',
-                        'dataError'   => $data.fieldFail.company_logo_width
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Receipt Text *}
-                    {$ui = [
-                        'value'     => $data.fieldData.receipt_text,
-                        'field'     => 'receipt_text',
-                        'label'     => 'Receipt Text',
-                        'height'    => 100,
-                        'media'     => false,
-                        'quicktags' => false,
-                        'required'  => $data.fieldRequired.receipt_text,
-                        'errortext' => 'Receipt Text is Required',
-                        'dataError' => $data.fieldFail.receipt_text
-                    ]}
-                    {include file='ui/f6/editor.html'}
-
-                    {* Member Types that require billing *}
-                    {$ui = [
-                        'value'     => $selectedMTRB,
-                        'field'     => 'member_types_requiring_billing_option',
-                        'label'     => 'Member Types that require billing',
-                        'list'      => $member_types,
-                        'l_label'   => 'name',
-                        'l_value'   => 'id',
-                        'l_blank'   => false,
-                        'l_size'    => 5,
-                        'required'  => false,
-                        'errorText' => 'Member Types that require billing is Required',
-                        'dataError' => $data.fieldFail.member_types_requiring_billing
-                    ]}
-                    {include file='ui/f6/multiselect.html'}
-
-                    {* Member Types that are Free *}
-                    {$ui = [
-                        'value'     => $selectedMTFREE,
-                        'field'     => 'member_types_free_option',
-                        'label'     => 'Member Types that are Free',
-                        'list'      => $member_types,
-                        'l_label'   => 'name',
-                        'l_value'   => 'id',
-                        'l_blank'   => false,
-                        'l_size'    => 5,
-                        'required'  => false,
-                        'errorText' => 'Member Types that require billing is Required',
-                        'dataError' => $data.fieldFail.member_types_free
-                    ]}
-                    {include file='ui/f6/multiselect.html'}
-
-                    {* Days Before Renewal Date *}
-                    {$ui = [
-                        'value'       => $data.fieldData.days_before_renewal,
-                        'field'       => 'days_before_renewal',
-                        'label'       => 'Days Before Renewal Date',
-                        'pattern'     => 'number',
-                        'required'    => $data.fieldRequired.days_before_renewal,
-                        'errorText'   => 'Days Before Renewal Date is Required to be a number',
-                        'dataError'   => $data.fieldFail.days_before_renewal
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Days After Renewal Date *}
-                    {$ui = [
-                        'value'       => $data.fieldData.days_after_expired,
-                        'field'       => 'days_after_expired',
-                        'label'       => 'Days After Renewal Date',
-                        'pattern'     => 'number',
-                        'required'    => $data.fieldRequired.days_after_expired,
-                        'errorText'   => 'Days After Renewal Date is Required to be a number',
-                        'dataError'   => $data.fieldFail.days_after_expired
-                    ]}
-                    {include file='ui/f6/text.html'}
-
-                    {* Show Account # *}
-                    {$ui = [
-                        'value'     => $data.fieldData.invoice_show_account_number.value,
-                        'field'     => 'invoice_show_account_number',
-                        'label'     => 'Show Account #',
-                        'required'  => $data.fieldRequired.invoice_show_account_number,
-                        'errortext' => 'Show Account # is Required',
-                        'dataError' => $data.fieldFail.invoice_show_account_number
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Show Invoice # *}
-                    {$ui = [
-                        'value'     => $data.fieldData.invoice_show_invoice_number.value,
-                        'field'     => 'invoice_show_invoice_number',
-                        'label'     => 'Show Invoice #',
-                        'required'  => $data.fieldRequired.invoice_show_invoice_number,
-                        'errortext' => 'Show Invoice # is Required',
-                        'dataError' => $data.fieldFail.invoice_show_invoice_number
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Enable Account Number *}
-                    {$ui = [
-                        'value'     => $data.fieldData.account_number_enabled.value,
-                        'field'     => 'account_number_enabled',
-                        'label'     => 'Enable Account Number',
-                        'required'  => $data.fieldRequired.account_number_enabled,
-                        'errortext' => 'Enable Account Number is Required',
-                        'dataError' => $data.fieldFail.account_number_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Require Account Number *}
-                    {$ui = [
-                        'value'     => $data.fieldData.account_number_required.value,
-                        'field'     => 'account_number_required',
-                        'label'     => 'Require Account Number',
-                        'required'  => $data.fieldRequired.account_number_required,
-                        'errortext' => 'Require Account Number is Required',
-                        'dataError' => $data.fieldFail.account_number_required
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Allow Membership Choice When Renewing *}
-                    {$ui = [
-                        'value'     => $data.fieldData.allow_membership_choice.value,
-                        'field'     => 'allow_membership_choice',
-                        'label'     => 'Allow Membership Choice When Renewing',
-                        'required'  => $data.fieldRequired.allow_membership_choice,
-                        'errortext' => 'Allow Membership Choice When Renewing is Required',
-                        'dataError' => $data.fieldFail.allow_membership_choice
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Allow Employees *}
-                    {$ui = [
-                        'value'     => $data.fieldData.allow_employees.value,
-                        'field'     => 'allow_employees',
-                        'label'     => 'Allow Employees',
-                        'required'  => $data.fieldRequired.allow_employees,
-                        'errortext' => 'Allow Employees is Required',
-                        'dataError' => $data.fieldFail.allow_employees
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Use Member Types in Invoice Types *}
-                    {$ui = [
-                        'value'     => $data.fieldData.member_types_enabled.value,
-                        'field'     => 'member_types_enabled',
-                        'label'     => 'Use Member Types in Invoice Types',
-                        'required'  => $data.fieldRequired.member_types_enabled,
-                        'errortext' => 'Use Member Types in Invoice Types is Required',
-                        'dataError' => $data.fieldFail.member_types_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Enable Quickbooks *}
-                    {$ui = [
-                        'value'     => $data.fieldData.quickbooks_enabled.value,
-                        'field'     => 'quickbooks_enabled',
-                        'label'     => 'Enable Quickbooks',
-                        'required'  => $data.fieldRequired.quickbooks_enabled,
-                        'errortext' => 'Enable Quickbooks is Required',
-                        'dataError' => $data.fieldFail.quickbooks_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Enable Members Billing Tab *}
-                    {$ui = [
-                        'value'     => $data.fieldData.member_billing_enabled.value,
-                        'field'     => 'member_billing_enabled',
-                        'label'     => 'Enable Members Billing Tab',
-                        'required'  => $data.fieldRequired.member_billing_enabled,
-                        'errortext' => 'Enable Members Billing Tab is Required',
-                        'dataError' => $data.fieldFail.member_billing_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Require Billing Fields *}
-                    {$ui = [
-                        'value'     => $data.fieldData.billing_fields_required.value,
-                        'field'     => 'billing_fields_required',
-                        'label'     => 'Require Billing Fields',
-                        'required'  => $data.fieldRequired.billing_fields_required,
-                        'errortext' => 'Require Billing Fields is Required',
-                        'dataError' => $data.fieldFail.billing_fields_required
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Enable Invoice Methods *}
-                    {$ui = [
-                        'value'     => $data.fieldData.invoice_methods_enabled.value,
-                        'field'     => 'invoice_methods_enabled',
-                        'label'     => 'Enable Invoice Methods',
-                        'required'  => $data.fieldRequired.invoice_methods_enabled,
-                        'errortext' => 'Enable Invoice Methods is Required',
-                        'dataError' => $data.fieldFail.invoice_methods_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Enable Billing Counties *}
-                    {$ui = [
-                        'value'     => $data.fieldData.billing_county_enabled.value,
-                        'field'     => 'billing_county_enabled',
-                        'label'     => 'Enable Billing Counties',
-                        'required'  => $data.fieldRequired.billing_county_enabled,
-                        'errortext' => 'Enable Billing Counties is Required',
-                        'dataError' => $data.fieldFail.billing_county_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* Enable Billing Contact Name *}
-                    {$ui = [
-                        'value'     => $data.fieldData.billing_contact_name_enabled.value,
-                        'field'     => 'billing_contact_name_enabled',
-                        'label'     => 'Enable Billing Contact Name',
-                        'required'  => $data.fieldRequired.billing_contact_name_enabled,
-                        'errortext' => 'Enable Billing Contact Name is Required',
-                        'dataError' => $data.fieldFail.billing_contact_name_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
-
-                    {* All Members Renew same day each year *}
-                    {$ui = [
-                        'value'     => $data.fieldData.renewal_day_static.value,
-                        'field'     => 'renewal_day_static',
-                        'label'     => 'All Members Renew same day each year',
-                        'required'  => $data.fieldRequired.renewal_day_static,
-                        'errortext' => 'All Members Renew same day each year is Required',
-                        'dataError' => $data.fieldFail.renewal_day_static
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
+        <ul class="accordion" data-accordion data-allow-all-closed="true">
+
+            <li class="accordion-item is-active" data-accordion-item>
+                <a href="#" class="accordion-title"Main >Settings</a>
 
+                <div class="accordion-content" data-tab-content>
                     <div class="grid-x grid-margin-x">
-                        <div class="cell small-12">
-                            <label>Renewal Day Each Year</label>
-                        </div>
-                        <div class="cell small-6">
-                            {* Month *}
-                            {$ui = [
-                                'value'     => $data.fieldData.renewal_month,
-                                'field'     => 'renewal_month',
-                                'label'     => 'Month',
-                                'list'      => $renewal_month_opts,
-                                'l_blank'   => true,
-                                'required'  => $data.fieldRequired.renewal_month,
-                                'errorText' => 'Month is Required',
-                                'dataError' => $data.fieldFail.renewal_month
-                            ]}
-                            {include file='ui/f6/select.html'}
+                        <div class="cell small-12 large-6">
+
+                            <fieldset class="fieldset">
+                                <legend>Invoice Information</legend>
+
+                                {* Company Logo *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_logo,
+                                    'field'       => 'company_logo',
+                                    'label'       => 'Company Logo',
+                                    'required'    => $data.fieldRequired.company_logo,
+                                    'errorText'   => 'Company Logo is Required',
+                                    'helpText'    => '<br><span class="label">Best logo size: 400x200px. Must be jpeg or png.</span>',
+                                    'dataError'   => $data.fieldFail.company_logo
+                                ]}
+                                {include file='ui/f6/image.html'}
+
+                                {* Company Name *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_name,
+                                    'field'       => 'company_name',
+                                    'label'       => 'Company Name',
+                                    'required'    => $data.fieldRequired.company_name,
+                                    'errorText'   => 'Company Name is Required',
+                                    'dataError'   => $data.fieldFail.company_name
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company Name 2 *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_name2,
+                                    'field'       => 'company_name2',
+                                    'label'       => 'Company Name 2',
+                                    'required'    => $data.fieldRequired.company_name2,
+                                    'errorText'   => 'Company Name 2 is Required',
+                                    'dataError'   => $data.fieldFail.company_name2
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company Address 1 *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_addr1,
+                                    'field'       => 'company_addr1',
+                                    'label'       => 'Company Address 1',
+                                    'required'    => $data.fieldRequired.company_addr1,
+                                    'errorText'   => 'Company Address 1 is Required',
+                                    'dataError'   => $data.fieldFail.company_addr1
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company Address 2 *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_addr2,
+                                    'field'       => 'company_addr2',
+                                    'label'       => 'Company Address 2',
+                                    'required'    => $data.fieldRequired.company_addr2,
+                                    'errorText'   => 'Company Address 2 is Required',
+                                    'dataError'   => $data.fieldFail.company_addr2
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company City *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_city,
+                                    'field'       => 'company_city',
+                                    'label'       => 'Company City',
+                                    'required'    => $data.fieldRequired.company_city,
+                                    'errorText'   => 'Company City is Required',
+                                    'dataError'   => $data.fieldFail.company_city
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company State *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.company_state.value,
+                                    'field'     => 'company_state',
+                                    'label'     => 'Company State',
+                                    'list'      => $data.fieldData.company_state.list,
+                                    'l_label'   => 'name',
+                                    'l_value'   => 'value',
+                                    'l_blank'   => true,
+                                    'required'  => $data.fieldRequired.company_state,
+                                    'errorText' => 'Company State is Required',
+                                    'dataError' => $data.fieldFail.company_state
+                                ]}
+                                {include file='ui/f6/select.html'}
+
+                                {* Company Zip *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_zip,
+                                    'field'       => 'company_zip',
+                                    'label'       => 'Company Zip',
+                                    'required'    => $data.fieldRequired.company_zip,
+                                    'errorText'   => 'Company Zip is Required',
+                                    'dataError'   => $data.fieldFail.company_zip
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company Phone *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_phone,
+                                    'field'       => 'company_phone',
+                                    'label'       => 'Company Phone',
+                                    'required'    => $data.fieldRequired.company_phone,
+                                    'errorText'   => 'Company Phone is Required',
+                                    'dataError'   => $data.fieldFail.company_phone
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company Email *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_email,
+                                    'field'       => 'company_email',
+                                    'label'       => 'Company Email',
+                                    'required'    => $data.fieldRequired.company_email,
+                                    'errorText'   => 'Company Email is Required',
+                                    'dataError'   => $data.fieldFail.company_email
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Company URL *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_url,
+                                    'field'       => 'company_url',
+                                    'label'       => 'Company URL',
+                                    'required'    => $data.fieldRequired.company_url,
+                                    'errorText'   => 'Company URL is Required',
+                                    'dataError'   => $data.fieldFail.company_url
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Payment Terms *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.payment_terms,
+                                    'field'       => 'payment_terms',
+                                    'label'       => 'Payment Terms',
+                                    'required'    => $data.fieldRequired.payment_terms,
+                                    'errorText'   => 'Payment Terms is Required',
+                                    'dataError'   => $data.fieldFail.payment_terms
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+
+
+                            </fieldset>
                         </div>
-                        <div class="cell small-6">
-                            {* Day *}
-                            {$ui = [
-                                'value'     => $data.fieldData.renewal_day,
-                                'field'     => 'renewal_day',
-                                'label'     => 'Day',
-                                'list'      => $renewal_day_opts,
-                                'l_blank'   => true,
-                                'required'  => $data.fieldRequired.renewal_day,
-                                'errorText' => 'Day is Required',
-                                'dataError' => $data.fieldFail.renewal_day
-                            ]}
-                            {include file='ui/f6/select.html'}
+
+                        <div class="cell small-12 large-6">
+                            <fieldset class="fieldset">
+                                <legend>Membership Renewal Settings</legend>
+
+                                {* All Members Renew same day each year *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.renewal_day_static.value,
+                                    'field'     => 'renewal_day_static',
+                                    'label'     => 'All Members Renew same day each year',
+                                    'required'  => $data.fieldRequired.renewal_day_static,
+                                    'errortext' => 'All Members Renew same day each year is Required',
+                                    'dataError' => $data.fieldFail.renewal_day_static
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                <div class="grid-x grid-margin-x">
+                                    <div class="cell small-12">
+                                        <label>Renewal Day Each Year</label>
+                                    </div>
+                                    <div class="cell small-6">
+                                        {* Month *}
+                                        {$ui = [
+                                            'value'     => $data.fieldData.renewal_month,
+                                            'field'     => 'renewal_month',
+                                            'label'     => 'Month',
+                                            'list'      => $renewal_month_opts,
+                                            'l_blank'   => true,
+                                            'required'  => $data.fieldRequired.renewal_month,
+                                            'errorText' => 'Month is Required',
+                                            'dataError' => $data.fieldFail.renewal_month
+                                        ]}
+                                        {include file='ui/f6/select.html'}
+                                    </div>
+                                    <div class="cell small-6">
+                                        {* Day *}
+                                        {$ui = [
+                                            'value'     => $data.fieldData.renewal_day,
+                                            'field'     => 'renewal_day',
+                                            'label'     => 'Day',
+                                            'list'      => $renewal_day_opts,
+                                            'l_blank'   => true,
+                                            'required'  => $data.fieldRequired.renewal_day,
+                                            'errorText' => 'Day is Required',
+                                            'dataError' => $data.fieldFail.renewal_day
+                                        ]}
+                                        {include file='ui/f6/select.html'}
+                                    </div>
+                                </div>
+
+                                {* Days Before Renewal Date *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.days_before_renewal,
+                                    'field'       => 'days_before_renewal',
+                                    'label'       => 'Days Before Renewal Date',
+                                    'pattern'     => 'number',
+                                    'required'    => $data.fieldRequired.days_before_renewal,
+                                    'errorText'   => 'Days Before Renewal Date is Required to be a number',
+                                    'helpText'    => '<span class="label">Days before Renewal Date to Allow Membership Renewal. Based on 1 year after renewal date.</span>',
+                                    'dataError'   => $data.fieldFail.days_before_renewal
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Days After Renewal Date *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.days_after_expired,
+                                    'field'       => 'days_after_expired',
+                                    'label'       => 'Days After Renewal Date',
+                                    'pattern'     => 'number',
+                                    'required'    => $data.fieldRequired.days_after_expired,
+                                    'errorText'   => 'Days After Renewal Date is Required to be a number',
+                                    'helpText'    => '<span class="label">Days after Renewal Date to Expire Membership. Based on 1 year after renewal date.</span>',
+                                    'dataError'   => $data.fieldFail.days_after_expired
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Receipt Text *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.receipt_text,
+                                    'field'     => 'receipt_text',
+                                    'label'     => 'Receipt Text',
+                                    'height'    => 100,
+                                    'media'     => false,
+                                    'quicktags' => false,
+                                    'required'  => $data.fieldRequired.receipt_text,
+                                    'errortext' => 'Receipt Text is Required',
+                                    'dataError' => $data.fieldFail.receipt_text
+                                ]}
+                                {include file='ui/f6/editor.html'}
+
+                                {* Member Types that require billing *}
+                                {$ui = [
+                                    'value'     => $selectedMTRB,
+                                    'field'     => 'member_types_requiring_billing_option',
+                                    'label'     => 'Member Types that require billing',
+                                    'list'      => $member_types,
+                                    'l_label'   => 'name',
+                                    'l_value'   => 'id',
+                                    'l_blank'   => false,
+                                    'l_size'    => 5,
+                                    'required'  => false,
+                                    'errorText' => 'Member Types that require billing is Required',
+                                    'dataError' => $data.fieldFail.member_types_requiring_billing
+                                ]}
+                                {include file='ui/f6/multiselect.html'}
+
+                                {* Member Types that are Free *}
+                                {$ui = [
+                                    'value'     => $selectedMTFREE,
+                                    'field'     => 'member_types_free_option',
+                                    'label'     => 'Member Types that are Free',
+                                    'list'      => $member_types,
+                                    'l_label'   => 'name',
+                                    'l_value'   => 'id',
+                                    'l_blank'   => false,
+                                    'l_size'    => 5,
+                                    'required'  => false,
+                                    'errorText' => 'Member Types that require billing is Required',
+                                    'dataError' => $data.fieldFail.member_types_free
+                                ]}
+                                {include file='ui/f6/multiselect.html'}
+
+                            </fieldset>
                         </div>
+
                     </div>
+                </div>
 
-                    {* Create PDF Invoices *}
-                    {$ui = [
-                        'value'     => $data.fieldData.invoice_pdf_enabled.value,
-                        'field'     => 'invoice_pdf_enabled',
-                        'label'     => 'Create PDF Invoices',
-                        'required'  => $data.fieldRequired.invoice_pdf_enabled,
-                        'errortext' => 'Create PDF Invoices is Required',
-                        'dataError' => $data.fieldFail.invoice_pdf_enabled
-                    ]}
-                    {include file='ui/f6/checkbox.html'}
+            </li>
 
+            <li class="accordion-item" data-accordion-item>
+                <a href="#" class="accordion-title">Advanced Settings</a>
+                <div class="accordion-content" data-tab-content>
+                    <div class="grid-x grid-margin-x">
+                        <div class="cell small-12 large-6">
+                            <fieldset class*="fieldset">
+                                <legend>Advanced Settings</legend>
+
+                                {* Company Logo Width *}
+                                {$ui = [
+                                    'value'       => $data.fieldData.company_logo_width,
+                                    'field'       => 'company_logo_width',
+                                    'label'       => 'Company Logo Width',
+                                    'pattern'     => 'number',
+                                    'required'    => $data.fieldRequired.company_logo_width,
+                                    'errorText'   => 'Company Logo Width Must be numeric',
+                                    'dataError'   => $data.fieldFail.company_logo_width
+                                ]}
+                                {include file='ui/f6/text.html'}
+
+                                {* Show Account # *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.invoice_show_account_number.value,
+                                    'field'     => 'invoice_show_account_number',
+                                    'label'     => 'Show Account #',
+                                    'required'  => $data.fieldRequired.invoice_show_account_number,
+                                    'errortext' => 'Show Account # is Required',
+                                    'dataError' => $data.fieldFail.invoice_show_account_number
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Show Invoice # *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.invoice_show_invoice_number.value,
+                                    'field'     => 'invoice_show_invoice_number',
+                                    'label'     => 'Show Invoice #',
+                                    'required'  => $data.fieldRequired.invoice_show_invoice_number,
+                                    'errortext' => 'Show Invoice # is Required',
+                                    'dataError' => $data.fieldFail.invoice_show_invoice_number
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Enable Account Number *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.account_number_enabled.value,
+                                    'field'     => 'account_number_enabled',
+                                    'label'     => 'Enable Account Number',
+                                    'required'  => $data.fieldRequired.account_number_enabled,
+                                    'errortext' => 'Enable Account Number is Required',
+                                    'dataError' => $data.fieldFail.account_number_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Require Account Number *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.account_number_required.value,
+                                    'field'     => 'account_number_required',
+                                    'label'     => 'Require Account Number',
+                                    'required'  => $data.fieldRequired.account_number_required,
+                                    'errortext' => 'Require Account Number is Required',
+                                    'dataError' => $data.fieldFail.account_number_required
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Allow Membership Choice When Renewing *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.allow_membership_choice.value,
+                                    'field'     => 'allow_membership_choice',
+                                    'label'     => 'Allow Membership Choice When Renewing',
+                                    'required'  => $data.fieldRequired.allow_membership_choice,
+                                    'errortext' => 'Allow Membership Choice When Renewing is Required',
+                                    'dataError' => $data.fieldFail.allow_membership_choice
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Allow Employees *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.allow_employees.value,
+                                    'field'     => 'allow_employees',
+                                    'label'     => 'Allow Employees',
+                                    'required'  => $data.fieldRequired.allow_employees,
+                                    'errortext' => 'Allow Employees is Required',
+                                    'dataError' => $data.fieldFail.allow_employees
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Use Member Types in Invoice Types *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.member_types_enabled.value,
+                                    'field'     => 'member_types_enabled',
+                                    'label'     => 'Use Member Types in Invoice Types',
+                                    'required'  => $data.fieldRequired.member_types_enabled,
+                                    'errortext' => 'Use Member Types in Invoice Types is Required',
+                                    'dataError' => $data.fieldFail.member_types_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Enable Quickbooks *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.quickbooks_enabled.value,
+                                    'field'     => 'quickbooks_enabled',
+                                    'label'     => 'Enable Quickbooks',
+                                    'required'  => $data.fieldRequired.quickbooks_enabled,
+                                    'errortext' => 'Enable Quickbooks is Required',
+                                    'dataError' => $data.fieldFail.quickbooks_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Enable Members Billing Tab *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.member_billing_enabled.value,
+                                    'field'     => 'member_billing_enabled',
+                                    'label'     => 'Enable Members Billing Tab',
+                                    'required'  => $data.fieldRequired.member_billing_enabled,
+                                    'errortext' => 'Enable Members Billing Tab is Required',
+                                    'dataError' => $data.fieldFail.member_billing_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Require Billing Fields *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.billing_fields_required.value,
+                                    'field'     => 'billing_fields_required',
+                                    'label'     => 'Require Billing Fields',
+                                    'required'  => $data.fieldRequired.billing_fields_required,
+                                    'errortext' => 'Require Billing Fields is Required',
+                                    'dataError' => $data.fieldFail.billing_fields_required
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Enable Invoice Methods *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.invoice_methods_enabled.value,
+                                    'field'     => 'invoice_methods_enabled',
+                                    'label'     => 'Enable Invoice Methods',
+                                    'required'  => $data.fieldRequired.invoice_methods_enabled,
+                                    'errortext' => 'Enable Invoice Methods is Required',
+                                    'dataError' => $data.fieldFail.invoice_methods_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Enable Billing Counties *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.billing_county_enabled.value,
+                                    'field'     => 'billing_county_enabled',
+                                    'label'     => 'Enable Billing Counties',
+                                    'required'  => $data.fieldRequired.billing_county_enabled,
+                                    'errortext' => 'Enable Billing Counties is Required',
+                                    'dataError' => $data.fieldFail.billing_county_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Enable Billing Contact Name *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.billing_contact_name_enabled.value,
+                                    'field'     => 'billing_contact_name_enabled',
+                                    'label'     => 'Enable Billing Contact Name',
+                                    'required'  => $data.fieldRequired.billing_contact_name_enabled,
+                                    'errortext' => 'Enable Billing Contact Name is Required',
+                                    'dataError' => $data.fieldFail.billing_contact_name_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+                                {* Create PDF Invoices *}
+                                {$ui = [
+                                    'value'     => $data.fieldData.invoice_pdf_enabled.value,
+                                    'field'     => 'invoice_pdf_enabled',
+                                    'label'     => 'Create PDF Invoices',
+                                    'required'  => $data.fieldRequired.invoice_pdf_enabled,
+                                    'errortext' => 'Create PDF Invoices is Required',
+                                    'dataError' => $data.fieldFail.invoice_pdf_enabled
+                                ]}
+                                {include file='ui/f6/checkbox.html'}
+
+
+                            </fieldset>
+                        </div>
+                    </div>
+                </div>
 
-                </fieldset>
-            </div>
+            </li>
 
-        </div>
+        </ul>
 
         <input class="button button-primary" type="submit" style="margin-top: 0;" value="Save">