[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Reports/views/ -> ChartEdit.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 Reports_ChartEdit_View extends Vtiger_Edit_View {
  12  	function __construct() {
  13          parent::__construct();
  14          $this->exposeMethod('step1');
  15          $this->exposeMethod('step2');
  16          $this->exposeMethod('step3');
  17      }
  18  
  19  	public function checkPermission(Vtiger_Request $request) {
  20          $moduleName = $request->getModule();
  21          $moduleModel = Reports_Module_Model::getInstance($moduleName);
  22          
  23          $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
  24          if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
  25              throw new AppException('LBL_PERMISSION_DENIED');
  26          }
  27  
  28          $record = $request->get('record');
  29          if ($record) {
  30              $reportModel = Reports_Record_Model::getCleanInstance($record);
  31              if (!$reportModel->isEditable()) {
  32                  throw new AppException('LBL_PERMISSION_DENIED');
  33              }
  34          }
  35      }
  36  
  37  	public function preProcess(Vtiger_Request $request) {
  38          parent::preProcess($request);
  39          $viewer = $this->getViewer($request);
  40          $record = $request->get('record');
  41          $moduleName = $request->getModule();
  42  
  43          $reportModel = Reports_Record_Model::getCleanInstance($record);
  44          $primaryModule = $reportModel->getPrimaryModule();
  45          $primaryModuleModel = Vtiger_Module_Model::getInstance($primaryModule);
  46          if ($primaryModuleModel) {
  47              $currentUser = Users_Record_Model::getCurrentUserModel();
  48              $userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId());
  49              $permission = $userPrivilegesModel->hasModulePermission($primaryModuleModel->getId());
  50  
  51              if (!$permission) {
  52                  $viewer->assign('MODULE', $primaryModule);
  53                  $viewer->assign('MESSAGE', 'LBL_PERMISSION_DENIED');
  54                  $viewer->view('OperationNotPermitted.tpl', $primaryModule);
  55                  exit;
  56              }
  57          }
  58  
  59          $viewer->assign('REPORT_MODEL', $reportModel);
  60          $viewer->assign('RECORD_ID', $record);
  61          $viewer->assign('MODULE', $moduleName);
  62          $viewer->assign('VIEW', 'ChartEdit');
  63          $viewer->assign('RECORD_MODE', $request->getMode());
  64          $viewer->view('EditChartHeader.tpl', $request->getModule());
  65      }
  66  
  67  	public function process(Vtiger_Request $request) {
  68          $mode = $request->getMode();
  69          if (!empty($mode)) {
  70              echo $this->invokeExposedMethod($mode, $request);
  71              exit;
  72          }
  73          $this->step1($request);
  74      }
  75  
  76  	function step1(Vtiger_Request $request) {
  77          $viewer = $this->getViewer($request);
  78          $moduleName = $request->getModule();
  79          $record = $request->get('record');
  80  
  81          $reportModel = Reports_Record_Model::getCleanInstance($record);
  82          if(!$reportModel->has('folderid')){
  83              $reportModel->set('folderid',$request->get('folder'));
  84          }
  85          $data = $request->getAll();
  86          foreach ($data as $name => $value) {
  87              $reportModel->set($name, $value);
  88          }
  89  
  90          $modulesList = $reportModel->getModulesList();
  91  
  92          if (!empty($record)) {
  93              $viewer->assign('MODE', 'edit');
  94          } else {
  95              $firstModuleName = reset($modulesList);
  96              if($firstModuleName)
  97                  $reportModel->setPrimaryModule($firstModuleName);
  98              $viewer->assign('MODE', '');
  99          }
 100  
 101          $reportModuleModel = $reportModel->getModule();
 102          $reportFolderModels = $reportModuleModel->getFolders();
 103  
 104          $relatedModules = $reportModel->getReportRelatedModules();
 105  
 106          foreach ($relatedModules as $primaryModule => $relatedModuleList) {
 107              $translatedRelatedModules = array();
 108  
 109              foreach($relatedModuleList as $relatedModuleName) {
 110                  $translatedRelatedModules[$relatedModuleName] = vtranslate($relatedModuleName, $relatedModuleName);
 111              }
 112              $relatedModules[$primaryModule] = $translatedRelatedModules;
 113          }
 114  
 115          $viewer->assign('MODULELIST', $modulesList);
 116          $viewer->assign('RELATED_MODULES', $relatedModules);
 117          $viewer->assign('REPORT_MODEL', $reportModel);
 118          $viewer->assign('REPORT_FOLDERS', $reportFolderModels);
 119          $viewer->assign('RECORD_ID', $record);
 120  
 121          if ($request->get('isDuplicate')) {
 122              $viewer->assign('IS_DUPLICATE', true);
 123          }
 124  
 125          $viewer->view('ChartEditStep1.tpl', $moduleName);
 126      }
 127  
 128  	function step2(Vtiger_Request $request) {
 129          $viewer = $this->getViewer($request);
 130          $moduleName = $request->getModule();
 131          $record = $request->get('record');
 132  
 133          $reportModel = Reports_Record_Model::getCleanInstance($record);
 134          if (!empty($record) && !$request->get('isDuplicate')) {
 135              $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter());
 136              $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
 137          }
 138          $data = $request->getAll();
 139          foreach ($data as $name => $value) {
 140              $reportModel->set($name, $value);
 141          }
 142          $primaryModule = $request->get('primary_module');
 143          $secondaryModules = $request->get('secondary_modules');
 144          $reportModel->setPrimaryModule($primaryModule);
 145          if(!empty($secondaryModules)){
 146              $secondaryModules = implode(':', $secondaryModules);
 147              $reportModel->setSecondaryModule($secondaryModules);
 148  
 149              $secondaryModules = explode(':',$secondaryModules);
 150          }else{
 151              $secondaryModules = array();
 152          }
 153  
 154          $viewer->assign('RECORD_ID', $record);
 155          $viewer->assign('REPORT_MODEL', $reportModel);
 156          $viewer->assign('PRIMARY_MODULE',$primaryModule);
 157  
 158          $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel);
 159          $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure();
 160          $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure();
 161  
 162          $viewer->assign('SECONDARY_MODULES',$secondaryModules);
 163          $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure);
 164          $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures);
 165          $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
 166          foreach($dateFilters as $comparatorKey => $comparatorInfo) {
 167              $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
 168              $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
 169              $comparatorInfo['label'] = vtranslate($comparatorInfo['label'],$moduleName);
 170              $dateFilters[$comparatorKey] = $comparatorInfo;
 171          }
 172          $viewer->assign('DATE_FILTERS', $dateFilters);
 173  
 174          if(($primaryModule == 'Calendar') || (in_array('Calendar', $secondaryModules))){
 175              $advanceFilterOpsByFieldType = Calendar_Field_Model::getAdvancedFilterOpsByFieldType();
 176          } else{
 177              $advanceFilterOpsByFieldType = Vtiger_Field_Model::getAdvancedFilterOpsByFieldType();
 178          }
 179          $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions());
 180          $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', $advanceFilterOpsByFieldType);
 181          $viewer->assign('MODULE', $moduleName);
 182  
 183          $calculationFields = $reportModel->get('calculation_fields');
 184          if($calculationFields) {
 185              $calculationFields = Zend_Json::decode($calculationFields);
 186              $viewer->assign('LINEITEM_FIELD_IN_CALCULATION', $reportModel->showLineItemFieldsInFilter($calculationFields));
 187          }
 188          if ($request->get('isDuplicate')) {
 189              $viewer->assign('IS_DUPLICATE', true);
 190          }
 191          $viewer->view('ChartEditStep2.tpl', $moduleName);
 192      }
 193  
 194  	function step3(Vtiger_request $request) {
 195          $viewer = $this->getViewer($request);
 196          $moduleName = $request->getModule();
 197          $record = $request->get('record');
 198  
 199          $reportModel = Reports_Record_Model::getCleanInstance($record);
 200          if (!empty($record)) {
 201              $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter());
 202              $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
 203          }
 204          $data = $request->getAll();
 205          foreach ($data as $name => $value) {
 206              $reportModel->set($name, $value);
 207          }
 208          $primaryModule = $request->get('primary_module');
 209          $secondaryModules = $request->get('secondary_modules');
 210          $reportModel->setPrimaryModule($primaryModule);
 211          if(!empty($secondaryModules)) {
 212              $secondaryModules = implode(':', $secondaryModules);
 213              $reportModel->setSecondaryModule($secondaryModules);
 214              $secondaryModules = explode(':',$secondaryModules);
 215          } else {
 216              $secondaryModules = array();
 217          }
 218  
 219          $chartModel = Reports_Chart_Model::getInstanceById($reportModel);
 220          $viewer->assign('CHART_MODEL', $chartModel);
 221  
 222          $viewer->assign('ADVANCED_FILTERS', $request->get('advanced_filter'));
 223          $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFieldsForAdvancedReporting());
 224          $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFieldsForAdvancedReporting());
 225          $viewer->assign('CALCULATION_FIELDS', $reportModel->getModuleCalculationFieldsForReport());
 226  
 227          if ($request->get('isDuplicate')) {
 228              $viewer->assign('IS_DUPLICATE', true);
 229          }
 230  
 231          $viewer->assign('RECORD_ID', $record);
 232          $viewer->assign('REPORT_MODEL', $reportModel);
 233          $viewer->assign('PRIMARY_MODULE',$primaryModule);
 234          $viewer->assign('SECONDARY_MODULES',$secondaryModules);
 235          $viewer->assign('MODULE', $moduleName);
 236  
 237          $viewer->view('ChartEditStep3.tpl', $moduleName);
 238      }
 239  
 240  
 241  
 242      /**
 243       * Function to get the list of Script models to be included
 244       * @param Vtiger_Request $request
 245       * @return <Array> - List of Vtiger_JsScript_Model instances
 246       */
 247  	function getHeaderScripts(Vtiger_Request $request) {
 248          $headerScriptInstances = parent::getHeaderScripts($request);
 249          $moduleName = $request->getModule();
 250  
 251          $jsFileNames = array(
 252              '~libraries/jquery/jquery.datepick.package-4.1.0/jquery.datepick.js',
 253              "modules.Reports.resources.Edit",
 254              "modules.Reports.resources.Edit1",
 255              "modules.Reports.resources.Edit2",
 256              "modules.Reports.resources.Edit3",
 257              "modules.$moduleName.resources.ChartEdit",
 258              "modules.$moduleName.resources.ChartEdit1",
 259              "modules.$moduleName.resources.ChartEdit2",
 260              "modules.$moduleName.resources.ChartEdit3"
 261          );
 262  
 263          $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 264          $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
 265          return $headerScriptInstances;
 266      }
 267  }


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