Always consider current event start date as repetition start date
authorunknown <priyanka.karan26@gmail.com>
Mon, 15 Sep 2014 15:19:16 +0000 (16:19 +0100)
committerdeepak-srivastava <deepak.srivastava.0303@gmail.com>
Fri, 3 Oct 2014 09:08:26 +0000 (10:08 +0100)
CRM/Core/Form/RecurringEntity.php
CRM/Event/Form/ManageEvent/Repeat.php

index 3a6123ad0995c36a0b7c67fd7d04d981d9b0b1c9..131fa277472c5989a44b2be695a8817207ed09d7 100644 (file)
@@ -204,12 +204,14 @@ class CRM_Core_Form_RecurringEntity {
       $params['used_for'] = $type;
     }
     
+    //Save post params to the schedule reminder table
+    $dbParams = CRM_Core_BAO_RecurringEntity::mapFormValuesToDB($params);
+
+    //Delete repeat configuration and rebuild
     if(CRM_Utils_Array::value('id', $params)){
       CRM_Core_BAO_ActionSchedule::del($params['id']);
       unset($params['id']);
     }
-    //Save post params to the schedule reminder table
-    $dbParams = CRM_Core_BAO_RecurringEntity::mapFormValuesToDB($params);
     $actionScheduleObj = CRM_Core_BAO_ActionSchedule::add($dbParams);
     
     //exclude dates 
@@ -296,7 +298,7 @@ class CRM_Core_Form_RecurringEntity {
       $recursion->intervalDateColumns = array('end_date' => $interval);
     }
 
-    $recursion->entity_id = $params['current_event_id'];
+    $recursion->entity_id = $params['event_id'];
     $recursion->entity_table = 'civicrm_event';
     $recursion->linkedEntities = array(
       array(
index bf10d120744e5cfd7886de17b5e0cbd1b0cccc0d..56d2bad65ba62cd8c80384483aa6de52acde5dcc 100644 (file)
@@ -129,10 +129,12 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent {
     
     //Set Schedule Reminder Id
     $this->_scheduleReminderId = $this->_scheduleReminderDetails->id;
-    list($defaults['repetition_start_date'], $defaults['repetition_start_date_time']) = CRM_Utils_Date::setDateDefaults($this->_parentEventStartDate, 'activityDateTime');
+    //Always pass current event's start date by default
+    $currentEventStartDate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_id, 'start_date', 'id');
+    list($defaults['repetition_start_date'], $defaults['repetition_start_date_time']) = CRM_Utils_Date::setDateDefaults($currentEventStartDate, 'activityDateTime');
+    
     // Check if there is id for this event in Reminder table
     if($this->_scheduleReminderId){
-      list($defaults['repetition_start_date'], $defaults['repetition_start_date_time']) = CRM_Utils_Date::setDateDefaults($this->_scheduleReminderDetails->start_action_date, 'activityDateTime');
       $defaults['repetition_frequency_unit'] = $this->_scheduleReminderDetails->repetition_frequency_unit;
       $defaults['repetition_frequency_interval'] = $this->_scheduleReminderDetails->repetition_frequency_interval;
       $defaults['start_action_condition'] = array_flip(explode(",",$this->_scheduleReminderDetails->start_action_condition));
@@ -160,13 +162,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent {
       if($this->_scheduleReminderDetails->entity_status){
         $defaults['repeats_by'] = 2;
       }
-      //echo "<pre>"; print_r($this->_excludeDateInfo);
       $defaults['exclude_date_list'] = array('a', 'b');
-         /* array
-        (
-            0 => '08/25/2014',
-            1 => '08/28/2014'
-        );*/
     } 
     return $defaults;
   }
@@ -178,7 +174,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent {
   public function postProcess() {
     if($this->_id){
       $params = $this->controller->exportValues($this->_name); 
-      $params['current_event_id'] = $this->_id;
+      $params['event_id'] = $this->_id;
       $params['parent_event_id']  = $this->_parentEventId;
       $params['parent_event_start_date'] = $this->_parentEventStartDate;
       $params['parent_event_end_date'] = $this->_parentEventEndDate;
@@ -192,7 +188,6 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent {
       
       CRM_Core_Form_RecurringEntity::postProcess($params, 'event');
       CRM_Utils_System::redirect(CRM_Utils_System::url($url, $urlParams));
-      //CRM_Core_Error::debug_var('Event Recursion');
     }else{
         CRM_Core_Error::fatal("Could not find Event ID");
     }