generate recurrsions based on exclude dates
[civicrm-core.git] / CRM / Core / Page / AJAX / RecurringEntity.php
1 <?php
2
3 /*
4 * To change this license header, choose License Headers in Project Properties.
5 * To change this template file, choose Tools | Templates
6 * and open the template in the editor.
7 */
8
9 /**
10 * Description of EntityApplyChangesTo
11 *
12 * @author Priyanka
13 */
14
15 class CRM_Core_Page_AJAX_RecurringEntity {
16
17 public static function updateCascadeType(){
18 if(CRM_Utils_Array::value('cascadeType', $_REQUEST) && CRM_Utils_Array::value('entityId', $_REQUEST)){
19 $finalResult = array();
20 $cascadeType = CRM_Utils_Type::escape($_REQUEST['cascadeType'], 'Integer');
21 $entityId = CRM_Utils_Type::escape($_REQUEST['entityId'], 'Integer');
22
23 $sql = "UPDATE
24 civicrm_recurring_entity
25 SET cascade_type = (%1)
26 WHERE entity_id = (%2) AND entity_table = 'civicrm_event'";
27 $params = array(
28 1 => array($cascadeType, 'Integer'),
29 2 => array($entityId, 'Integer')
30 );
31 CRM_Core_DAO::executeQuery($sql, $params);
32 $finalResult['status'] = 'Done';
33 }
34 echo json_encode($finalResult);
35 CRM_Utils_System::civiExit();
36 }
37
38 public static function generatePreview(){
39 $params = $formValues = $recurDates = array();
40 $formValues = $_REQUEST;
41 if(!empty($formValues)){
42 $dbParams = CRM_Core_BAO_RecurringEntity::mapFormValuesToDB($formValues);
43 if(!empty($dbParams)){
44 $recursionObject = CRM_Core_BAO_RecurringEntity::getRecursionFromReminderByDBParams($dbParams);
45 // Check if there were any errors
46 if($recursionObject->errors){
47 $recurDates['errors'] = $recursionObject->errors;
48 }else{
49 if(CRM_Utils_Array::value('event_id', $formValues)){
50 $parent_event_id = CRM_Core_BAO_RecurringEntity::getParentFor($formValues['event_id'], 'civicrm_event');
51 if(!$parent_event_id){
52 $parent_event_id = $formValues['event_id'];
53 }
54 $params['parent_event_id'] = $parent_event_id;
55 $params['parent_event_start_date'] = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $params['parent_event_id'], 'start_date');
56 $params['parent_event_end_date'] = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $params['parent_event_id'], 'end_date');
57 $params['start_action_offset'] = $formValues['start_action_offset'];
58 }
59 $recurResult = CRM_Core_BAO_RecurringEntity::generateRecursions($recursionObject, $params, $formValues['exclude_date_list']);
60 $count = 1;
61 foreach ($recurResult as $key => $value) {
62 $recurDates[$count]['start_date'] = date('M d, Y h:i:s A \o\n l', strtotime($value['start_date']));
63 if($value['end_date']){
64 $recurDates[$count]['end_date'] = date('M d, Y h:i:s A \o\n l', strtotime($value['end_date']));
65 }
66 $count++;
67 }
68 }
69 }
70 }
71 echo json_encode($recurDates);
72 CRM_Utils_System::civiExit();
73 }
74
75 }
76