/**
* If event is paid or unpaid.
+ *
* @var bool
*/
public $_isPaidEvent;
/**
* Page action.
+ *
* @var int
*/
public $_action;
/**
* Role Id.
+ *
* @var int
*/
protected $_roleId = NULL;
/**
* Event Type Id.
+ *
* @var int
*/
protected $_eventTypeId = NULL;
/**
* Participant status Id.
+ *
* @var int
*/
protected $_statusId = NULL;
/**
* Cache all the participant statuses.
+ *
* @var array
*/
protected $_participantStatuses;
/**
* Participant mode.
+ *
* @var string
*/
public $_mode = NULL;
/**
* Event ID preselect.
+ *
* @var int
*/
public $_eID = NULL;
/**
* Line Item for Price Set.
+ *
* @var array
*/
public $_lineItem = NULL;
/**
* Contribution mode for event registration for offline mode.
+ *
* @var string
* @deprecated
*/
/**
* Store id of role custom data type ( option value )
+ *
* @var int
*/
protected $_roleCustomDataTypeID;
/**
* Store id of event Name custom data type ( option value)
+ *
* @var int
*/
protected $_eventNameCustomDataTypeID;
/**
* Selected discount id.
+ *
* @var int
*/
public $_originalDiscountId = NULL;
/**
* Event id.
+ *
* @var int
*/
public $_eventId = NULL;
/**
* Id of payment, if any
+ *
* @var int
*/
public $_paymentId = NULL;
/**
* Set variables up before form is built.
*
- * @return void
* @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
public function preProcess() {
parent::preProcess();
if (!empty($params['contact_id'])) {
$this->_contactID = $this->_contactId = $params['contact_id'];
}
+ if (!$this->_priceSetId && $this->_isPaidEvent) {
+ CRM_Core_Error::deprecatedFunctionWarning('this should never be true, handling to be removed');
+ }
if ($this->_priceSetId && $isQuickConfig = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) {
$this->_quickConfig = $isQuickConfig;
}
//participant method (addParticipant)
$this->_params['participant_status_id'] = $params['status_id'];
$this->_params['participant_role_id'] = is_array($params['role_id']) ? $params['role_id'] : explode(',', $params['role_id']);
- $this->_params['participant_register_date'] = $params['register_date'];
$roleIdWithSeparator = implode(CRM_Core_DAO::VALUE_SEPARATOR, $this->_params['participant_role_id']);
$now = date('YmdHis');
$fields['email-Primary'] = 1;
$params['email-Primary'] = $params["email-{$this->_bltID}"] = $this->_contributorEmail;
- $params['register_date'] = $now;
-
// now set the values for the billing location.
foreach ($this->_fields as $name => $dontCare) {
$fields[$name] = 1;
//CRM-15372 patch to fix fee amount replacing amount
$this->_params['fee_amount'] = $this->_params['amount'];
- $participants[] = $this->addParticipant($this, $contactID);
+ $participants[] = $this->addParticipant($this, $this->_params, $contactID);
//add custom data for participant
CRM_Core_BAO_CustomValueTable::postProcess($this->_params,
$sent = [];
$notSent = [];
if (!empty($params['send_receipt'])) {
- if (array_key_exists($params['from_email_address'], $this->_fromEmails['from_email_id'])) {
- $receiptFrom = $params['from_email_address'];
- }
$this->assign('module', 'Event Registration');
$this->assignEventDetailsToTpl($params['event_id'], CRM_Utils_Array::value('role_id', $params), CRM_Utils_Array::value('receipt_text', $params), $this->_isPaidEvent);
// try to send emails only if email id is present
// and the do-not-email option is not checked for that contact
if ($this->_contributorEmail and !$this->_toDoNotEmail) {
+ if (array_key_exists($params['from_email_address'], $this->_fromEmails['from_email_id'])) {
+ $receiptFrom = $params['from_email_address'];
+ }
$sendTemplateParams['from'] = $receiptFrom;
$sendTemplateParams['toName'] = $this->_contributorDisplayName;
$sendTemplateParams['toEmail'] = $this->_contributorEmail;
* Process the participant.
*
* @param CRM_Core_Form $form
+ * @param array $params
* @param int $contactID
*
* @return \CRM_Event_BAO_Participant
- * @throws \CiviCRM_API3_Exception
+ * @throws \CRM_Core_Exception
*/
- protected function addParticipant(&$form, $contactID) {
- if (empty($form->_params)) {
- return NULL;
- }
- $params = $form->_params;
+ protected function addParticipant(&$form, $params, $contactID) {
$transaction = new CRM_Core_Transaction();
- // handle register date CRM-4320
- $registerDate = NULL;
- if (!empty($form->_allowConfirmation) && $form->_participantId) {
- $registerDate = $params['participant_register_date'];
- }
- elseif (!empty($params['participant_register_date']) &&
- is_array($params['participant_register_date']) &&
- !empty($params['participant_register_date'])
- ) {
- $registerDate = CRM_Utils_Date::format($params['participant_register_date']);
- }
-
$participantFields = CRM_Event_DAO_Participant::fields();
- $participantParams = array(
+ $participantParams = [
'id' => CRM_Utils_Array::value('participant_id', $params),
'contact_id' => $contactID,
'event_id' => $form->_eventId ? $form->_eventId : $params['event_id'],
$params, 1
),
'role_id' => CRM_Utils_Array::value('participant_role_id', $params) ?: self::getDefaultRoleID(),
- 'register_date' => ($registerDate) ? $registerDate : date('YmdHis'),
+ 'register_date' => $params['register_date'],
'source' => CRM_Utils_String::ellipsify(
isset($params['participant_source']) ? CRM_Utils_Array::value('participant_source', $params) : CRM_Utils_Array::value('description', $params),
$participantFields['participant_source']['maxlength']
'discount_id' => CRM_Utils_Array::value('discount_id', $params),
'fee_currency' => CRM_Utils_Array::value('currencyID', $params),
'campaign_id' => CRM_Utils_Array::value('campaign_id', $params),
- );
+ ];
if ($form->_action & CRM_Core_Action::PREVIEW || CRM_Utils_Array::value('mode', $params) == 'test') {
$participantParams['is_test'] = 1;