From f7f14b5cc452156fd2917f97ea960084b608a9af Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Mon, 24 Apr 2017 16:00:24 +0530 Subject: [PATCH] use api instead --- CRM/Event/BAO/Participant.php | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/CRM/Event/BAO/Participant.php b/CRM/Event/BAO/Participant.php index 31746ed5f1..210b51c556 100644 --- a/CRM/Event/BAO/Participant.php +++ b/CRM/Event/BAO/Participant.php @@ -1207,18 +1207,22 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ CRM_Core_DAO::setFieldValue('CRM_Event_DAO_Participant', $participantID, 'status_id', $newStatusID); } - $additionalIds = self::getValidAdditionalIds($participantID, $oldStatusID, $newStatusID); - - if (!empty($additionalIds)) { - $cascadeAdditionalIds = implode(',', $additionalIds); - $query = "UPDATE civicrm_participant cp SET cp.status_id = %1 WHERE cp.id IN ({$cascadeAdditionalIds})"; - $params = array(1 => array($newStatusID, 'Integer')); - $dao = CRM_Core_DAO::executeQuery($query, $params); - //Call post hook after updating additional participant status. - foreach ($additionalIds as $id) { - CRM_Utils_Hook::post('edit', 'Participant', $id); + $cascadeAdditionalIds = self::getValidAdditionalIds($participantID, $oldStatusID, $newStatusID); + + if (!empty($cascadeAdditionalIds)) { + try { + foreach ($cascadeAdditionalIds as $id) { + $participantParams = array( + 'id' => $id, + 'status_id' => $newStatusID, + ); + civicrm_api3('Participant', 'create', $participantParams); + } + return TRUE; + } + catch (CiviCRM_API3_Exception $e) { + throw new CRM_Core_Exception('Failed to update additional participant status in database'); } - return TRUE; } return FALSE; } -- 2.25.1