[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Workflows/views/ -> EditTask.php (source)

   1  <?php
   2  /*+**********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.1
   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_EditTask_View extends Settings_Vtiger_Index_View {
  12  
  13  	public function process(Vtiger_Request $request) {
  14          $currentUser = Users_Record_Model::getCurrentUserModel();
  15          $viewer = $this->getViewer($request);
  16          $moduleName = $request->getModule();
  17          $qualifiedModuleName = $request->getModule(false);
  18  
  19          $recordId = $request->get('task_id');
  20          $workflowId = $request->get('for_workflow');
  21  
  22          $workflowModel = Settings_Workflows_Record_Model::getInstance($workflowId);
  23          $taskTypes = $workflowModel->getTaskTypes();
  24          if($recordId) {
  25              $taskModel = Settings_Workflows_TaskRecord_Model::getInstance($recordId);
  26          } else {
  27              $taskType = $request->get('type');
  28              if(empty($taskType)) {
  29                  $taskType = !empty($taskTypes[0]) ? $taskTypes[0]->getName() : 'VTEmailTask';
  30              }
  31              $taskModel = Settings_Workflows_TaskRecord_Model::getCleanInstance($workflowModel, $taskType);
  32          }
  33  
  34          $taskTypeModel = $taskModel->getTaskType();
  35          $viewer->assign('TASK_TYPE_MODEL', $taskTypeModel);
  36  
  37          $viewer->assign('TASK_TEMPLATE_PATH', $taskTypeModel->getTemplatePath());
  38          $recordStructureInstance = Settings_Workflows_RecordStructure_Model::getInstanceForWorkFlowModule($workflowModel,
  39                                                                              Settings_Workflows_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDITTASK);
  40  
  41          $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
  42          $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
  43  
  44          $moduleModel = $workflowModel->getModule();
  45          $dateTimeFields = $moduleModel->getFieldsByType(array('date', 'datetime'));
  46  
  47          $taskObject = $taskModel->getTaskObject();
  48          $taskType = get_class($taskObject);
  49  
  50          if ($taskType === 'VTCreateEntityTask') {
  51              if ($taskObject->entity_type) {
  52                  $relationModuleModel = Vtiger_Module_Model::getInstance($taskObject->entity_type);
  53                  $ownerFieldModels = $relationModuleModel->getFieldsByType('owner');
  54  
  55                  $fieldMapping = Zend_Json::decode($taskObject->field_value_mapping);
  56                  foreach ($fieldMapping as $key => $mappingInfo) {
  57                      if (array_key_exists($mappingInfo['fieldname'], $ownerFieldModels)) {
  58                          $userRecordModel = Users_Record_Model::getInstanceByName($mappingInfo['value']);
  59  
  60                          if ($userRecordModel) {
  61                              $ownerName = $userRecordModel->getId();
  62                          } else {
  63                              $groupRecordModel = Settings_Groups_Record_Model::getInstance($mappingInfo['value']);
  64                              $ownerName = $groupRecordModel->getId();
  65                          }
  66  
  67                          $fieldMapping[$key]['value'] = $ownerName;
  68                      }
  69                  }
  70                  $taskObject->field_value_mapping = Zend_Json::encode($fieldMapping);
  71              }
  72          }
  73                   if ($taskType === 'VTUpdateFieldsTask') { 
  74                      if($moduleModel->getName() =="Documents"){ 
  75                          $restrictFields=array('folderid','filename','filelocationtype'); 
  76                          $viewer->assign('RESTRICTFIELDS',$restrictFields); 
  77                      } 
  78                  } 
  79          
  80          $viewer->assign('SOURCE_MODULE',$moduleModel->getName());
  81          $viewer->assign('MODULE_MODEL', $moduleModel);
  82          $viewer->assign('TASK_ID',$recordId);
  83          $viewer->assign('WORKFLOW_ID',$workflowId);
  84          $viewer->assign('DATETIME_FIELDS', $dateTimeFields);
  85          $viewer->assign('WORKFLOW_MODEL', $workflowModel);
  86          $viewer->assign('TASK_TYPES', $taskTypes);
  87          $viewer->assign('TASK_MODEL', $taskModel);
  88          $viewer->assign('CURRENTDATE', date('Y-n-j'));
  89          $metaVariables = Settings_Workflows_Module_Model::getMetaVariables();
  90          if($moduleModel->getName() == 'Invoice' || $moduleModel->getName() == 'Quotes') {
  91              $metaVariables['Portal Pdf Url'] = '(general : (__VtigerMeta__) portalpdfurl)';
  92          }
  93          
  94          // Adding option Line Item block for Individual tax mode
  95          $individualTaxBlockLabel = vtranslate("LBL_LINEITEM_BLOCK_GROUP", $qualifiedModuleName);
  96          $individualTaxBlockValue = $viewer->view('LineItemsGroupTemplate.tpl', $qualifiedModuleName, $fetch = true);
  97  
  98          // Adding option Line Item block for group tax mode
  99          $groupTaxBlockLabel = vtranslate("LBL_LINEITEM_BLOCK_INDIVIDUAL", $qualifiedModuleName);
 100          $groupTaxBlockValue = $viewer->view('LineItemsIndividualTemplate.tpl', $qualifiedModuleName, $fetch = true);
 101  
 102          $templateVariables = array(
 103              $individualTaxBlockValue => $individualTaxBlockLabel,
 104              $groupTaxBlockValue => $groupTaxBlockLabel
 105                  );
 106          
 107          $viewer->assign('META_VARIABLES', $metaVariables);
 108          $viewer->assign('TEMPLATE_VARIABLES', $templateVariables);
 109          $viewer->assign('TASK_OBJECT', $taskObject);
 110          $viewer->assign('FIELD_EXPRESSIONS', Settings_Workflows_Module_Model::getExpressions());
 111          $repeat_date = $taskModel->getTaskObject()->calendar_repeat_limit_date;
 112          if(!empty ($repeat_date)){
 113              $repeat_date = Vtiger_Date_UIType::getDisplayDateValue($repeat_date);
 114          }
 115          $viewer->assign('REPEAT_DATE',$repeat_date);
 116          
 117          $userModel = Users_Record_Model::getCurrentUserModel();
 118          $viewer->assign('dateFormat',$userModel->get('date_format'));
 119          $viewer->assign('timeFormat', $userModel->get('hour_format'));
 120          $viewer->assign('MODULE', $moduleName);
 121          $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
 122  
 123          
 124          
 125          $emailFields = $recordStructureInstance->getAllEmailFields();
 126          foreach($emailFields as $metaKey => $emailField) {
 127              $emailFieldoptions .= '<option value=",$'.$metaKey.'">'.$emailField->get('workflow_columnlabel').'</option>';
 128          }
 129  
 130          $nameFields = $recordStructureInstance->getNameFields();
 131          $fromEmailFieldOptions = '<option value="">'. vtranslate('Optional', $qualifiedModuleName) .'</option>';
 132          $fromEmailFieldOptions .= '<option value="$(general : (__VtigerMeta__) supportName)<$(general : (__VtigerMeta__) supportEmailId)>"
 133                                      >'.vtranslate('LBL_HELPDESK_SUPPORT_EMAILID', $qualifiedModuleName).
 134                                      '</option>';
 135  
 136          foreach($emailFields as $metaKey => $emailField) {
 137              list($relationFieldName, $rest) = explode(' ', $metaKey);
 138              $value = '<$'.$metaKey.'>';
 139  
 140              if ($nameFields) {
 141                  $nameFieldValues = '';
 142                      foreach (array_keys($nameFields) as $fieldName) {
 143                      if (strstr($fieldName, $relationFieldName) || (count(explode(' ', $metaKey)) === 1 && count(explode(' ', $fieldName)) === 1)) {
 144                          $fieldName = '$'.$fieldName;
 145                          $nameFieldValues .= ' '.$fieldName;
 146                      }
 147                  }
 148                  $value = trim($nameFieldValues).$value;
 149              }
 150  
 151              $fromEmailFieldOptions .= '<option value="'.$value.'">'.$emailField->get('workflow_columnlabel').'</option>';
 152          }
 153  
 154          $structure = $recordStructureInstance->getStructure();
 155          // for inventory modules we shouldn't show item detail fields
 156          if($taskType == "VTEmailTask" && in_array($workflowModel->getModule()->name, getInventoryModules())){
 157              $itemsBlock = "LBL_ITEM_DETAILS";
 158              unset($structure[$itemsBlock]);
 159          }
 160          foreach($structure as $fields) {
 161              foreach($fields as $field) {
 162                  $allFieldoptions .= '<option value="$'.$field->get('workflow_columnname').'">'.
 163                                          $field->get('workflow_columnlabel').'</option>';
 164              }
 165          }
 166  
 167          $userList = $currentUser->getAccessibleUsers();
 168          $groupList = $currentUser->getAccessibleGroups();
 169          $assignedToValues = array();
 170          $assignedToValues[vtranslate('LBL_USERS', 'Vtiger')] = $userList;
 171          $assignedToValues[vtranslate('LBL_GROUPS', 'Vtiger')] = $groupList;
 172  
 173          $viewer->assign('ASSIGNED_TO', $assignedToValues);
 174          $viewer->assign('EMAIL_FIELD_OPTION', $emailFieldoptions);
 175          $viewer->assign('FROM_EMAIL_FIELD_OPTION', $fromEmailFieldOptions);
 176          $viewer->assign('ALL_FIELD_OPTIONS',$allFieldoptions);
 177          $viewer->view('EditTask.tpl', $qualifiedModuleName);
 178      }
 179  }


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