[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Reports/views/ -> ChartDetail.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 Ondemand Commercial
   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_ChartDetail_View extends Vtiger_Index_View {
  12  
  13  	public function checkPermission(Vtiger_Request $request) {
  14          $moduleName = $request->getModule();
  15          $moduleModel = Reports_Module_Model::getInstance($moduleName);
  16  
  17          $record = $request->get('record');
  18          $reportModel = Reports_Record_Model::getCleanInstance($record);
  19  
  20          $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
  21          if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId()) && !$reportModel->isEditable()) {
  22              throw new AppException('LBL_PERMISSION_DENIED');
  23          }
  24      }
  25      
  26  	function preProcess(Vtiger_Request $request) {
  27          $viewer = $this->getViewer($request);
  28          $moduleName = $request->getModule();
  29          $recordId = $request->get('record');
  30  
  31          $this->record = $detailViewModel = Reports_DetailView_Model::getInstance($moduleName, $recordId);
  32  
  33          parent::preProcess($request);
  34  
  35          $reportModel = $detailViewModel->getRecord();
  36          $reportModel->setModule('Reports');
  37  
  38          $primaryModule = $reportModel->getPrimaryModule();
  39          $secondaryModules = $reportModel->getSecondaryModules();
  40          $primaryModuleModel = Vtiger_Module_Model::getInstance($primaryModule);
  41  
  42          $currentUser = Users_Record_Model::getCurrentUserModel();
  43          $userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId());
  44          $permission = $userPrivilegesModel->hasModulePermission($primaryModuleModel->getId());
  45  
  46          if(!$permission) {
  47              $viewer->assign('MODULE', $primaryModule);
  48              $viewer->assign('MESSAGE', 'LBL_PERMISSION_DENIED');
  49              $viewer->view('OperationNotPermitted.tpl', $primaryModule);
  50              exit;
  51          }
  52  
  53          // Advanced filter conditions
  54          $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
  55          $viewer->assign('PRIMARY_MODULE', $primaryModule);
  56  
  57          $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel);
  58          $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure();
  59          $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure();
  60  
  61          $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure);
  62          $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures);
  63  
  64          $secondaryModuleIsCalendar = strpos($secondaryModules, 'Calendar');
  65          if(($primaryModule == 'Calendar') || ($secondaryModuleIsCalendar !== FALSE)){
  66              $advanceFilterOpsByFieldType = Calendar_Field_Model::getAdvancedFilterOpsByFieldType();
  67          } else{
  68              $advanceFilterOpsByFieldType = Vtiger_Field_Model::getAdvancedFilterOpsByFieldType();
  69          }
  70          $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions());
  71          $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', $advanceFilterOpsByFieldType);
  72          $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
  73          foreach($dateFilters as $comparatorKey => $comparatorInfo) {
  74              $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
  75              $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
  76              $comparatorInfo['label'] = vtranslate($comparatorInfo['label'],$moduleName);
  77              $dateFilters[$comparatorKey] = $comparatorInfo;
  78          }
  79  
  80          $reportChartModel = Reports_Chart_Model::getInstanceById($reportModel);
  81  
  82          $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFieldsForAdvancedReporting());
  83          $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFieldsForAdvancedReporting());
  84          $viewer->assign('CALCULATION_FIELDS', $reportModel->getModuleCalculationFieldsForReport());
  85  
  86          $viewer->assign('DATE_FILTERS', $dateFilters);
  87          $viewer->assign('REPORT_MODEL', $reportModel);
  88          $viewer->assign('RECORD', $recordId);
  89          $viewer->assign('MODULE', $moduleName);
  90          $viewer->assign('CHART_MODEL', $reportChartModel);
  91  
  92          $viewer->view('ChartReportHeader.tpl', $moduleName);
  93      }
  94  
  95  	function process(Vtiger_Request $request) {
  96          $mode = $request->getMode();
  97          if(!empty($mode)) {
  98              $this->invokeExposedMethod($mode, $request);
  99              return;
 100          }
 101          echo $this->getReport($request);
 102      }
 103  
 104  	function getReport(Vtiger_Request $request) {
 105          $viewer = $this->getViewer($request);
 106          $moduleName = $request->getModule();
 107  
 108          $record = $request->get('record');
 109  
 110          $reportModel = Reports_Record_Model::getInstanceById($record);
 111          $reportChartModel = Reports_Chart_Model::getInstanceById($reportModel);
 112          $secondaryModules = $reportModel->getSecondaryModules();
 113          if(empty($secondaryModules)) {
 114              $viewer->assign('CLICK_THROUGH', true);
 115          }
 116  
 117          $viewer->assign('ADVANCED_FILTERS', $request->get('advanced_filter'));
 118          $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFields());
 119          $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFields());
 120          $viewer->assign('CALCULATION_FIELDS', $reportModel->getModuleCalculationFieldsForReport());
 121          
 122          $data = $reportChartModel->getData();
 123          $viewer->assign('CHART_TYPE', $reportChartModel->getChartType());
 124          $viewer->assign('DATA', json_encode($data, JSON_HEX_APOS));
 125          $viewer->assign('REPORT_MODEL', $reportModel);
 126  
 127  
 128          $viewer->assign('RECORD_ID', $record);
 129          $viewer->assign('REPORT_MODEL', $reportModel);
 130          $viewer->assign('SECONDARY_MODULES',$secondaryModules);
 131          $viewer->assign('MODULE', $moduleName);
 132  
 133          $viewer->view('ChartReportContents.tpl', $moduleName);
 134      }
 135  
 136      /**
 137       * Function to get the list of Script models to be included
 138       * @param Vtiger_Request $request
 139       * @return <Array> - List of Vtiger_JsScript_Model instances
 140       */
 141  	function getHeaderScripts(Vtiger_Request $request) {
 142          $headerScriptInstances = parent::getHeaderScripts($request);
 143          $moduleName = $request->getModule();
 144  
 145          $jsFileNames = array(
 146              'modules.Vtiger.resources.Detail',
 147              "modules.Vtiger.resources.dashboards.Widget",
 148              "modules.$moduleName.resources.Detail",
 149              "modules.$moduleName.resources.Edit",
 150              "modules.$moduleName.resources.Edit3",
 151              "modules.$moduleName.resources.ChartEdit",
 152              "modules.$moduleName.resources.ChartEdit2",
 153              "modules.$moduleName.resources.ChartEdit3",
 154              "modules.$moduleName.resources.ChartDetail",
 155  
 156              '~/libraries/jquery/jqplot/jquery.jqplot.min.js',
 157              '~/libraries/jquery/jqplot/plugins/jqplot.barRenderer.min.js',
 158              '~/libraries/jquery/jqplot/plugins/jqplot.canvasTextRenderer.min.js',
 159              '~/libraries/jquery/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js',
 160              '~/libraries/jquery/jqplot/plugins/jqplot.categoryAxisRenderer.min.js',
 161              '~/libraries/jquery/jqplot/plugins/jqplot.pointLabels.min.js',
 162              '~/libraries/jquery/jqplot/plugins/jqplot.highlighter.min.js',
 163              '~/libraries/jquery/jqplot/plugins/jqplot.pieRenderer.min.js'
 164          );
 165  
 166          $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 167          $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
 168          return $headerScriptInstances;
 169      }
 170  
 171      /**
 172       * Function to get the list of Css models to be included
 173       * @param Vtiger_Request $request
 174       * @return <Array> - List of Vtiger_CssScript_Model instances
 175       */
 176  	public function getHeaderCss(Vtiger_Request $request) {
 177          $parentHeaderCssScriptInstances = parent::getHeaderCss($request);
 178  
 179          $headerCss = array(
 180              '~/libraries/jquery/jqplot/jquery.jqplot.min.css',
 181          );
 182          $cssScripts = $this->checkAndConvertCssStyles($headerCss);
 183          $headerCssScriptInstances = array_merge($parentHeaderCssScriptInstances , $cssScripts);
 184          return $headerCssScriptInstances;
 185      }
 186  
 187  }


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