[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Workflows/actions/ -> TaskAjax.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 Settings_Workflows_TaskAjax_Action extends Settings_Vtiger_IndexAjax_View {
  12  
  13  	function __construct() {
  14          parent::__construct();
  15          $this->exposeMethod('Delete');
  16          $this->exposeMethod('ChangeStatus');
  17          $this->exposeMethod('Save');
  18      }
  19  
  20  	public function process(Vtiger_Request $request) {
  21          $mode = $request->getMode();
  22          if(!empty($mode)) {
  23              $this->invokeExposedMethod($mode, $request);
  24              return;
  25          }
  26      }
  27  
  28  	public function Delete(Vtiger_Request $request){
  29          $record = $request->get('task_id');
  30          if(!empty($record)) {
  31              $taskRecordModel = Settings_Workflows_TaskRecord_Model::getInstance($record);
  32              $taskRecordModel->delete();
  33              $response = new Vtiger_Response();
  34              $response->setResult(array('ok'));
  35              $response->emit();
  36          }
  37      }
  38  
  39  	public function ChangeStatus(Vtiger_Request $request) {
  40          $record = $request->get('task_id');
  41          if(!empty($record)) {
  42              $taskRecordModel = Settings_Workflows_TaskRecord_Model::getInstance($record);
  43              $taskObject = $taskRecordModel->getTaskObject();
  44              if($request->get('status') == 'true')
  45                  $taskObject->active = true;
  46              else
  47                  $taskObject->active = false;
  48              $taskRecordModel->save();
  49              $response = new Vtiger_Response();
  50              $response->setResult(array('ok'));
  51              $response->emit();
  52          }
  53      }
  54  
  55  	public function Save(Vtiger_Request $request) {
  56  
  57          $workflowId = $request->get('for_workflow');
  58          if(!empty($workflowId)) {
  59              $record = $request->get('task_id');
  60              if($record) {
  61                  $taskRecordModel = Settings_Workflows_TaskRecord_Model::getInstance($record);
  62              } else {
  63                  $workflowModel = Settings_Workflows_Record_Model::getInstance($workflowId);
  64                  $taskRecordModel = Settings_Workflows_TaskRecord_Model::getCleanInstance($workflowModel, $request->get('taskType'));
  65              }
  66              
  67              $taskObject = $taskRecordModel->getTaskObject();
  68              $taskObject->summary = $request->get("summary");
  69  
  70              $active = $request->get("active");
  71              if($active == "true") {
  72                  $taskObject->active = true;
  73              } else if ($active == "false"){
  74                  $taskObject->active = false;
  75              }
  76              $checkSelectDate = $request->get('check_select_date');
  77  
  78              if(!empty($checkSelectDate)){
  79                  $trigger = array(
  80                      'days'=>($request->get('select_date_direction') == 'after' ? 1 : -1) * (int)$request->get('select_date_days'),
  81                      'field'=>$request->get('select_date_field')
  82                      );
  83                  $taskObject->trigger = $trigger;
  84              } else {
  85                  $taskObject->trigger = null;
  86              }
  87  
  88              $fieldNames = $taskObject->getFieldNames();
  89              foreach($fieldNames as $fieldName){
  90                  if($fieldName == 'field_value_mapping' || $fieldName == 'content') {
  91                      $taskObject->$fieldName = $request->getRaw($fieldName);
  92                  } else {
  93                      $taskObject->$fieldName = $request->get($fieldName);
  94                  }
  95                  if ($fieldName == 'calendar_repeat_limit_date') {
  96                      $taskObject->$fieldName = DateTimeField::convertToDBFormat($request->get($fieldName));
  97                  }
  98              }
  99  
 100              $taskType = get_class($taskObject);
 101              if ($taskType === 'VTCreateEntityTask') {
 102                  $relationModuleModel = Vtiger_Module_Model::getInstance($taskObject->entity_type);
 103                  $ownerFieldModels = $relationModuleModel->getFieldsByType('owner');
 104  
 105                  $fieldMapping = Zend_Json::decode($taskObject->field_value_mapping);
 106                  foreach ($fieldMapping as $key => $mappingInfo) {
 107                      if (array_key_exists($mappingInfo['fieldname'], $ownerFieldModels)) {
 108                          $userRecordModel = Users_Record_Model::getInstanceById($mappingInfo['value'], 'Users');
 109                          $ownerName = $userRecordModel->get('user_name');
 110  
 111                          if (!$ownerName) {
 112                              $groupRecordModel = Settings_Groups_Record_Model::getInstance($mappingInfo['value']);
 113                              $ownerName = $groupRecordModel->getName();
 114                          }
 115                          $fieldMapping[$key]['value'] = $ownerName;
 116                      }
 117                  }
 118                  $taskObject->field_value_mapping = Zend_Json::encode($fieldMapping);
 119              }
 120  
 121              $taskRecordModel->save();
 122              $response = new Vtiger_Response();
 123              $response->setResult(array('for_workflow'=>$workflowId));
 124              $response->emit();
 125          }
 126      }
 127          
 128          public function validateRequest(Vtiger_Request $request) { 
 129              $request->validateWriteAccess(); 
 130          } 
 131  }


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