[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Workflows/models/ -> EditTaskRecordStructure.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_EditTaskRecordStructure_Model extends Settings_Workflows_RecordStructure_Model {
  12  
  13      /**
  14       * Function to get the values in stuctured format
  15       * @return <array> - values in structure array('block'=>array(fieldinfo));
  16       */
  17  	public function getStructure() {
  18          if(!empty($this->structuredValues)) {
  19              return $this->structuredValues;
  20          }
  21  
  22          $recordModel = $this->getWorkFlowModel();
  23          $recordId = $recordModel->getId();
  24  
  25          $values = array();
  26  
  27          $baseModuleModel = $moduleModel = $this->getModule();
  28          $blockModelList = $moduleModel->getBlocks();
  29          foreach($blockModelList as $blockLabel=>$blockModel) {
  30              $fieldModelList = $blockModel->getFields();
  31              if (!empty ($fieldModelList)) {
  32                  $values[$blockLabel] = array();
  33                  foreach($fieldModelList as $fieldName=>$fieldModel) {
  34                      if($fieldModel->isViewable()) {
  35                                                  if($moduleModel->getName()=="Documents" && $fieldName=="filename"){ 
  36                                                      continue; 
  37                                                  }
  38                          if (in_array($moduleModel->getName(), array('Calendar', 'Events')) && $fieldModel->getDisplayType() == 3) {
  39                              /* Restricting the following fields(Event module fields) for "Calendar" module
  40                               * time_start, time_end, eventstatus, activitytype,    visibility, duration_hours,
  41                               * duration_minutes, reminder_time, recurringtype, notime
  42                               */
  43                              continue;
  44                          }
  45                          if(!empty($recordId)) {
  46                              //Set the fieldModel with the valuetype for the client side.
  47                              $fieldValueType = $recordModel->getFieldFilterValueType($fieldName);
  48                              $fieldInfo = $fieldModel->getFieldInfo();
  49                              $fieldInfo['workflow_valuetype'] = $fieldValueType;
  50                              $fieldModel->setFieldInfo($fieldInfo);
  51                          }
  52  
  53                          switch($fieldModel->getFieldDataType()) {
  54                              case 'date'        :    if (($moduleName === 'Events' && in_array($fieldName, array('date_start', 'due_date'))) ||
  55                                                      ($moduleName === 'Calendar' && $fieldName === 'date_start')) {
  56                                                      $fieldName = $fieldName .' ($(general : (__VtigerMeta__) usertimezone))';
  57                                                  } else {
  58                                                      $fieldName = $fieldName .' ($_DATE_FORMAT_)';
  59                                                  }
  60                                                  break;
  61                              case 'datetime'    :    $fieldName = $fieldName .' ($(general : (__VtigerMeta__) usertimezone))';    break;
  62                              default            :    $fieldName;
  63                          }
  64  
  65                          // This will be used during editing task like email, sms etc
  66                          $fieldModel->set('workflow_columnname', $fieldName)->set('workflow_columnlabel', vtranslate($fieldModel->get('label'), $moduleModel->getName()));
  67                          // This is used to identify the field belongs to source module of workflow
  68                          $fieldModel->set('workflow_sourcemodule_field', true);
  69                          $values[$blockLabel][$fieldName] = clone $fieldModel;
  70                      }
  71                  }
  72              }
  73          }
  74  
  75          if ($moduleModel->isCommentEnabled()) {
  76              $commentFieldModelsList = Settings_Workflows_Field_Model::getCommentFieldsListForTasks($moduleModel);
  77  
  78              $labelName = vtranslate($moduleModel->getSingularLabelKey(), $moduleModel->getName()). ' ' .vtranslate('LBL_COMMENTS', $moduleModel->getName());
  79              foreach ($commentFieldModelsList as $commentFieldName => $commentFieldModel) {
  80                  switch($commentFieldModel->getFieldDataType()) {
  81                          case 'date'        :    $commentFieldName = $commentFieldName .' ($_DATE_FORMAT_)';        break;
  82                          case 'datetime'    :    $commentFieldName = $commentFieldName .' ($(general : (__VtigerMeta__) usertimezone)_)';    break;
  83                          default            :    $commentFieldName;
  84                  }
  85                  $commentFieldModel->set('workflow_columnname', $commentFieldName)
  86                                    ->set('workflow_columnlabel', vtranslate($commentFieldModel->get('label'), $moduleModel->getName()))
  87                                    ->set('workflow_sourcemodule_field', true);
  88  
  89                  $values[$labelName][$commentFieldName] = $commentFieldModel;
  90              }
  91          }
  92  
  93          //All the reference fields should also be sent
  94          $fields = $moduleModel->getFieldsByType(array('reference', 'owner', 'multireference'));
  95          foreach($fields as $parentFieldName => $field) {
  96              $type = $field->getFieldDataType();
  97              $referenceModules = $field->getReferenceList();
  98              if($type == 'owner') $referenceModules = array('Users');
  99              foreach($referenceModules as $refModule) {
 100                  $moduleModel = Vtiger_Module_Model::getInstance($refModule);
 101                  $blockModelList = $moduleModel->getBlocks();
 102                  foreach($blockModelList as $blockLabel=>$blockModel) {
 103                      $fieldModelList = $blockModel->getFields();
 104                      if (!empty ($fieldModelList)) {
 105                          foreach($fieldModelList as $fieldName=>$fieldModel) {
 106                              if($fieldModel->isViewable()) {
 107                                  $name = "($parentFieldName : ($refModule) $fieldName)";
 108                                  $label = vtranslate($field->get('label'), $baseModuleModel->getName()).' : ('.vtranslate($refModule, $refModule).') '.vtranslate($fieldModel->get('label'), $refModule);
 109  
 110                                  switch($fieldModel->getFieldDataType()) {
 111                                      case 'date'        :    if (($moduleName === 'Events' && in_array($fieldName, array('date_start', 'due_date'))) ||
 112                                                              ($moduleName === 'Calendar' && $fieldName === 'date_start')) {
 113                                                              $workflowColumnName = $name .' ($(general : (__VtigerMeta__) usertimezone))';
 114                                                          } else {
 115                                                              $workflowColumnName = $name .' ($_DATE_FORMAT_)';
 116                                                          }
 117                                                          break;
 118                                      case 'datetime'    :    $workflowColumnName = $name .' ($(general : (__VtigerMeta__) usertimezone))';    break;
 119                                      default            :    $workflowColumnName = $name;
 120                                  }
 121  
 122                                  $fieldModel->set('workflow_columnname', $workflowColumnName)->set('workflow_columnlabel', $label);
 123                                  if(!empty($recordId)) {
 124                                      $fieldValueType = $recordModel->getFieldFilterValueType($name);
 125                                      $fieldInfo = $fieldModel->getFieldInfo();
 126                                      $fieldInfo['workflow_valuetype'] = $fieldValueType;
 127                                      $fieldModel->setFieldInfo($fieldInfo);
 128                                  }
 129                                  $values[$field->get('label')][$name] = clone $fieldModel;
 130                              }
 131                          }
 132                      }
 133                  }
 134  
 135                  $commentFieldModelsList = array();
 136                  if ($moduleModel->isCommentEnabled()) {
 137                      $labelName = vtranslate($moduleModel->getSingularLabelKey(), $moduleModel->getName()). ' ' .vtranslate('LBL_COMMENTS', $moduleModel->getName());
 138  
 139                      $commentFieldModelsList = Settings_Workflows_Field_Model::getCommentFieldsListForTasks($moduleModel);
 140                      foreach ($commentFieldModelsList as $commentFieldName => $commentFieldModel) {
 141                          $name = "($parentFieldName : ($refModule) $commentFieldName)";
 142                          $label = vtranslate($field->get('label'), $baseModuleModel->getName()).' : ('.
 143                                   vtranslate($refModule, $refModule).') '.
 144                                   vtranslate($commentFieldModel->get('label'), $refModule);
 145  
 146                          $commentFieldModel->set('workflow_columnname', $name)->set('workflow_columnlabel', $label);
 147                          $values[$labelName][$name] = $commentFieldModel;
 148                      }
 149                  }
 150              }
 151          }
 152          $this->structuredValues = $values;
 153          return $values;
 154      }
 155  }


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