From 1e6547ff4b696e8a827f0b6e301599d6e78bd9a1 Mon Sep 17 00:00:00 2001 From: jitendrapurohit Date: Wed, 22 Apr 2015 12:45:56 +0530 Subject: [PATCH] CRM-15357 fix Event 'delete participant' batch operation can show incorrect count --- CRM/Event/Form/Task/Delete.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CRM/Event/Form/Task/Delete.php b/CRM/Event/Form/Task/Delete.php index 467bd75801..c69c8a9dab 100644 --- a/CRM/Event/Form/Task/Delete.php +++ b/CRM/Event/Form/Task/Delete.php @@ -94,6 +94,7 @@ class CRM_Event_Form_Task_Delete extends CRM_Event_Form_Task { public function postProcess() { $params = $this->controller->exportValues($this->_name); + $participantLinks = NULL; if (CRM_Utils_Array::value('delete_participant', $params) == 2) { $links = array(); foreach ($this->_participantIds as $participantId) { @@ -104,15 +105,22 @@ class CRM_Event_Form_Task_Delete extends CRM_Event_Form_Task { $deletedParticipants = $additionalCount = 0; foreach ($this->_participantIds as $participantId) { if (CRM_Utils_Array::value('delete_participant', $params) == 1) { + $primaryParticipantId = CRM_Core_DAO::getFieldValue("CRM_Event_DAO_Participant", $participantId, 'registered_by_id', 'id'); if (CRM_Event_BAO_Participant::isPrimaryParticipant($participantId)) { $additionalIds = (CRM_Event_BAO_Participant::getAdditionalParticipantIds($participantId)); - $additionalCount = count($additionalIds); + $additionalCount += count($additionalIds); foreach ($additionalIds as $value) { CRM_Event_BAO_Participant::deleteParticipant($value); } CRM_Event_BAO_Participant::deleteParticipant($participantId); + $deletedParticipants++; + } + // delete participant only if it is not an additional participant + // or if it is additional and its primary participant is not selected in $this->_participantIds. + elseif ($primaryParticipantId == NULL || ($primaryParticipantId != NULL && !CRM_Utils_Array::crmInArray($primaryParticipantId, $this->_participantIds))) { + CRM_Event_BAO_Participant::deleteParticipant($participantId); + $deletedParticipants++; } - $deletedParticipants++; } else { CRM_Event_BAO_Participant::deleteParticipant($participantId); -- 2.25.1