[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Reports/views/ -> SaveAjax.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 Reports_SaveAjax_View extends Vtiger_IndexAjax_View {
  12  
  13  	public function checkPermission(Vtiger_Request $request) {
  14          $record = $request->get('record');
  15          if (!$record) {
  16              throw new AppException('LBL_PERMISSION_DENIED');
  17          }
  18  
  19          $moduleName = $request->getModule();
  20          $moduleModel = Reports_Module_Model::getInstance($moduleName);
  21          $reportModel = Reports_Record_Model::getCleanInstance($record);
  22  
  23          $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
  24          if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId()) && !$reportModel->isEditable()) {
  25              throw new AppException('LBL_PERMISSION_DENIED');
  26          }
  27      }
  28  
  29  	public function process(Vtiger_Request $request) {
  30          $mode = $request->getMode();
  31          $viewer = $this->getViewer($request);
  32          $moduleName = $request->getModule();
  33  
  34          $record = $request->get('record');
  35          $reportModel = Reports_Record_Model::getInstanceById($record);
  36  
  37          $reportModel->setModule('Reports');
  38         
  39          $reportModel->set('advancedFilter', $request->get('advanced_filter'));
  40  
  41          $page = $request->get('page');
  42          $pagingModel = new Vtiger_Paging_Model();
  43          $pagingModel->set('page', $page);
  44          $pagingModel->set('limit', Reports_Detail_View::REPORT_LIMIT);
  45  
  46          if ($mode === 'save') {
  47              $reportModel->saveAdvancedFilters();
  48              $reportData = $reportModel->getReportData($pagingModel);
  49              $data = $reportData['data'];
  50          } else if ($mode === 'generate') {
  51              $reportData = $reportModel->generateData($pagingModel);
  52              $data = $reportData['data'];
  53          }
  54          $calculation = $reportModel->generateCalculationData();
  55  
  56          $viewer->assign('PRIMARY_MODULE', $reportModel->getPrimaryModule());
  57          $viewer->assign('CALCULATION_FIELDS', $calculation);
  58          $viewer->assign('DATA', $data);
  59          $viewer->assign('RECORD_ID', $record);
  60          $viewer->assign('PAGING_MODEL', $pagingModel);
  61          $viewer->assign('MODULE', $moduleName);
  62          $viewer->assign('NEW_COUNT',$reportData['count']);
  63          $viewer->assign('REPORT_RUN_INSTANCE', ReportRun::getInstance($record));
  64          $viewer->view('ReportContents.tpl', $moduleName);
  65      }
  66  
  67          public function validateRequest(Vtiger_Request $request) { 
  68              $request->validateWriteAccess(); 
  69          } 
  70  }


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