Removd a couple request status values that are not currently needed.
*
* @param string $where Where clause to filter list
* @param boolean $getStats Flag to get additional stats for cart
+ * @param string $orderBy ORDER BY clause for results
+ * @param boolean $includeSummary Include HTML summary of submitted request if true
*
* @return object Class object
*/
- public function getRegRequestListSimplified($where = false, $getStats = false)
+ public function getRegRequestListSimplified($where = false, $getStats = false, $orderBy = '', $includeSummary = false)
{
$savedFields = $this->fields;
'account_lname' => $savedFields['account_lname'],
'status' => $savedFields['status'],
'date_created' => $savedFields['date_created'],
- 'last_update' => $savedFields['last_update']
+ 'last_update' => $savedFields['last_update'],
+ 'total' => $savedFields['total']
);
- $requestsSimplified = $this->getList($where);
+ if ($includeSummary) {
+ $this->fields['summary'] = $savedFields['summary'];
+ }
+
+ $requestsSimplified = $this->getList($where, $orderBy);
$this->fields = $savedFields;
$this->postProcRegRequest = $savedPostProcess;
;
submission_status[0] = 'In Cart'
submission_status[10] = 'Complete'
-submission_status[20] = 'Unpaid'
+; submission_status[20] = 'Unpaid'
submission_status[30] = 'Card Pending'
-submission_status[40] = 'Card Declined'
+; submission_status[40] = 'Card Declined'
submission_status[50] = 'Payment Pending'
submission_status[60] = 'Pay On Arrival'
submission_status[70] = 'Administrative Hold'
$prevStart = false;
$nextStart = false;
$start = 1;
-$limit = 20; // Set to the number of listings per page
+$limit = 10; // Set to the number of listings per page
$namesList = false;
$textSearch = false;
$haveRegEvent = false;
$alphaWhere = '';
$where = ' TRUE ';
+$haveRequests = false;
}
}
+
// Get full list of event names matching the current where clause for text search box
$namesList = $this->getSimpleRegEventsList($where);
+/*
+ * Build list of status options for display of request reccords.
+ */
+$statusSelected = $this->config['submission_status_numb']['PAYMENT_PEND'];
+if (isset($_REQUEST['request_status_select'])) {
+ $statusSelected = $_REQUEST['request_status_select'];
+}
+
+/**
+ * ******* TEMPORARY - USE SAME FUNCTION IN MAIN PLUGIN WHEN THAT'S UPDATED (less the number 2 at the end) *************
+ */
+// require_once GLM_MEMBERS_REGISTRATIONS_MAIN_PLUGIN_PATH.'/classes/glmPluginSupport.php';
+function glmMembersConfigArraySetup2( $configTable, $configNumbTable = false, $configSelectedArray = false)
+{
+
+ // Check if config table array exits
+ if (!is_array($configTable) || count($configTable) == 0) {
+ return false;
+ }
+
+ // Build base array
+ $conf = array();
+ foreach ($configTable as $key=>$descr) {
+ $conf[$key] = array(
+ 'id' => $key,
+ 'descr' => $descr,
+ 'name' => false,
+ 'selected' => false
+ );
+ }
+
+ // If name->number array add that data
+ if (is_array($configNumbTable) && count($configNumbTable) > 0) {
+ foreach ($configNumbTable as $name=>$key) {
+ if (isset($conf[$key])) {
+ $conf[$key]['name'] = $name;
+ }
+ }
+ }
+
+ // If a selected array is provided, add that data
+ if (is_array($configSelectedArray) && count($configSelectedArray) > 0) {
+ foreach ($configSelectedArray as $key) {
+ if (isset($conf[$key])) {
+ $conf[$key]['selected'] = true;
+ }
+ }
+ }
+
+ return $conf;
+
+}
+
+// Check for an update to the status of a request
+if (isset($_REQUEST['option2']) && $_REQUEST['option2'] == 'updateStatus' && isset($_REQUEST['requestId']) && isset($_REQUEST['status'])) {
+
+ // Make sure we have the required parameters
+ $requestId = ($_REQUEST['requestId']-0);
+ $status = ($_REQUEST['status']-0);
+ if ($requestId > 0 && $status > 0) {
+ $sql = "
+ UPDATE ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request
+ SET status = $status
+ WHERE id = $requestId
+ ";
+ $this->wpdb->query($sql);
+ }
+
+}
+
+// Get list of request status options for selection except certain ones. - Save a copy with all options for edit.
+$requestStatusSelect = glmMembersConfigArraySetup($this->config['submission_status'], $this->config['submission_status_numb']);
+$requestStatusEditSelect = $requestStatusSelect;
+unset($requestStatusSelect[$this->config['submission_status_numb']['CART']]);
+unset($requestStatusEditSelect[$this->config['submission_status_numb']['CART']]);
+unset($requestStatusSelect[$this->config['submission_status_numb']['COMPLETE']]);
+unset($requestStatusSelect[$this->config['submission_status_numb']['FAILED']]);
+unset($requestStatusSelect[$this->config['submission_status_numb']['CANCELED']]);
+
+// Get list of requests matching selection status
+require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegRequest.php';
+$Requests = new GlmDataRegistrationsRegRequest($this->wpdb, $this->config);
+$requests = $Requests->getRegRequestListSimplified("status = $statusSelected", false, 'bill_lname, bill_fname', true);
+if (is_array($requests) && count($requests) > 0) {
+ $haveRequests = true;
+}
+
$templateData = array(
'regEventsCount' => $regEventsCount,
'haveRegEvents' => $haveRegEvents,
'namesList' => $namesList,
'textSearch' => $textSearch,
'regEvent' => $regEvent,
- 'haveRegEvent' => $haveRegEvent
+ 'haveRegEvent' => $haveRegEvent,
+ 'requestStatusEditSelect' => $requestStatusEditSelect,
+ 'requestStatusSelect' => $requestStatusSelect,
+ 'statusSelected' => $statusSelected,
+ 'haveRequests' => $haveRequests,
+ 'requests' => $requests
);
$view = 'eventsDashboard';
<span class="glm-nowrap">
<b>Time Selected</b>
<select name="time">
- <option value=""></option>
+ <option value=""></option>Card De
{foreach $times as $time}
{if $time.start_datetime.timestamp}
<option value="{$time.id}"{if $selectedTime == $time.id} selected{/if}>{$time.start_datetime.datetime}</option>
{/if}
</div>
+
+<div class="glm-admin-table-inner glm-admin-table">
+ <p>
+ <h2 class="glm-admin-table-header">List of {$terms.reg_term_registration_cap} Requests Needing Attention</h2>
+ </p>
+ <form action="{$thisUrl}?page={$thisPage}" method="post" id="searchForm">
+ <div class="glm-row">
+ <b>Selected Status:</b>
+ {foreach $requestStatusSelect as $s}
+ <input type="radio" value="{$s.id}" name="request_status_select" value="{$s.id}" onChange="this.form.submit();"{if $s.id == $statusSelected}checked{/if}> {$s.descr}
+ {/foreach}
+ </div>
+ </form>
+ <table class="wp-list-table striped glm-admin-table-single">
+ <thead>
+ <tr>
+ <th>Request ID</th>
+ <th>Requested By</th>
+ <th>Status</th>
+ <th>Total</th>
+ <th>Date Created</th>
+ <th>Last Update</th>
+ </tr>
+ </thead>
+ <tbody>
+{if $haveRequests}
+ {assign var="i" value="0"}
+ {foreach $requests as $r}
+ {if $i++ is odd by 1}
+ <tr id="glmRegRequestLine_{$r.id}" data-request="{$r.id}" class="glm-request-line">
+ {else}
+ <tr id="glmRegRequestLine_{$r.id}" data-request="{$r.id}" class="glm-request-line alternate">
+ {/if}
+ <td style="width: 50px;">
+ <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-requests&option=requestDashboard&requestID={$r.id}">{$r.id}</a>
+ </td>
+ <td>{$r.account_fname} {$r.account_lname}</td>
+ <td>{$r.status.nameEsc}</td>
+ <td>{$r.total}
+ <td>{$r.date_created.datetime}</td>
+ <td>{$r.last_update.datetime}</td>
+ </tr>
+ <tr id="requestLinks_{$r.id}" class="glm-hidden glm-request-links">
+ <td colspan="6" style="padding: .8rem; background-color: #fff;">
+ <span class="attendee-edit-link">
+ <a id="glm-request-link_{$r.id}" href="#" data-request="{$r.id}" class="glm-request-link">Edit Request Status</a> |
+ <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-requests&option=requestDashboard&requestID={$r.id}">View Request Detail</a>
+ </span>
+ <br>
+ </td>
+ </tr>
+ <tr id="requestEdit_{$r.id}" class="glm-hidden glm-request-detail">
+ <td colspan="6" style="padding: .8rem; background-color: #f8ffff; border: 1px solid black;">
+ <div>
+ <h2>Edit This Request</h2>
+ <b>Set Status To:</b>
+ {foreach $requestStatusEditSelect as $s}
+ <input type="radio" value="{$s.id}" name="glm_request_status_{$r.id}" value="{$s.id}" onChange="this.form.submit();"{if $s.id == $statusSelected}checked{/if}> {$s.descr}
+ {/foreach}
+ <br>
+ <span class="button button-small glm-request-edit-save">Save</span>
+ <span class="button button-small glm-cancel-link">Cancel Edit</span>
+ <p />
+ </div>
+ <div>
+ <b>NOTE:</b> The summary below is a copy from when the request was submitted. Any changes to {$terms.reg_term_attendee_plur} after that are not shown here.<br>
+ {$r.summary}
+ </div>
+ </td>
+ </tr>
+ {/foreach}
+{else}
+ <tr class="alternate"><td colspan="2">(no requests with selected status)</td></tr>
+{/if}
+ </tbody>
+ </table>
+</div>
+
<script type="text/javascript">
jQuery(document).ready(function($) {
var availableTags = [
{foreach $namesList as $m}
{ label: "{$m.event_name|unescape:'html'|replace:'"':''}", value: "{$m.event_name|unescape:'html'|replace:'"':''}", id: '{$m.id}' },
- {/foreach}
+ {/foreach}
];
// Autocomplete for list Text Search
$('#filterCategories').multiselect();
$('#exportFilterCategories').multiselect();
+ // Request Line Hover Action
+ var requestEditId = false;
+ var requestHoverId = false;
+ $('.glm-request-line').mouseenter( function() {
+ if (requestEditId) {
+ return;
+ }
+ requestHoverId = $(this).attr('data-request');
+ $('.glm-request-links').addClass('glm-hidden');
+ $('#requestLinks_' + requestHoverId).removeClass('glm-hidden');
+ });
+
+ // Request Edit Action
+ $('.glm-request-link').on('click', function() {
+ requestEditId = $(this).attr('data-request');
+ $('#requestEdit_' + requestEditId).removeClass('glm-hidden');
+ });
+
+ // Cancel Edit Action
+ $('.glm-cancel-link').on('click', function() {
+ if (!requestEditId) {
+ return;
+ }
+ $('#glm-request-link_' + requestEditId).focus();
+ $('.glm-request-detail').addClass('glm-hidden');
+ requestEditId = false;
+ });
+
+ // Request Edit Save Action
+ $('.glm-request-edit-save').on('click', function() {
+ var statusSelected = $('input[name=glm_request_status_' + requestEditId + ']:checked').val();
+ window.location.replace("{$adminUrl}?page=glm-members-admin-menu-registrations-events&option=dashboard&option2=updateStatus&requestId=" + requestEditId + "&status=" + statusSelected );
+ });
+
});
</script>