/** * * @param array $params * * @param bool $checkDuplicate * * @return array|bool * <type> */ function _civicrm_api3_deprecated_participant_check_params($params, $checkDuplicate = FALSE) { // check if participant id is valid or not if (!empty($params['id'])) { $participant = new CRM_Event_BAO_Participant(); $participant->id = $params['id']; if (!$participant->find(TRUE)) { return civicrm_api3_create_error(ts('Participant id is not valid')); } } require_once 'CRM/Contact/BAO/Contact.php'; // check if contact id is valid or not if (!empty($params['contact_id'])) { $contact = new CRM_Contact_BAO_Contact(); $contact->id = $params['contact_id']; if (!$contact->find(TRUE)) { return civicrm_api3_create_error(ts('Contact id is not valid')); } } // check that event id is not an template if (!empty($params['event_id'])) { $isTemplate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $params['event_id'], 'is_template'); if (!empty($isTemplate)) { return civicrm_api3_create_error(ts('Event templates are not meant to be registered.')); } } $result = array(); if ($checkDuplicate) { if (CRM_Event_BAO_Participant::checkDuplicate($params, $result)) { $participantID = array_pop($result); $error = CRM_Core_Error::createError("Found matching participant record.", CRM_Core_Error::DUPLICATE_PARTICIPANT, 'Fatal', $participantID); return civicrm_api3_create_error($error->pop(), array('contactID' => $params['contact_id'], 'participantID' => $participantID)); } } return TRUE; }
/** * CheckDuplicate() method ( Checking for Duplicate Participant returns array of participant id) */ public function testcheckDuplicate() { $duplicate = array(); //Creating 3 new participants for ($i = 0; $i < 3; $i++) { $partiId[] = Participant::create($this->_contactId, $this->_eventId); } $params = array('event_id' => $this->_eventId, 'contact_id' => $this->_contactId); $checkDuplicate = CRM_Event_BAO_Participant::checkDuplicate($params, $duplicate); $this->assertEquals(count($duplicate), 3, 'Equating the array contains with duplicate array.'); //Checking for the duplicate participant foreach ($duplicate as $key => $value) { $this->assertEquals($partiId[$key], $duplicate[$key], 'Equating the contactid which is in the database.'); } //Deleting all participant for ($i = 0; $i < 3; $i++) { $partidel[] = Participant::delete($partiId[$i]); } Contact::delete($this->_contactId); Event::delete($this->_eventId); }
/** * * @param <type> $params * @return <type> */ function civicrm_participant_check_params(&$params) { require_once 'CRM/Event/BAO/Participant.php'; $result = array(); if (CRM_Event_BAO_Participant::checkDuplicate($params, $result)) { $participantID = array_pop($result); $error = CRM_Core_Error::createError("Found matching participant record.", CRM_Core_Error::DUPLICATE_PARTICIPANT, 'Fatal', $participantID); return civicrm_create_error($error->pop(), array('contactID' => $params['contact_id'], 'participantID' => $participantID)); } return true; }