コード例 #1
0
/**
 *
 * @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;
}
コード例 #2
0
 /**
  * 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);
 }
コード例 #3
0
ファイル: Participant.php プロジェクト: ksecor/civicrm
/**
 *
 * @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;
}