Attendee counts added to admin registrants events dashboard.
authorChuck Scott <cscott@gaslightmedia.com>
Mon, 20 Nov 2017 15:21:40 +0000 (10:21 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Mon, 20 Nov 2017 15:21:40 +0000 (10:21 -0500)
Added post processing option for getting attendee totals to dataRegEvent.php
Added getSimpleRegEventsList() option to ask for attendee totals in events.php
Added new columns for attedee totals to eventsDashboard.html

classes/data/dataRegEvent.php
models/admin/registrations/events.php
views/admin/registrations/eventsDashboard.html

index 73e0700..081a7bf 100644 (file)
@@ -86,7 +86,13 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract
      * @access public
      */
     public $postProcAddedEventData = false;
-
+    /**
+     * Flag to post process results to add registrant counts
+     *
+     * @var $postProcAddRegistrantsCount
+     * @access public
+     */
+    public $postProcAddRegistrantsCount = false;
 
     /**
      * Constructor
@@ -396,6 +402,24 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract
 
         }
 
+        if ($this->postProcAddRegistrantsCount) {
+
+            // Get sum of all attendee counts
+            $counts = $this->wpdb->get_row("
+               SELECT SUM(attendee_max) AS total, SUM(attendee_count) AS registered, SUM(attendees_pending) AS cartHold, SUM(attendees_available) AS curAvail
+               FROM ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_time
+               WHERE reg_event = ".$result_data['id']
+            , ARRAY_A);
+echo "<pre>".print_r($counts,1)."</pre>";
+            $result_data['total'] = $counts['total'];
+            $result_data['registered'] = $counts['registered'];
+            $result_data['cartHold'] = $counts['cartHold'];
+            $result_data['curAvail'] = $counts['curAvail'];
+            $result_data['totalAvail'] = $counts['cartHold'] + $counts['curAvail'];
+
+        }
+
+
         return $result_data;
     }
 
@@ -439,16 +463,20 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract
      * @param integer   $start      Starting at result #
      * @param integer   $limit      Limit results to this number
      * @param boolean   $extended   Add current base data for returned events
+     * @param boolean   $counts     True to return attendee total counts
      *
      * @return array Array of Name and ID for all reg events
      * @access public
      */
-    public function getSimpleRegEventsList($where = '', $order = '', $fieldVals = true, $idField = 'id', $start = false, $limit = false, $extended = false)
+    public function getSimpleRegEventsList($where = '', $order = '', $fieldVals = true, $idField = 'id', $start = false, $limit = false, $extended = false, $counts = false)
     {
 
         // Save status of extended data flag
         $saveExtended = $this->postProcAddedEventData;
 
+        // Ask for registrant counts
+        $this->postProcAddRegistrantsCount = $counts;
+
         // If extended data is requested, then set flag for post processing
         if ($extended) {
             $this->postProcAddedEventData = true;
@@ -461,7 +489,9 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract
         $this->fields = array(
             'id' => $fSave['id'],
             'event' => $fSave['event'],
-            'event_name' => $fSave['event_name']
+            'event_name' => $fSave['event_name'],
+            'first_datetime' => $fSave['first_datetime'],
+            'last_datetime' => $fSave['last_datetime']
         );
 
         $regEventsList = $this->getList($where, $order, $fieldVals, $idField, $start, $limit);
@@ -469,6 +499,9 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract
         // Restore the fields list
         $this->fields = $fSave;
 
+        // Turn off registrant counts
+        $this->postProcAddRegistrantsCount = false;
+
         // Restore status of extended data flag
         $this->postProcAddedEventData = $saveExtended;
 
@@ -785,7 +818,6 @@ class GlmDataRegistrationsRegEvent extends GlmDataAbstract
 
                             }
 
-
                         }
 
                     }
index 7fbba8c..877e640 100644 (file)
@@ -138,6 +138,10 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
             $regEventID = false;
         }
 
+        if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG) {
+            trigger_error("Registration Events: Admin option = $option ", E_USER_NOTICE);
+        }
+
         switch ($option) {
 
             case 'configureEvent':
@@ -360,7 +364,7 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                 $regEventsCount = $this->getStats($where);
 
                 // Get a current list of reg events
-                $listResult = $this->getSimpleRegEventsList($where.$alphaWhere, 'event_name', true, 'id', $start, $limit, true);
+                $listResult = $this->getSimpleRegEventsList($where.$alphaWhere, 'event_name', true, 'id', $start, $limit, true, true);
 
                 // Get paging results
                 $numbDisplayed = $listResult['returned'];
index e0304f6..65349ed 100644 (file)
             <tr>
                 <th>ID</th>
                 <th>Event Name</th>
+                <th>Maximum<br>Attendees</th>
+                <th>Registered</th>
+                <th>Cart<br>Hold</th>
+                <th>Currently<br>Available</th>
+                <th>Total<br>Available</th>
+                <th>First Date</th>
+                <th>Last Date</th>
                 <th>&nbsp;</th>
             </tr>
         </thead>
                 <td>
                    <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-events&option=eventDashboard&regEventID={$r.id}">{$r.event_name}</a>
                 </td>
+                <td>{$r.total}</td>
+                <td>{$r.registered}</td>
+                <td>{$r.cartHold}</td>
+                <td>{$r.curAvail}</td>
+                <td>{$r.totalAvail}</td>
+                <td>{$r.first_datetime.datetime}</td>
+                <td>{$r.last_datetime.datetime}</td>
                 <td>
                 {$r_link = apply_filters('glm_members_add_link_to_registrations_event_list_entry', $r.event)}
                 {if is_array($r_link)}