From 3af759919f0802dfafee7cb4e035642125042aad Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 15 Sep 2014 18:17:26 +0100 Subject: [PATCH] Allow recreating recursions even from child event --- CRM/Core/BAO/RecurringEntity.php | 9 +++++++-- CRM/Core/Form/RecurringEntity.php | 8 ++++---- CRM/Core/Page/AJAX/RecurringEntity.php | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CRM/Core/BAO/RecurringEntity.php b/CRM/Core/BAO/RecurringEntity.php index 0c7253e901..ac6b4a1aa3 100644 --- a/CRM/Core/BAO/RecurringEntity.php +++ b/CRM/Core/BAO/RecurringEntity.php @@ -420,8 +420,13 @@ class CRM_Core_BAO_RecurringEntity extends CRM_Core_DAO_RecurringEntity { $dbParams['used_for'] = $formParams['used_for']; } - if(CRM_Utils_Array::value('parent_event_id', $formParams)){ - $dbParams['entity_value'] = $formParams['parent_event_id']; + if(CRM_Utils_Array::value('event_id', $formParams)){ + $parent_event_id = self::getParentFor($formParams['event_id'], 'civicrm_event'); + if($parent_event_id){ + $dbParams['entity_value'] = $parent_event_id; + }else{ + $dbParams['entity_value'] = $formParams['event_id']; + } } if(CRM_Utils_Array::value('repetition_start_date', $formParams)) { diff --git a/CRM/Core/Form/RecurringEntity.php b/CRM/Core/Form/RecurringEntity.php index 913475098e..468877aeff 100644 --- a/CRM/Core/Form/RecurringEntity.php +++ b/CRM/Core/Form/RecurringEntity.php @@ -259,16 +259,16 @@ class CRM_Core_Form_RecurringEntity { } //Delete relations if any from recurring entity tables before inserting new relations for this entity id - if($params['parent_event_id']){ - $getRelatedEntities = CRM_Core_BAO_RecurringEntity::getEntitiesForParent($params['parent_event_id'], 'civicrm_event', FALSE); + if($params['event_id']){ + $getRelatedEntities = CRM_Core_BAO_RecurringEntity::getEntitiesFor($params['event_id'], 'civicrm_event', TRUE); $participantDetails = CRM_Core_BAO_RecurringEntity::getParticipantCountforEvent($getRelatedEntities); //Check if participants exists for events foreach ($getRelatedEntities as $key => $value) { - if(!CRM_Utils_Array::value($value['id'], $participantDetails['countByID'])){ + if(!CRM_Utils_Array::value($value['id'], $participantDetails['countByID']) && $value['id'] != $params['event_id']){ CRM_Event_BAO_Event::del($value['id']); } } - CRM_Core_BAO_RecurringEntity::delEntityRelations($params['parent_event_id'], 'civicrm_event'); + CRM_Core_BAO_RecurringEntity::delEntityRelations($params['event_id'], 'civicrm_event'); } $recursion = new CRM_Core_BAO_RecurringEntity(); diff --git a/CRM/Core/Page/AJAX/RecurringEntity.php b/CRM/Core/Page/AJAX/RecurringEntity.php index db5cce2952..eb81cad5a6 100644 --- a/CRM/Core/Page/AJAX/RecurringEntity.php +++ b/CRM/Core/Page/AJAX/RecurringEntity.php @@ -69,7 +69,7 @@ class CRM_Core_Page_AJAX_RecurringEntity { } //Show the list of participants registered for the events if any - $getConnectedEntities = CRM_Core_BAO_RecurringEntity::getEntitiesForParent($parentEventId, 'civicrm_event', FALSE); + $getConnectedEntities = CRM_Core_BAO_RecurringEntity::getEntitiesForParent($parentEventId, 'civicrm_event', TRUE); if($getConnectedEntities){ $participantDetails = CRM_Core_BAO_RecurringEntity::getParticipantCountforEvent($getConnectedEntities); if(!empty($participantDetails['countByName'])){ -- 2.25.1