Update dashboard and account list with filters.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 28 Mar 2018 19:33:58 +0000 (15:33 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 28 Mar 2018 19:33:58 +0000 (15:33 -0400)
Adding filters for account list.
Adding Active filter.

classes/billingSupport.php
models/admin/ajax/accountsListExport.php
models/admin/billing/accounts.php
models/admin/member/billing.php
views/admin/billing/accountSearchForm.html
views/admin/billing/exportBillingModal.html
views/admin/billing/memberBillingSubHeader.html

index a9c543f..dcb9f18 100644 (file)
@@ -930,7 +930,7 @@ class GlmBillingSupport
         );
     }
 
-    public function processMemberRenewal( $account_id, $invoice_id, $amount )
+    public function processMemberRenewal( $account_id, $invoice_id, $amount, $employees = array() )
     {
         $errors = array();
         // Get the selected credit card processor type
@@ -1069,7 +1069,7 @@ class GlmBillingSupport
                 // $errors[] = $ccResult['statusText'];
                 // $errors[] = $ccResult['description'];
 
-                // TODO: Need to update the members account renewal_date
+                // Need to update the members account renewal_date
                 $this->wpdb->update(
                     GLM_MEMBERS_BILLING_PLUGIN_DB_PREFIX . 'accounts',
                     array( 'renewal_date' => date( 'Y-m-d' ) ),
@@ -1077,6 +1077,18 @@ class GlmBillingSupport
                     array( '%s' ),
                     array( '%d' )
                 );
+                // TODO: Need to update any employees renewal dates
+                if ( isset( $employees ) && is_array( $employees ) && !empty( $employees ) ) {
+                    foreach ( $employees as $employee ) {
+                        $this->wpdb->update(
+                            GLM_MEMBERS_BILLING_PLUGIN_DB_PREFIX . 'accounts',
+                            array( 'renewal_date' => date( 'Y-m-d' ) ),
+                            array( 'id' => $employee ),
+                            array( '%s' ),
+                            array( '%d' )
+                        );
+                    }
+                }
 
             }
 
index ac647fe..4dd2793 100644 (file)
@@ -159,6 +159,11 @@ class GlmMembersAdmin_ajax_accountsListExport extends GlmDataAccounts
         $days_after_expired  = $this->config['settings']['days_after_expired'];
         $curDate             = date( 'Y-m-d' );
 
+        if ( isset( $_REQUEST['filterActive'] ) ) {
+            $filterActive = filter_var( $_REQUEST['filterActive'], FILTER_VALIDATE_BOOLEAN );
+            $where_params[] = "T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY  > '$curDate'";
+            $filterActive = true;
+        }
         if ( isset( $_REQUEST['filterPending'] ) ) {
             $filterPending = filter_var( $_REQUEST['filterPending'], FILTER_VALIDATE_BOOLEAN );
             // $where_params[] = "renewal_date >= now()";
@@ -169,14 +174,12 @@ class GlmMembersAdmin_ajax_accountsListExport extends GlmDataAccounts
         }
         if ( isset( $_REQUEST['filterOverdue'] ) ) {
             $filterOverdue = filter_var( $_REQUEST['filterOverdue'], FILTER_VALIDATE_BOOLEAN );
-            $expiredDate    = date( 'Y-m-d', mktime( 0, 0, 0, date( 'n' ), date( 'j' ) - 30, date( 'Y' )) );
-            $where_params[] = "renewal_date < now()";
-            $where_params[] = "renewal_date >= '$expiredDate'";
+            $where_params[] = "T.renewal_date + INTERVAL 1 YEAR < '$curDate'";
+            $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate'";
         }
         if ( isset( $_REQUEST['filterExpired'] ) ) {
             $filterExpired = filter_var( $_REQUEST['filterExpired'], FILTER_VALIDATE_BOOLEAN );
-            $expiredDate    = date( 'Y-m-d', mktime( 0, 0, 0, date( 'n' ), date( 'j' ) - 30, date( 'Y' )) );
-            $where_params[] = "renewal_date < '$expiredDate'";
+            $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY < '$curDate'";
         }
 
         // Build the $where string from the $where_parts array.
index 93bb372..a3a3451 100644 (file)
@@ -126,6 +126,7 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts
         $filterPending      = false;
         $filterOverdue      = false;
         $filterExpired      = false;
+        $filterActive       = false;
         $searchName         = false;
 
         // Get any provided option
@@ -383,6 +384,10 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts
             $days_after_expired  = $this->config['settings']['days_after_expired'];
             $curDate             = date( 'Y-m-d' );
 
+            if ( isset( $_REQUEST['filterActive'] ) ) {
+                $filterActive = filter_var( $_REQUEST['filterActive'], FILTER_VALIDATE_BOOLEAN );
+                $where_params[] = "T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY  > '$curDate'";
+            }
             if ( isset( $_REQUEST['filterPending'] ) ) {
                 $filterPending = filter_var( $_REQUEST['filterPending'], FILTER_VALIDATE_BOOLEAN );
                 // $where_params[] = "T.renewal_date >= now()";
@@ -391,17 +396,11 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts
             }
             if ( isset( $_REQUEST['filterOverdue'] ) ) {
                 $filterOverdue = filter_var( $_REQUEST['filterOverdue'], FILTER_VALIDATE_BOOLEAN );
-                // $expiredDate    = date( 'Y-m-d', mktime( 0, 0, 0, date( 'n' ), date( 'j' ) - 30, date( 'Y' )) );
-                // $where_params[] = "T.renewal_date < '$curDate'";
-                // $where_params[] = "T.renewal_date >= '$expiredDate'";
                 $where_params[] = "T.renewal_date + INTERVAL 1 YEAR < '$curDate'";
-                // $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY < '$curDate'";
                 $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate'";
             }
             if ( isset( $_REQUEST['filterExpired'] ) ) {
                 $filterExpired = filter_var( $_REQUEST['filterExpired'], FILTER_VALIDATE_BOOLEAN );
-                // $expiredDate    = date( 'Y-m-d', mktime( 0, 0, 0, date( 'n' ), date( 'j' ) - 30, date( 'Y' )) );
-                // $where_params[] = "T.renewal_date < '$expiredDate'";
                 $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY < '$curDate'";
             }
 
@@ -480,6 +479,7 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts
             'filterOverdue'       => $filterOverdue,
             'searchName'          => $searchName,
             'filterExpired'       => $filterExpired,
+            'filterActive'        => $filterActive,
         );
 
         // Return status, any suggested view, and any data to controller
index 20a4768..020880d 100644 (file)
@@ -278,7 +278,7 @@ class GlmMembersAdmin_member_billing // extends GlmDataBilling
                 $account = $Accounts->editEntry( $accountID );
             } else {
                 // Do the Payment Processing.
-                $errors = $BillingSupport->processMemberRenewal( $invoice_data['account_id'], $invoice_id, $invoice_data['amount'] );
+                $errors = $BillingSupport->processMemberRenewal( $invoice_data['account_id'], $invoice_id, $invoice_data['amount'], $invoice_data['employees'] );
                 // echo '<pre>$errors: ' . print_r( $errors, true ) . '</pre>';
             }
 
index e6ad23f..870654e 100644 (file)
@@ -19,6 +19,7 @@
             </span>
         <br>
             <span class="glm-nowrap">
+                <input id="filterActive" name="filterActive" value="1" {if $filterActive}checked{/if} type="checkbox" /> Show Active Only
                 <input id="filterPending" name="filterPending" value="1" {if $filterPending}checked{/if} type="checkbox" /> Show Pending Only
                 <input id="filterOverdue" name="filterOverdue" value="1" {if $filterOverdue}checked{/if} type="checkbox" /> Show Overdue Only
                 <input id="filterExpired" name="filterExpired" value="1" {if $filterExpired}checked{/if} type="checkbox" /> Show Expired Only
index a938e6a..1672e56 100644 (file)
@@ -3,10 +3,11 @@
         <input type="hidden" name="action" value="glm_members_admin_ajax">
         <input type="hidden" name="glm_action" value="accountsListExport">
         <table class="glm-admin-table">
-            <tr><th>Show Overdue Only: </th><td><input type="checkbox" name="filterOverdue"></td></tr>
-            <tr><th>Show Archived Only: </th><td><input type="checkbox" name="filterArchived"></td></tr>
-            <tr><th>Show Expired Only: </th><td><input type="checkbox" name="filterExpired"></td></tr>
-            <tr><th>Show Pending Only: </th><td><input type="checkbox" name="filterPending"></td></tr>
+            <tr><th>Show Active Only: </th><td><input type="checkbox" name="filterActive" {if $filterActive}checked{/if}></td></tr>
+            <tr><th>Show Pending Only: </th><td><input type="checkbox" name="filterPending" {if $filterPending}checked{/if}></td></tr>
+            <tr><th>Show Overdue Only: </th><td><input type="checkbox" name="filterOverdue" {if $filterOverdue}checked{/if}></td></tr>
+            <tr><th>Show Archived Only: </th><td><input type="checkbox" name="filterArchived" {if $filterArchived}checked{/if}></td></tr>
+            <tr><th>Show Expired Only: </th><td><input type="checkbox" name="filterExpired" {if $filterExpired}checked{/if}></td></tr>
             <tr>
                 <th>Date Range Search: </th>
                 <td>
index 8f135c3..431590f 100644 (file)
@@ -20,7 +20,7 @@
                     href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$memberID}"
                     class="">All Statements</a>
             </li>
-            {if $account_status == 'Pending'}
+            {if $account_status == 'Pending' || $account_status == 'Expired'}
             <li>
                 <a
                     href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=billing&member={$memberID}&option=renew"