[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/com_vtiger_workflow/ -> WorkflowComponents.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  require_once ("include/utils/CommonUtils.php");
  11  require_once  'include/Webservices/Utils.php';
  12  require_once  'include/Webservices/DescribeObject.php';
  13  require_once ("include/Zend/Json.php");
  14  
  15  require_once  'modules/com_vtiger_workflow/expression_engine/VTExpressionsManager.inc';
  16  
  17  function vtJsonFields($adb, $request) {
  18      $moduleName = $request['modulename'];
  19      $mem = new VTExpressionsManager($adb);
  20      $fields = $mem->fields($moduleName);
  21      echo Zend_Json::encode(array('moduleFields' => $fields));
  22  }
  23  
  24  function vtJsonFunctions($adb) {
  25      $mem = new VTExpressionsManager($adb);
  26      $functions = $mem->expressionFunctions();
  27      echo Zend_Json::encode($functions);
  28  }
  29  
  30  function vtJsonDependentModules($adb, $request) {
  31      $moduleName = $request['modulename'];
  32      
  33      $result = $adb->pquery("SELECT fieldname, tabid, typeofdata, vtiger_ws_referencetype.type as reference_module FROM vtiger_field
  34                                      INNER JOIN vtiger_ws_fieldtype ON vtiger_field.uitype = vtiger_ws_fieldtype.uitype
  35                                      INNER JOIN vtiger_ws_referencetype ON vtiger_ws_fieldtype.fieldtypeid = vtiger_ws_referencetype.fieldtypeid
  36                              UNION
  37                              SELECT fieldname, tabid, typeofdata, relmodule as reference_module FROM vtiger_field
  38                                      INNER JOIN vtiger_fieldmodulerel ON vtiger_field.fieldid = vtiger_fieldmodulerel.fieldid", array());
  39      
  40      $noOfFields = $adb->num_rows($result);
  41      $dependentFields = array();
  42      // List of modules which will not be supported by 'Create Entity' workflow task
  43      $filterModules = array('Invoice', 'Quotes', 'SalesOrder', 'PurchaseOrder', 'Emails', 'Calendar', 'Events', 'Accounts');
  44      $skipFieldsList = array();
  45      for ($i = 0; $i < $noOfFields; ++$i) {
  46          $tabId = $adb->query_result($result, $i, 'tabid');
  47          $fieldName = $adb->query_result($result, $i, 'fieldname');
  48          $typeOfData = $adb->query_result($result, $i, 'typeofdata');
  49          $referenceModule = $adb->query_result($result, $i, 'reference_module');
  50          $tabModuleName = getTabModuleName($tabId);
  51          if (in_array($tabModuleName, $filterModules))
  52              continue;
  53          if ($referenceModule == $moduleName && $tabModuleName != $moduleName) {
  54              if(!vtlib_isModuleActive($tabModuleName))continue;
  55              $dependentFields[$tabModuleName] = array('fieldname' => $fieldName, 'modulelabel' => getTranslatedString($tabModuleName, $tabModuleName));            
  56          } else {
  57              $dataTypeInfo = explode('~', $typeOfData);
  58              if ($dataTypeInfo[1] == 'M') { // If the current reference field is mandatory
  59                  $skipFieldsList[$tabModuleName] = array('fieldname' => $fieldName);
  60              }
  61          }
  62      }
  63      foreach ($skipFieldsList as $tabModuleName => $fieldInfo) {
  64          $dependentFieldInfo = $dependentFields[$tabModuleName];
  65          if ($dependentFieldInfo['fieldname'] != $fieldInfo['fieldname']) {
  66              unset($dependentFields[$tabModuleName]);
  67          }
  68      }
  69      
  70      $returnValue = array('count' => count($dependentFields), 'entities' => $dependentFields);
  71      
  72      echo Zend_Json::encode($returnValue);
  73  }
  74  
  75  function vtJsonOwnersList($adb) {
  76      $ownersList = array();
  77      $activeUsersList = get_user_array(false);
  78      $allGroupsList = get_group_array(false);
  79      foreach ($activeUsersList as $userId => $userName) {
  80          $ownersList[] = array('label' => $userName, 'value' => getUserName($userId));
  81      }
  82      foreach ($allGroupsList as $groupId => $groupName) {
  83          $ownersList[] = array('label' => $groupName, 'value' => $groupName);
  84      }
  85  
  86      echo Zend_Json::encode($ownersList);
  87  }
  88  
  89  global $adb;
  90  $mode = vtlib_purify($_REQUEST['mode']);
  91  
  92  if ($mode == 'getfieldsjson') {
  93      vtJsonFields($adb, $_REQUEST);
  94  } elseif ($mode == 'getfunctionsjson') {
  95      vtJsonFunctions($adb);
  96  } elseif ($mode == 'getdependentfields') {
  97      vtJsonDependentModules($adb, $_REQUEST);
  98  } elseif ($mode == 'getownerslist') {
  99      vtJsonOwnersList($adb);
 100  }
 101  ?>


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