From 369412cda5e5bcb83b0eac3002046a4ae720c4b3 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Tue, 12 Jun 2018 14:43:54 -0400 Subject: [PATCH] Update account search and export to combine the filters. If any filter is selected it is combined with OR. So you can get export of pending and overdue. --- models/admin/ajax/accountsListExport.php | 56 ++++++++++++--------- models/admin/billing/accounts.php | 23 ++++++--- views/admin/billing/accountSearchForm.html | 8 +-- views/admin/billing/exportBillingModal.html | 6 +-- 4 files changed, 55 insertions(+), 38 deletions(-) diff --git a/models/admin/ajax/accountsListExport.php b/models/admin/ajax/accountsListExport.php index 7d71753..fa90508 100644 --- a/models/admin/ajax/accountsListExport.php +++ b/models/admin/ajax/accountsListExport.php @@ -78,24 +78,25 @@ class GlmMembersAdmin_ajax_accountsListExport extends GlmDataAccounts public function modelAction ($actionData = false) { - $categories = false; - $haveAccounts = false; - $list = false; - $success = false; - $filterPending = false; - $filterArchived = false; - $filterOverdue = false; - $filterExpired = false; - $haveFilter = false; - $numbDisplayed = false; - $lastDisplayed = false; - $paging = true; - $prevStart = false; - $nextStart = false; - $start = 1; - $limit = 20; // Set to the number of listings per page - $namesList = false; - $where_params = array(); + $categories = false; + $haveAccounts = false; + $list = false; + $success = false; + $filterPending = false; + $filterArchived = false; + $filterOverdue = false; + $filterExpired = false; + $haveFilter = false; + $numbDisplayed = false; + $lastDisplayed = false; + $paging = true; + $prevStart = false; + $nextStart = false; + $start = 1; + $limit = 20; // Set to the number of listings per page + $namesList = false; + $where_params = array(); + $sub_where_parts = array(); // Check selected fields $select = array( @@ -161,31 +162,36 @@ class GlmMembersAdmin_ajax_accountsListExport extends GlmDataAccounts 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'"; + $sub_where_parts[] = "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()"; - $where_params[] = "T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY <= '$curDate'"; - $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate'"; + $sub_where_parts[] = "(T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY <= '$curDate' AND " . + "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate')"; $filterPending = true; $haveFilter = true; } if ( isset( $_REQUEST['filterOverdue'] ) ) { $filterOverdue = filter_var( $_REQUEST['filterOverdue'], FILTER_VALIDATE_BOOLEAN ); - $where_params[] = "T.renewal_date + INTERVAL 1 YEAR < '$curDate'"; - $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate'"; + $sub_where_parts[] = "(T.renewal_date + INTERVAL 1 YEAR < '$curDate' AND " . + "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate')"; } if ( isset( $_REQUEST['filterExpired'] ) ) { $filterExpired = filter_var( $_REQUEST['filterExpired'], FILTER_VALIDATE_BOOLEAN ); - $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY < '$curDate'"; + $sub_where_parts[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY < '$curDate'"; + } + + if ( !empty( $sub_where_parts ) ) { + $where_params[] = "(" . implode( ' OR ', $sub_where_parts ) . ")"; } // Build the $where string from the $where_parts array. // By implode with AND. $where = implode( ' AND ', $where_params ); + // echo '
$where: ' . print_r( $where, true ) . '
'; + // exit; // Get a current list of accounts without paging $orderBy = 'renewal_date ASC'; diff --git a/models/admin/billing/accounts.php b/models/admin/billing/accounts.php index dc431f2..9b53dc7 100644 --- a/models/admin/billing/accounts.php +++ b/models/admin/billing/accounts.php @@ -296,6 +296,7 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts $allAccounts = $this->getSimpleAccountList(); $where_params = array( 'true' ); + $sub_where_parts = array(); // Check for paging // if ( isset( $_REQUEST['pageSelect'] ) ) { @@ -386,22 +387,32 @@ class GlmMembersAdmin_billing_accounts extends GlmDataAccounts 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'"; + // $where_params[] = "T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY > '$curDate'"; + $sub_where_parts[] = "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()"; - $where_params[] = "T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY <= '$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_before_renewal DAY <= '$curDate'"; + // $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate'"; + $sub_where_parts[] = "(T.renewal_date + INTERVAL 1 YEAR - INTERVAL $days_before_renewal DAY <= '$curDate' AND " . + "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate')"; } if ( isset( $_REQUEST['filterOverdue'] ) ) { $filterOverdue = filter_var( $_REQUEST['filterOverdue'], FILTER_VALIDATE_BOOLEAN ); - $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 < '$curDate'"; + // $where_params[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate'"; + $sub_where_parts[] = "(T.renewal_date + INTERVAL 1 YEAR < '$curDate' AND " . + "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY >= '$curDate')"; } if ( isset( $_REQUEST['filterExpired'] ) ) { $filterExpired = filter_var( $_REQUEST['filterExpired'], FILTER_VALIDATE_BOOLEAN ); - $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'"; + $sub_where_parts[] = "T.renewal_date + INTERVAL 1 YEAR + INTERVAL $days_after_expired DAY < '$curDate'"; + } + + if ( !empty( $sub_where_parts ) ) { + $where_params[] = "(" . implode( ' OR ', $sub_where_parts ) . ")"; } diff --git a/views/admin/billing/accountSearchForm.html b/views/admin/billing/accountSearchForm.html index 471bbf6..48058c0 100644 --- a/views/admin/billing/accountSearchForm.html +++ b/views/admin/billing/accountSearchForm.html @@ -95,10 +95,10 @@ jQuery(document).ready(function($) {
- Show Active Only - Show Pending Only - Show Overdue Only - Show Expired Only + Show Active + Show Pending + Show Overdue + Show Expired
diff --git a/views/admin/billing/exportBillingModal.html b/views/admin/billing/exportBillingModal.html index e11a78e..56d77dc 100644 --- a/views/admin/billing/exportBillingModal.html +++ b/views/admin/billing/exportBillingModal.html @@ -3,9 +3,9 @@ - - - + + + -- 2.17.1
Show Active Only:
Show Pending Only:
Show Overdue Only:
Show Active:
Show Pending:
Show Overdue:
Show Archived Only:
Show Expired Only: