[ 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_SaveFollowupAjax_Action extends Calendar_SaveAjax_Action { 12 13 function __construct() { 14 $this->exposeMethod('createFollowupEvent'); 15 $this->exposeMethod('markAsHeldCompleted'); 16 } 17 18 public function process(Vtiger_Request $request) { 19 $mode = $request->getMode(); 20 if(!empty($mode) && $this->isMethodExposed($mode)) { 21 $this->invokeExposedMethod($mode, $request); 22 return; 23 } 24 25 } 26 27 public function createFollowupEvent(Vtiger_Request $request) { 28 29 $recordId = $request->get('record'); 30 31 $recordModel = Vtiger_Record_Model::getInstanceById($recordId); 32 $subject = $recordModel->get('subject'); 33 $followupSubject = "[Followup] ".$subject; 34 $recordModel->set('subject',$followupSubject); 35 //followup event is Planned 36 $recordModel->set('eventstatus',"Planned"); 37 38 $activityType = $recordModel->get('activitytype'); 39 if($activityType == "Call") 40 $eventDuration = $request->get('defaultCallDuration'); 41 else 42 $eventDuration = $request->get('defaultOtherEventDuration'); 43 44 $followupStartTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('followup_time_start')); 45 $followupStartDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('followup_date_start')." ".$followupStartTime); 46 list($followupStartDate, $followupStartTime) = explode(' ', $followupStartDateTime); 47 //Duration of followup event based on activitytype 48 $durationMS = $eventDuration*60; 49 $followupStartDateTimeMS = strtotime($followupStartDateTime); 50 $followupEndDateTimeMS = $followupStartDateTimeMS+$durationMS; 51 $followupEndDateTime = date("Y-m-d H:i:s", $followupEndDateTimeMS); 52 list($followupEndDate, $followupEndTime) = explode(' ', $followupEndDateTime); 53 54 $recordModel->set('date_start', $followupStartDate); 55 $recordModel->set('time_start', $followupStartTime); 56 57 $recordModel->set('due_date', $followupEndDate); 58 $recordModel->set('time_end', $followupEndTime); 59 60 $recordModel->save(); 61 62 $response = new Vtiger_Response(); 63 $result = array('created'=>true); 64 $response->setResult($result); 65 $response->emit(); 66 } 67 68 public function markAsHeldCompleted(Vtiger_Request $request) { 69 $moduleName = $request->getModule(); 70 $recordId = $request->get('record'); 71 $recordModel = Vtiger_Record_Model::getInstanceById($recordId,$moduleName); 72 $recordModel->set('mode','edit'); 73 $activityType = $recordModel->get('activitytype'); 74 $response = new Vtiger_Response(); 75 76 if($activityType == 'Task'){ 77 $status = 'Completed'; 78 $recordModel->set('taskstatus',$status); 79 $result = array("valid"=>TRUE,"markedascompleted"=>TRUE,"activitytype"=>"Task"); 80 } 81 else{ 82 //checking if the event can be marked as Held (status validation) 83 $startDateTime[] = $recordModel->get('date_start'); 84 $startDateTime[] = $recordModel->get('time_start'); 85 $startDateTime = implode(' ',$startDateTime); 86 $startDateTime = new DateTime($startDateTime); 87 $currentDateTime = date("Y-m-d H:i:s"); 88 $currentDateTime = new DateTime($currentDateTime); 89 if($startDateTime > $currentDateTime){ 90 $result = array("valid"=>FALSE,"markedascompleted"=>FALSE); 91 $response->setResult($result); 92 $response->emit(); 93 return; 94 } 95 $status = 'Held'; 96 $recordModel->set('eventstatus',$status); 97 $result = array("valid"=>TRUE,"markedascompleted"=>TRUE,"activitytype"=>"Event"); 98 } 99 $recordModel->save(); 100 $response->setResult($result); 101 $response->emit(); 102 } 103 }
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 |