Commit | Line | Data |
---|---|---|
2aa397bc | 1 | <?php |
2aa397bc TO |
2 | /* |
3 | * To change this license header, choose License Headers in Project Properties. | |
4 | * To change this template file, choose Tools | Templates | |
5 | * and open the template in the editor. | |
6 | */ | |
7 | ||
8 | /** | |
9 | * Description of EntityApplyChangesTo | |
10 | * | |
11 | * @author Priyanka | |
12 | */ | |
2aa397bc TO |
13 | class CRM_Core_Page_AJAX_RecurringEntity { |
14 | ||
15 | public static function updateMode() { | |
16 | if (CRM_Utils_Array::value('mode', $_REQUEST) && CRM_Utils_Array::value('entityId', $_REQUEST) && CRM_Utils_Array::value('entityTable', $_REQUEST)) { | |
17 | ||
18 | $finalResult = array(); | |
19 | $mode = CRM_Utils_Type::escape($_REQUEST['mode'], 'Integer'); | |
20 | $entityId = CRM_Utils_Type::escape($_REQUEST['entityId'], 'Integer'); | |
21 | $entityTable = CRM_Utils_Type::escape($_REQUEST['entityTable'], 'String'); | |
22 | ||
23 | if (CRM_Utils_Array::value('linkedEntityTable', $_REQUEST)) { | |
24 | $result = array(); | |
25 | $result = CRM_Core_BAO_RecurringEntity::updateModeLinkedEntity($entityId, $_REQUEST['linkedEntityTable'], $entityTable); | |
26 | } | |
27 | ||
28 | $dao = new CRM_Core_DAO_RecurringEntity(); | |
29 | if (!empty($result)) { | |
30 | $dao->entity_id = $result['entityId']; | |
31 | $dao->entity_table = $result['entityTable']; | |
32 | } | |
33 | else { | |
34 | $dao->entity_id = $entityId; | |
35 | $dao->entity_table = $entityTable; | |
36 | } | |
37 | ||
38 | if ($dao->find(TRUE)) { | |
39 | $dao->mode = $mode; | |
40 | $dao->save(); | |
41 | $finalResult['status'] = 'Done'; | |
42 | } | |
43 | else { | |
44 | $finalResult['status'] = 'Error'; | |
45 | } | |
46 | } | |
47 | echo json_encode($finalResult); | |
48 | CRM_Utils_System::civiExit(); | |
49 | } | |
50 | ||
51 | public static function generatePreview() { | |
52 | $params = $formValues = $genericResult = array(); | |
53 | $formValues = $_REQUEST; | |
54 | if (!empty($formValues) && | |
353ffa53 TO |
55 | CRM_Utils_Array::value('entity_table', $formValues) |
56 | ) { | |
2aa397bc TO |
57 | $startDateColumnName = CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']]['dateColumns'][0]; |
58 | $endDateColumnName = CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']]['intervalDateColumns'][0]; | |
59 | ||
60 | $recursion = new CRM_Core_BAO_RecurringEntity(); | |
61 | if (CRM_Utils_Array::value('dateColumns', CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']])) { | |
353ffa53 | 62 | $recursion->dateColumns = CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']]['dateColumns']; |
2aa397bc TO |
63 | } |
64 | $recursion->scheduleFormValues = $formValues; | |
65 | if (!empty($formValues['exclude_date_list'])) { | |
66 | $recursion->excludeDates = $formValues['exclude_date_list']; | |
67 | } | |
68 | if (CRM_Utils_Array::value('excludeDateRangeColumns', CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']])) { | |
69 | $recursion->excludeDateRangeColumns = CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']]['excludeDateRangeColumns']; | |
70 | } | |
71 | ||
72 | if (CRM_Utils_Array::value('entity_id', $formValues)) { | |
73 | $parentEventId = CRM_Core_BAO_RecurringEntity::getParentFor($formValues['entity_id'], $formValues['entity_table']); | |
74 | } | |
75 | ||
76 | //Check if there is any enddate column defined to find out the interval between the two range | |
77 | if (CRM_Utils_Array::value('intervalDateColumns', CRM_Core_BAO_RecurringEntity::$_dateColumns[$formValues['entity_table']])) { | |
78 | $daoName = CRM_Core_BAO_RecurringEntity::$_tableDAOMapper[$formValues['entity_table']]; | |
79 | if ($parentEventId) { | |
80 | $startDate = CRM_Core_DAO::getFieldValue($daoName, $parentEventId, $startDateColumnName); | |
81 | $endDate = CRM_Core_DAO::getFieldValue($daoName, $parentEventId, $endDateColumnName); | |
82 | } | |
83 | if ($endDate) { | |
353ffa53 | 84 | $interval = $recursion->getInterval($startDate, $endDate); |
2aa397bc TO |
85 | $recursion->intervalDateColumns = array($endDateColumnName => $interval); |
86 | } | |
87 | } | |
88 | ||
89 | $result = $recursion->generateRecursiveDates(); | |
90 | ||
91 | foreach ($result as $key => $value) { | |
92 | if ($startDateColumnName) { | |
93 | $result[$key]['start_date'] = date('M d, Y h:i:s A \o\n l', strtotime($value[$startDateColumnName])); | |
94 | } | |
95 | if ($value[$endDateColumnName]) { | |
96 | if ($endDateColumnName) { | |
97 | $result[$key]['end_date'] = date('M d, Y h:i:s A \o\n l', strtotime($value[$endDateColumnName])); | |
98 | } | |
99 | } | |
100 | } | |
101 | ||
102 | //Show the list of participants registered for the events if any | |
103 | if ($formValues['entity_table'] == "civicrm_event" && !empty($parentEventId)) { | |
104 | $getConnectedEntities = CRM_Core_BAO_RecurringEntity::getEntitiesForParent($parentEventId, 'civicrm_event', TRUE); | |
105 | if ($getConnectedEntities) { | |
106 | $participantDetails = CRM_Event_Form_ManageEvent_Repeat::getParticipantCountforEvent($getConnectedEntities); | |
107 | if (!empty($participantDetails['countByName'])) { | |
108 | $result['participantData'] = $participantDetails['countByName']; | |
109 | } | |
110 | } | |
111 | } | |
112 | } | |
113 | echo json_encode($result); | |
114 | CRM_Utils_System::civiExit(); | |
115 | } | |
96025800 | 116 | |
2aa397bc | 117 | } |