[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Events/actions/ -> Save.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 Events_Save_Action extends Calendar_Save_Action {
  12  
  13      /**
  14       * Function to save record
  15       * @param <Vtiger_Request> $request - values of the record
  16       * @return <RecordModel> - record Model of saved record
  17       */
  18  	public function saveRecord($request) {
  19          $adb = PearDatabase::getInstance();
  20          $recordModel = $this->getRecordModelFromRequest($request);
  21          $recordModel->save();
  22          $originalRecordId = $recordModel->getId();
  23          if($request->get('relationOperation')) {
  24              $parentModuleName = $request->get('sourceModule');
  25              $parentModuleModel = Vtiger_Module_Model::getInstance($parentModuleName);
  26              $parentRecordId = $request->get('sourceRecord');
  27              $relatedModule = $recordModel->getModule();
  28              if($relatedModule->getName() == 'Events'){
  29                  $relatedModule = Vtiger_Module_Model::getInstance('Calendar');
  30              }
  31              $relatedRecordId = $recordModel->getId();
  32  
  33              $relationModel = Vtiger_Relation_Model::getInstance($parentModuleModel, $relatedModule);
  34              $relationModel->addRelation($parentRecordId, $relatedRecordId);
  35          }
  36  
  37          // Handled to save follow up event
  38          $followupMode = $request->get('followup');
  39  
  40          //Start Date and Time values
  41          $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('followup_time_start'));
  42          $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('followup_date_start') . " " . $startTime);
  43          list($startDate, $startTime) = explode(' ', $startDateTime);
  44  
  45          $subject = $request->get('subject');
  46          if($followupMode == 'on' && $startTime != '' && $startDate != ''){
  47              $recordModel->set('eventstatus', 'Planned');
  48              $recordModel->set('subject','[Followup] '.$subject);
  49              $recordModel->set('date_start',$startDate);
  50              $recordModel->set('time_start',$startTime);
  51  
  52              $currentUser = Users_Record_Model::getCurrentUserModel();
  53              $activityType = $recordModel->get('activitytype');
  54              if($activityType == 'Call') {
  55                  $minutes = $currentUser->get('callduration');
  56              } else {
  57                  $minutes = $currentUser->get('othereventduration');
  58              }
  59              $dueDateTime = date('Y-m-d H:i:s', strtotime("$startDateTime+$minutes minutes"));
  60              list($startDate, $startTime) = explode(' ', $dueDateTime);
  61  
  62              $recordModel->set('due_date',$startDate);
  63              $recordModel->set('time_end',$startTime);
  64              $recordModel->set('recurringtype', '');
  65              $recordModel->set('mode', 'create');
  66              $recordModel->save();
  67              $heldevent = true;
  68          }
  69  
  70          //TODO: remove the dependency on $_REQUEST
  71          if($_REQUEST['recurringtype'] != '' && $_REQUEST['recurringtype'] != '--None--') {
  72              vimport('~~/modules/Calendar/RepeatEvents.php');
  73              $focus =  new Activity();
  74  
  75              //get all the stored data to this object
  76              $focus->column_fields = $recordModel->getData();
  77  
  78              Calendar_RepeatEvents::repeatFromRequest($focus);
  79          }
  80          return $recordModel;
  81      }
  82  
  83  
  84      /**
  85       * Function to get the record model based on the request parameters
  86       * @param Vtiger_Request $request
  87       * @return Vtiger_Record_Model or Module specific Record Model instance
  88       */
  89  	protected function getRecordModelFromRequest(Vtiger_Request $request) {
  90          $recordModel = parent::getRecordModelFromRequest($request);
  91  
  92          $recordModel->set('selectedusers', $request->get('selectedusers'));
  93          return $recordModel;
  94      }
  95  }


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