[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 class Calendar_SaveAjax_Action extends Vtiger_SaveAjax_Action { 12 13 public function process(Vtiger_Request $request) { 14 $user = Users_Record_Model::getCurrentUserModel(); 15 16 $recordModel = $this->saveRecord($request); 17 18 $fieldModelList = $recordModel->getModule()->getFields(); 19 $result = array(); 20 foreach ($fieldModelList as $fieldName => $fieldModel) { 21 $fieldValue = Vtiger_Util_Helper::toSafeHTML($recordModel->get($fieldName)); 22 $result[$fieldName] = array(); 23 if($fieldName == 'date_start') { 24 $timeStart = $recordModel->get('time_start'); 25 $dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart); 26 27 $fieldValue = $fieldValue.' '.$timeStart; 28 29 $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue(); 30 $dateTimeComponents = explode(' ',$userDateTimeString); 31 $dateComponent = $dateTimeComponents[0]; 32 //Conveting the date format in to Y-m-d . since full calendar expects in the same format 33 $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format')); 34 $result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString.' '. $dateTimeComponents[1]; 35 } else if($fieldName == 'due_date') { 36 $timeEnd = $recordModel->get('time_end'); 37 $dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd); 38 39 $fieldValue = $fieldValue.' '.$timeEnd; 40 41 $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue(); 42 $dateTimeComponents = explode(' ',$userDateTimeString); 43 $dateComponent = $dateTimeComponents[0]; 44 //Conveting the date format in to Y-m-d . since full calendar expects in the same format 45 $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format')); 46 $result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString.' '. $dateTimeComponents[1]; 47 } 48 $result[$fieldName]['value'] = $fieldValue; 49 $result[$fieldName]['display_value'] = decode_html($fieldModel->getDisplayValue($fieldValue)); 50 } 51 52 $result['_recordLabel'] = $recordModel->getName(); 53 $result['_recordId'] = $recordModel->getId(); 54 55 // Handled to save follow up event 56 $followupMode = $request->get('followup'); 57 58 if($followupMode == 'on') { 59 //Start Date and Time values 60 $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('followup_time_start')); 61 $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('followup_date_start') . " " . $startTime); 62 list($startDate, $startTime) = explode(' ', $startDateTime); 63 64 $subject = $request->get('subject'); 65 if($startTime != '' && $startDate != ''){ 66 $recordModel->set('eventstatus', 'Planned'); 67 $recordModel->set('subject','[Followup] '.$subject); 68 $recordModel->set('date_start',$startDate); 69 $recordModel->set('time_start',$startTime); 70 71 $currentUser = Users_Record_Model::getCurrentUserModel(); 72 $activityType = $recordModel->get('activitytype'); 73 if($activityType == 'Call') { 74 $minutes = $currentUser->get('callduration'); 75 } else { 76 $minutes = $currentUser->get('othereventduration'); 77 } 78 $dueDateTime = date('Y-m-d H:i:s', strtotime("$startDateTime+$minutes minutes")); 79 list($endDate, $endTime) = explode(' ', $dueDateTime); 80 81 $recordModel->set('due_date',$endDate); 82 $recordModel->set('time_end',$endTime); 83 $recordModel->set('mode', 'create'); 84 $recordModel->save(); 85 } 86 } 87 $response = new Vtiger_Response(); 88 $response->setEmitType(Vtiger_Response::$EMIT_JSON); 89 $response->setResult($result); 90 $response->emit(); 91 } 92 93 /** 94 * Function to get the record model based on the request parameters 95 * @param Vtiger_Request $request 96 * @return Vtiger_Record_Model or Module specific Record Model instance 97 */ 98 public function getRecordModelFromRequest(Vtiger_Request $request) { 99 $recordModel = parent::getRecordModelFromRequest($request); 100 101 $startDate = $request->get('date_start'); 102 if(!empty($startDate)) { 103 //Start Date and Time values 104 $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); 105 $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start')." ".$startTime); 106 list($startDate, $startTime) = explode(' ', $startDateTime); 107 108 $recordModel->set('date_start', $startDate); 109 $recordModel->set('time_start', $startTime); 110 } 111 112 $endDate = $request->get('due_date'); 113 if(!empty($endDate)) { 114 //End Date and Time values 115 $endTime = $request->get('time_end'); 116 $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); 117 118 if ($endTime) { 119 $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); 120 $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date')." ".$endTime); 121 list($endDate, $endTime) = explode(' ', $endDateTime); 122 } 123 124 $recordModel->set('time_end', $endTime); 125 $recordModel->set('due_date', $endDate); 126 } 127 128 $activityType = $request->get('activitytype'); 129 $visibility = $request->get('visibility'); 130 if(empty($activityType)) { 131 $recordModel->set('activitytype', 'Task'); 132 $visibility = 'Private'; 133 $recordModel->set('visibility', $visibility); 134 } 135 136 if(empty($visibility)) { 137 $assignedUserId = $recordModel->get('assigned_user_id'); 138 $sharedType = Calendar_Module_Model::getSharedType($assignedUserId); 139 if($sharedType == 'selectedusers') { 140 $sharedType = 'public'; 141 } 142 $recordModel->set('visibility', ucfirst($sharedType)); 143 } 144 145 return $recordModel; 146 } 147 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |