[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Calendar/actions/ -> SaveFollowupAjax.php (source)

   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  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1