Merge pull request #4979 from xurizaemon/codingstandards-12
[civicrm-core.git] / CRM / Core / Page / AJAX / RecurringEntity.php
CommitLineData
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
13class 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 }
116}