Merge pull request #16438 from eileenmcnaughton/ev_clean
authorcolemanw <coleman@civicrm.org>
Fri, 31 Jan 2020 22:32:45 +0000 (17:32 -0500)
committerGitHub <noreply@github.com>
Fri, 31 Jan 2020 22:32:45 +0000 (17:32 -0500)
[REF] Pass params into function rather than this weird check for whether params exists.

1  2 
CRM/Event/Form/Participant.php

index d12d0a9d6e79ac046fee53d56e672018723310a0,bc650a2ace143e7a8a3dfb12aea68a499623caf5..ff13614c0668e3c8b6512805a41c63e60a6b52de
@@@ -107,60 -107,70 +107,70 @@@ class CRM_Event_Form_Participant extend
  
    /**
     * 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;