CRM-12714 Add is_test to params passed to CRM_Event_BAO_Event::eventTotalSeats to...
authorDave Greenberg <dave@civicrm.org>
Wed, 29 May 2013 03:24:12 +0000 (20:24 -0700)
committerDave Greenberg <dave@civicrm.org>
Wed, 29 May 2013 03:24:12 +0000 (20:24 -0700)
----------------------------------------
* CRM-12714: Actual Participants count on Find Participants is mistakenly displayed when search test participant records are present
  http://issues.civicrm.org/jira/browse/CRM-12714

CRM/Event/Form/Search.php

index df577e26d178e1d3daf35df4ed87d78b5591e45f..9d87f1b774f0b89ce9e83c29b90b5ca020cf536f 100644 (file)
@@ -271,20 +271,23 @@ class CRM_Event_Form_Search extends CRM_Core_Form {
       if (count($eventIds) == 1) {
         //convert form values to clause.
         $seatClause = array();
-        $clauseParams = array('participant_status_id', 'participant_role_id');
+        // Filter on is_test if specified in search form
+        if (CRM_Utils_Array::value('participant_test', $this->_formValues) == '1' || CRM_Utils_Array::value('participant_test', $this->_formValues) == '0' ) {
+          $seatClause[] = "( participant.is_test = {$this->_formValues['participant_test']} )";
+        }
         if (CRM_Utils_Array::value('participant_status_id', $this->_formValues)) {
           $statuses = array_keys($this->_formValues['participant_status_id']);
-
           $seatClause[] = '( participant.status_id IN ( ' . implode(' , ', $statuses) . ' ) )';
         }
         if (CRM_Utils_Array::value('participant_role_id', $this->_formValues)) {
           $roles = array_keys($this->_formValues['participant_role_id']);
-          $seatClause[] = '( participant.status_id IN ( ' . implode(' , ', $roles) . ' ) )';
+          $seatClause[] = '( participant.role_id IN ( ' . implode(' , ', $roles) . ' ) )';
         }
         $clause = NULL;
         if (!empty($seatClause)) {
           $clause = implode(' AND ', $seatClause);
         }
+
         $participantCount = CRM_Event_BAO_Event::eventTotalSeats(array_pop($eventIds), $clause);
       }
       $this->assign('participantCount', $participantCount);