* This class generates form components for processing Event.
*/
class CRM_Event_Form_Registration extends CRM_Core_Form {
+ use CRM_Financial_Form_FrontEndPaymentFormTrait;
/**
* How many locationBlocks should we display?
$this->_values['event']['participant_role'] = $participant_role["{$this->_values['event']['default_role_id']}"];
}
$isPayLater = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_eventId, 'is_pay_later');
+ $this->setPayLaterLabel($isPayLater ? $this->_values['event']['pay_later_text'] : '');
//check for various combinations for paylater, payment
//process with paid event.
if ($isMonetary && (!$isPayLater || !empty($this->_values['event']['payment_processor']))) {
$this->_values['event']
));
$this->assignPaymentProcessor($isPayLater);
-
}
//init event fee.
self::initEventFee($this, $this->_eventId);
$params['is_pay_later'] = CRM_Utils_Array::value('is_pay_later', $params, FALSE);
$this->assign('is_pay_later', $params['is_pay_later']);
if ($params['is_pay_later']) {
- $this->assign('pay_later_text', $this->_values['event']['pay_later_text']);
+ $this->assign('pay_later_text', $this->getPayLaterLabel());
$this->assign('pay_later_receipt', $this->_values['event']['pay_later_receipt']);
}
*
* @param int $contactID
* @param \CRM_Contribute_BAO_Contribution $contribution
+ *
+ * @throws \CiviCRM_API3_Exception
*/
public function confirmPostProcess($contactID = NULL, $contribution = NULL) {
// add/update contact information
}
if ($createPayment && $this->_values['event']['is_monetary'] && !empty($this->_params['contributionID'])) {
- $paymentParams = array(
+ $paymentParams = [
'participant_id' => $participant->id,
'contribution_id' => $contribution->id,
- );
- $paymentPartcipant = CRM_Event_BAO_ParticipantPayment::create($paymentParams);
+ ];
+ civicrm_api3('ParticipantPayment', 'create', $paymentParams);
}
$this->assign('action', $this->_action);
* @param int $contactID
*
* @return \CRM_Event_BAO_Participant
+ * @throws \CiviCRM_API3_Exception
*/
public static function addParticipant(&$form, $contactID) {
if (empty($form->_params)) {
* @param array $params
* Form values.
* @param int $contactID
+ *
+ * @throws \CiviCRM_API3_Exception
*/
public function processRegistration($params, $contactID = NULL) {
$session = CRM_Core_Session::singleton();
if ($this->_contributeMode != 'checkout' ||
$this->_contributeMode != 'notify'
) {
- $isTest = FALSE;
- if ($this->_action & CRM_Core_Action::PREVIEW) {
- $isTest = TRUE;
- }
+ $this->sendMails($params, $registerByID, $participantCount);
+ }
+ }
- //handle if no additional participant.
- if (!$registerByID) {
- $registerByID = $this->get('registerByID');
- }
- $primaryContactId = $this->get('primaryContactId');
+ /**
+ * Send Mail to participants.
+ *
+ * @param $params
+ * @param $registerByID
+ * @param array $participantCount
+ *
+ * @throws \CiviCRM_API3_Exception
+ */
+ private function sendMails($params, $registerByID, array $participantCount) {
+ $isTest = FALSE;
+ if ($this->_action & CRM_Core_Action::PREVIEW) {
+ $isTest = TRUE;
+ }
- //build an array of custom profile and assigning it to template.
- $additionalIDs = CRM_Event_BAO_Event::buildCustomProfile($registerByID, NULL,
- $primaryContactId, $isTest, TRUE
- );
+ //handle if no additional participant.
+ if (!$registerByID) {
+ $registerByID = $this->get('registerByID');
+ }
+ $primaryContactId = $this->get('primaryContactId');
- //lets carry all participant params w/ values.
- foreach ($additionalIDs as $participantID => $contactId) {
- $participantNum = NULL;
- if ($participantID == $registerByID) {
- $participantNum = 0;
- }
- else {
- if ($participantNum = array_search('participant', $participantCount)) {
- unset($participantCount[$participantNum]);
- }
- }
+ //build an array of custom profile and assigning it to template.
+ $additionalIDs = CRM_Event_BAO_Event::buildCustomProfile($registerByID, NULL,
+ $primaryContactId, $isTest, TRUE
+ );
- if ($participantNum === NULL) {
- break;
+ //lets carry all participant params w/ values.
+ foreach ($additionalIDs as $participantID => $contactId) {
+ $participantNum = NULL;
+ if ($participantID == $registerByID) {
+ $participantNum = 0;
+ }
+ else {
+ if ($participantNum = array_search('participant', $participantCount)) {
+ unset($participantCount[$participantNum]);
}
+ }
- //carry the participant submitted values.
- $this->_values['params'][$participantID] = $params[$participantNum];
+ if ($participantNum === NULL) {
+ break;
}
- //lets send mails to all with meanigful text, CRM-4320.
- $this->assign('isOnWaitlist', $this->_allowWaitlist);
- $this->assign('isRequireApproval', $this->_requireApproval);
+ //carry the participant submitted values.
+ $this->_values['params'][$participantID] = $params[$participantNum];
+ }
- foreach ($additionalIDs as $participantID => $contactId) {
- if ($participantID == $registerByID) {
- //set as Primary Participant
- $this->assign('isPrimary', 1);
+ //lets send mails to all with meanigful text, CRM-4320.
+ $this->assign('isOnWaitlist', $this->_allowWaitlist);
+ $this->assign('isRequireApproval', $this->_requireApproval);
- $customProfile = CRM_Event_BAO_Event::buildCustomProfile($participantID, $this->_values, NULL, $isTest);
+ foreach ($additionalIDs as $participantID => $contactId) {
+ if ($participantID == $registerByID) {
+ //set as Primary Participant
+ $this->assign('isPrimary', 1);
- if (count($customProfile)) {
- $this->assign('customProfile', $customProfile);
- $this->set('customProfile', $customProfile);
- }
- }
- else {
- $this->assign('isPrimary', 0);
- $this->assign('customProfile', NULL);
- }
+ $customProfile = CRM_Event_BAO_Event::buildCustomProfile($participantID, $this->_values, NULL, $isTest);
- //send Confirmation mail to Primary & additional Participants if exists
- CRM_Event_BAO_Event::sendMail($contactId, $this->_values, $participantID, $isTest);
+ if (count($customProfile)) {
+ $this->assign('customProfile', $customProfile);
+ $this->set('customProfile', $customProfile);
+ }
+ }
+ else {
+ $this->assign('isPrimary', 0);
+ $this->assign('customProfile', NULL);
}
+
+ //send Confirmation mail to Primary & additional Participants if exists
+ CRM_Event_BAO_Event::sendMail($contactId, $this->_values, $participantID, $isTest);
}
}