exposeMethod('GetPrintReport'); $this->exposeMethod('GetXLS'); $this->exposeMethod('GetCSV'); } function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Reports_Module_Model::getInstance($moduleName); $record = $request->get('record'); $reportModel = Reports_Record_Model::getCleanInstance($record); $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) { throw new AppException('LBL_PERMISSION_DENIED'); } } function preProcess(Vtiger_Request $request) { return false; } function postProcess(Vtiger_Request $request) { return false; } function process(Vtiger_request $request) { $mode = $request->getMode(); if(!empty($mode)) { $this->invokeExposedMethod($mode, $request); } } /** * Function exports the report in a Excel sheet * @param Vtiger_Request $request */ function GetXLS(Vtiger_Request $request) { $recordId = $request->get('record'); $reportModel = Reports_Record_Model::getInstanceById($recordId); $reportModel->set('advancedFilter', $request->get('advanced_filter')); $reportModel->getReportXLS(); } /** * Function exports report in a CSV file * @param Vtiger_Request $request */ function GetCSV(Vtiger_Request $request) { $recordId = $request->get('record'); $reportModel = Reports_Record_Model::getInstanceById($recordId); $reportModel->set('advancedFilter', $request->get('advanced_filter')); $reportModel->getReportCSV(); } /** * Function displays the report in printable format * @param Vtiger_Request $request */ function GetPrintReport(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $recordId = $request->get('record'); $reportModel = Reports_Record_Model::getInstanceById($recordId); $reportModel->set('advancedFilter', $request->get('advanced_filter')); $printData = $reportModel->getReportPrint(); $viewer->assign('REPORT_NAME', $reportModel->getName()); $viewer->assign('PRINT_DATA', $printData['data'][0]); $viewer->assign('TOTAL', $printData['total']); $viewer->assign('MODULE', $moduleName); $viewer->assign('ROW', $printData['data'][1]); $viewer->view('PrintReport.tpl', $moduleName); } }