Skip to content

Commit

Permalink
Merge pull request #10362 from jitendrapurohit/CRM-20562
Browse files Browse the repository at this point in the history
CRM-20562: Duplicate Activities created during participant registration v…
  • Loading branch information
monishdeb authored May 19, 2017
2 parents 4e7ddfe + b56b628 commit 629574b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
3 changes: 2 additions & 1 deletion CRM/Activity/BAO/Activity.php
Original file line number Diff line number Diff line change
Expand Up @@ -2107,6 +2107,7 @@ public static function addActivity(
$id = CRM_Core_Session::getLoggedInContactID();
if ($id) {
$activityParams['source_contact_id'] = $id;
$activityParams['target_contact_id'][] = $activity->contact_id;
}

// CRM-14945
Expand All @@ -2115,7 +2116,7 @@ public static function addActivity(
}
//CRM-4027
if ($targetContactID) {
$activityParams['target_contact_id'] = $targetContactID;
$activityParams['target_contact_id'][] = $targetContactID;
}
// @todo - use api - remove lots of wrangling above. Remove deprecated fatal & let form layer
// deal with any exceptions.
Expand Down
4 changes: 0 additions & 4 deletions CRM/Contribute/BAO/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -4727,10 +4727,6 @@ public static function completeOrder(&$input, &$ids, $objects, $transaction, $re
$contribution->contact_id = $ids['related_contact'];
}
CRM_Activity_BAO_Activity::addActivity($contribution, NULL, $targetContactID);
// event
}
else {
CRM_Activity_BAO_Activity::addActivity($participant);
}

// CRM-9132 legacy behaviour was that receipts were sent out in all instances. Still sending
Expand Down
16 changes: 13 additions & 3 deletions tests/phpunit/api/v3/ContributionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2704,7 +2704,7 @@ public function testCompleteTransactionUpdatePledgePayment() {
public function testCompleteTransactionWithParticipantRecord() {
$mut = new CiviMailUtils($this, TRUE);
$mut->clearMessages();
$this->createLoggedInUser();
$this->_individualId = $this->createLoggedInUser();
$contributionID = $this->createPendingParticipantContribution();
$this->callAPISuccess('contribution', 'completetransaction', array(
'id' => $contributionID,
Expand All @@ -2715,6 +2715,16 @@ public function testCompleteTransactionWithParticipantRecord() {
'return' => 'participant_status_id',
));
$this->assertEquals(1, $participantStatus);

//Assert only three activities are created.
$activities = CRM_Activity_BAO_Activity::getContactActivity($this->_individualId);
$this->assertEquals(3, count($activities));
$activityNames = array_count_values(CRM_Utils_Array::collect('activity_name', $activities));
// record two activities before and after completing payment for Event registration
$this->assertEquals(2, $activityNames['Event Registration']);
// update the original 'Contribution' activity created after completing payment
$this->assertEquals(1, $activityNames['Contribution']);

$mut->checkMailLog(array(
'Annual CiviCRM meet',
'Event',
Expand Down Expand Up @@ -3104,9 +3114,9 @@ public function createPendingPledgeContribution() {
*/
public function createPendingParticipantContribution() {
$event = $this->eventCreate(array('is_email_confirm' => 1, 'confirm_from_email' => 'test@civicrm.org'));
$participantID = $this->participantCreate(array('event_id' => $event['id'], 'status_id' => 6));
$participantID = $this->participantCreate(array('event_id' => $event['id'], 'status_id' => 6, 'contact_id' => $this->_individualId));
$this->_ids['participant'] = $participantID;
$params = array_merge($this->_params, array('contribution_status_id' => 2, 'financial_type_id' => 'Event Fee'));
$params = array_merge($this->_params, array('contact_id' => $this->_individualId, 'contribution_status_id' => 2, 'financial_type_id' => 'Event Fee'));
$contribution = $this->callAPISuccess('contribution', 'create', $params);
$this->callAPISuccess('participant_payment', 'create', array(
'contribution_id' => $contribution['id'],
Expand Down

0 comments on commit 629574b

Please sign in to comment.