CRM-15452 - ensure dupes not added when no event fee is used.
authorJamie McClelland <jm@mayfirst.org>
Tue, 14 Oct 2014 14:53:01 +0000 (10:53 -0400)
committerJamie McClelland <jm@mayfirst.org>
Tue, 14 Oct 2014 14:53:01 +0000 (10:53 -0400)
----------------------------------------
* CRM-15452: When no registration fee is involved, duplicate registration still created for event
  https://issues.civicrm.org/jira/browse/CRM-15452

CRM/Event/Form/Participant.php

index 3bb12477b11ca6807ec87b04e7e1954212fb4400..69ba3d965554e1861a61b40d2731f8be38a5b33f 100644 (file)
@@ -953,13 +953,17 @@ class CRM_Event_Form_Participant extends CRM_Contact_Form_Task {
     // (See above in formRule()). When adding more than one contact, the duplicates are
     // removed automatically and the user receives one notification.
     if ($this->_action & CRM_Core_Action::ADD) {
-      if(!$this->_single && !empty($this->_eventId)) {
+      $event_id = $this->_eventId;
+      if(empty($event_id) && !empty($params['event_id'])) {
+        $event_id = $params['event_id'];
+      }
+      if(!$this->_single && !empty($event_id)) {
         $duplicateContacts = 0;
         while(list($k,$dupeCheckContactId) = each($this->_contactIds)) {
           // Eliminate contacts that have already been assigned to this event.
           $dupeCheck = new CRM_Event_BAO_Participant;
           $dupeCheck->contact_id = $dupeCheckContactId;
-          $dupeCheck->event_id = $this->_eventId;
+          $dupeCheck->event_id = $event_id;
           $dupeCheck->find(TRUE);
           if(!empty($dupeCheck->id)) {
             $duplicateContacts++;