[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Campaigns/actions/ -> RelationAjax.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 Campaigns_RelationAjax_Action extends Vtiger_RelationAjax_Action {
  12  
  13  	public function __construct() {
  14          parent::__construct();
  15          $this->exposeMethod('addRelationsFromRelatedModuleViewId');
  16          $this->exposeMethod('updateStatus');
  17      }
  18  
  19      /**
  20       * Function to add relations using related module viewid
  21       * @param Vtiger_Request $request
  22       */
  23  	public function addRelationsFromRelatedModuleViewId(Vtiger_Request $request) {
  24          $sourceRecordId = $request->get('sourceRecord');
  25          $relatedModuleName = $request->get('relatedModule');
  26  
  27          $viewId = $request->get('viewId');
  28          if ($viewId) {
  29              $sourceModuleModel = Vtiger_Module_Model::getInstance($request->getModule());
  30              $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModuleName);
  31  
  32              $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel);
  33              $emailEnabledModulesInfo = $relationModel->getEmailEnabledModulesInfoForDetailView();
  34  
  35              if (array_key_exists($relatedModuleName, $emailEnabledModulesInfo)) {
  36                  $fieldName = $emailEnabledModulesInfo[$relatedModuleName]['fieldName'];
  37  
  38                  $db = PearDatabase::getInstance();
  39                  $currentUserModel = Users_Record_Model::getCurrentUserModel();
  40  
  41                  $queryGenerator = new QueryGenerator($relatedModuleName, $currentUserModel);
  42                  $queryGenerator->initForCustomViewById($viewId);
  43  
  44                  $query = $queryGenerator->getQuery();
  45                  $result = $db->pquery($query, array());
  46  
  47                  $numOfRows = $db->num_rows($result);
  48                  for ($i=0; $i<$numOfRows; $i++) {
  49                      $relatedRecordIdsList[] = $db->query_result($result, $i, $fieldName);
  50                  }
  51                  if(empty($relatedRecordIdsList)){
  52                      $response = new Vtiger_Response();
  53                      $response->setResult(array(false));
  54                      $response->emit();
  55                  } else{
  56                      foreach($relatedRecordIdsList as $relatedRecordId) {
  57                          $relationModel->addRelation($sourceRecordId, $relatedRecordId);
  58                      }
  59                  }
  60              }
  61          }
  62      }
  63  
  64      /**
  65       * Function to update Relation status
  66       * @param Vtiger_Request $request
  67       */
  68  	public function updateStatus(Vtiger_Request $request) {
  69          $relatedModuleName = $request->get('relatedModule');
  70          $relatedRecordId = $request->get('relatedRecord');
  71          $status = $request->get('status');
  72          $response = new Vtiger_Response();
  73  
  74          if ($relatedRecordId && $status && $status < 5) {
  75              $sourceModuleModel = Vtiger_Module_Model::getInstance($request->getModule());
  76              $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModuleName);
  77  
  78              $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel);
  79              $relationModel->updateStatus($request->get('sourceRecord'), array($relatedRecordId => $status));
  80  
  81              $response->setResult(array(true));
  82          } else {
  83              $response->setError($code);
  84          }
  85          $response->emit();
  86      }
  87  }


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