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