first commit
This commit is contained in:
89
modules/Reports/actions/ChartActions.php
Normal file
89
modules/Reports/actions/ChartActions.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_ChartActions_Action extends Vtiger_Action_Controller {
|
||||
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
$this->exposeMethod('pinChartToDashboard');
|
||||
$this->exposeMethod('unpinChartFromDashboard');
|
||||
}
|
||||
|
||||
public function checkPermission(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$moduleModel = Reports_Module_Model::getInstance($moduleName);
|
||||
|
||||
$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
|
||||
if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$mode = $request->get('mode');
|
||||
if(!empty($mode)) {
|
||||
$this->invokeExposedMethod($mode, $request);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to add the report chart to dashboard
|
||||
* @param Vtiger_Request $request
|
||||
*/
|
||||
public function pinChartToDashboard(Vtiger_Request $request){
|
||||
$db = PearDatabase::getInstance();
|
||||
$reportid = $request->get('reportid');
|
||||
$currentUser = Users_Record_Model::getCurrentUserModel();
|
||||
$currentuserid = $currentUser->getId();
|
||||
$widgetTitle = $request->get('title');
|
||||
$response = new Vtiger_Response();
|
||||
|
||||
$query = "SELECT 1 FROM vtiger_module_dashboard_widgets WHERE reportid = ? AND userid = ?";
|
||||
$param = array($reportid,$currentuserid);
|
||||
$result = $db->pquery($query, $param);
|
||||
$numOfRows = $db->num_rows($result);
|
||||
if($numOfRows >= 1){
|
||||
$result = array('pinned'=>false,'duplicate'=>true);
|
||||
$response->setResult($result);
|
||||
$response->emit();
|
||||
return;
|
||||
}
|
||||
$dashBoardTabId = $request->get('dashBoardTabId');
|
||||
if(empty($dashBoardTabId)) {
|
||||
// In Vtiger7, we need to pin this report widget to first tab of that user
|
||||
$dasbBoardModel = Vtiger_DashBoard_Model::getInstance("Reports");
|
||||
$defaultTab = $dasbBoardModel->getUserDefaultTab($currentUser->getId());
|
||||
$dashBoardTabId = $defaultTab['id'];
|
||||
}
|
||||
|
||||
$query = "INSERT INTO vtiger_module_dashboard_widgets (userid,reportid,linkid,title,dashboardtabid) VALUES (?,?,?,?,?)";
|
||||
$param = array($currentuserid,$reportid,0,$widgetTitle,$dashBoardTabId);
|
||||
$result = $db->pquery($query, $param);
|
||||
|
||||
$result = array('pinned'=>true,'duplicate'=>false);
|
||||
$response->setResult($result);
|
||||
$response->emit();
|
||||
|
||||
}
|
||||
|
||||
function unpinChartFromDashboard($request) {
|
||||
$db = PearDatabase::getInstance();
|
||||
$reportid = $request->get('reportid');
|
||||
$currentUser = Users_Record_Model::getCurrentUserModel();
|
||||
|
||||
$widgetInstance = Vtiger_Widget_Model::getInstanceWithReportId($reportid, $currentUser->getId());
|
||||
$widgetInstance->remove();
|
||||
|
||||
$response = new Vtiger_Response();
|
||||
$response->setResult(array('unpinned' => true));
|
||||
$response->emit();
|
||||
}
|
||||
}
|
||||
63
modules/Reports/actions/ChartSave.php
Normal file
63
modules/Reports/actions/ChartSave.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_ChartSave_Action extends Reports_Save_Action {
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
|
||||
$record = $request->get('record');
|
||||
$reportModel = new Reports_Record_Model();
|
||||
$reportModel->setModule('Reports');
|
||||
if(!empty($record) && !$request->get('isDuplicate')) {
|
||||
$reportModel->setId($record);
|
||||
}
|
||||
|
||||
$reportModel->set('reportname', $request->get('reportname'));
|
||||
$reportModel->set('folderid', $request->get('folderid'));
|
||||
$reportModel->set('description', $request->get('reports_description'));
|
||||
$reportModel->set('members', $request->get('members'));
|
||||
|
||||
$reportModel->setPrimaryModule($request->get('primary_module'));
|
||||
|
||||
$secondaryModules = $request->get('secondary_modules');
|
||||
$secondaryModules = implode(':', $secondaryModules);
|
||||
$reportModel->setSecondaryModule($secondaryModules);
|
||||
|
||||
$reportModel->set('advancedFilter', $request->get('advanced_filter'));
|
||||
$reportModel->set('reporttype', 'chart');
|
||||
|
||||
|
||||
$dataFields = $request->get('datafields', 'count(*)');
|
||||
if(is_string($dataFields)) $dataFields = array($dataFields);
|
||||
|
||||
$reportModel->set('reporttypedata', Zend_Json::encode(array(
|
||||
'type'=>$request->get('charttype', 'pieChart'),
|
||||
'groupbyfield'=>$request->get('groupbyfield'),
|
||||
'datafields'=>$dataFields)
|
||||
));
|
||||
$reportModel->save();
|
||||
|
||||
$scheduleReportModel = new Reports_ScheduleReports_Model();
|
||||
$scheduleReportModel->set('scheduleid', $request->get('schtypeid'));
|
||||
$scheduleReportModel->set('schtime', date('H:i', strtotime($request->get('schtime'))));
|
||||
$scheduleReportModel->set('schdate', $request->get('schdate'));
|
||||
$scheduleReportModel->set('schdayoftheweek', $request->get('schdayoftheweek'));
|
||||
$scheduleReportModel->set('schdayofthemonth', $request->get('schdayofthemonth'));
|
||||
$scheduleReportModel->set('schannualdates', $request->get('schannualdates'));
|
||||
$scheduleReportModel->set('reportid', $reportModel->getId());
|
||||
$scheduleReportModel->set('recipients', $request->get('recipients'));
|
||||
$scheduleReportModel->set('isReportScheduled', $request->get('enable_schedule'));
|
||||
$scheduleReportModel->set('specificemails', $request->get('specificemails'));
|
||||
$scheduleReportModel->saveScheduleReport();
|
||||
$loadUrl = $reportModel->getDetailViewUrl();
|
||||
header("Location: $loadUrl");
|
||||
}
|
||||
}
|
||||
41
modules/Reports/actions/CheckDuplicate.php
Normal file
41
modules/Reports/actions/CheckDuplicate.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_CheckDuplicate_Action extends Vtiger_Action_Controller {
|
||||
|
||||
function checkPermission(Vtiger_Request $request) {
|
||||
return;
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$reportName = $request->get('reportname');
|
||||
$record = $request->get('record');
|
||||
|
||||
if ($record) {
|
||||
$recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName);
|
||||
} else {
|
||||
$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
|
||||
}
|
||||
|
||||
$recordModel->set('reportname', $reportName);
|
||||
$recordModel->set('reportid', $record);
|
||||
$recordModel->set('isDuplicate', $request->get('isDuplicate'));
|
||||
|
||||
if (!$recordModel->checkDuplicate()) {
|
||||
$result = array('success'=>false);
|
||||
} else {
|
||||
$result = array('success'=>true, 'message'=>vtranslate('LBL_DUPLICATES_EXIST', $moduleName));
|
||||
}
|
||||
$response = new Vtiger_Response();
|
||||
$response->setResult($result);
|
||||
$response->emit();
|
||||
}
|
||||
}
|
||||
38
modules/Reports/actions/DeleteAjax.php
Normal file
38
modules/Reports/actions/DeleteAjax.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_DeleteAjax_Action extends Vtiger_DeleteAjax_Action {
|
||||
|
||||
public function checkPermission(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$record = $request->get('record');
|
||||
|
||||
$currentUserPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
|
||||
if(!$currentUserPrivilegesModel->isPermitted($moduleName, 'Delete', $record)) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$recordId = $request->get('record');
|
||||
$response = new Vtiger_Response();
|
||||
|
||||
$recordModel = Reports_Record_Model::getInstanceById($recordId, $moduleName);
|
||||
|
||||
if (!$recordModel->isDefault() && $recordModel->isEditable() && $recordModel->isEditableBySharing()) {
|
||||
$recordModel->delete();
|
||||
$response->setResult(array(vtranslate('LBL_REPORTS_DELETED_SUCCESSFULLY', $parentModule)));
|
||||
} else {
|
||||
$response->setError(vtranslate('LBL_REPORT_DELETE_DENIED', $moduleName));
|
||||
}
|
||||
$response->emit();
|
||||
}
|
||||
}
|
||||
47
modules/Reports/actions/DetailAjax.php
Normal file
47
modules/Reports/actions/DetailAjax.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_DetailAjax_Action extends Vtiger_BasicAjax_Action{
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
$this->exposeMethod('getRecordsCount');
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$mode = $request->get('mode');
|
||||
if(!empty($mode)) {
|
||||
$this->invokeExposedMethod($mode, $request);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get related Records count from this relation
|
||||
* @param <Vtiger_Request> $request
|
||||
* @return <Number> Number of record from this relation
|
||||
*/
|
||||
public function getRecordsCount(Vtiger_Request $request) {
|
||||
$record = $request->get('record');
|
||||
$reportModel = Reports_Record_Model::getInstanceById($record);
|
||||
$reportModel->setModule('Reports');
|
||||
$reportModel->set('advancedFilter', $request->get('advanced_filter'));
|
||||
|
||||
$advFilterSql = $reportModel->getAdvancedFilterSQL();
|
||||
$query = $reportModel->getReportSQL($advFilterSql, 'PDF');
|
||||
$countQuery = $reportModel->generateCountQuery($query);
|
||||
|
||||
$count = $reportModel->getReportsCount($countQuery);
|
||||
$response = new Vtiger_Response();
|
||||
$response->setResult($count);
|
||||
$response->emit();
|
||||
}
|
||||
|
||||
}
|
||||
98
modules/Reports/actions/Folder.php
Normal file
98
modules/Reports/actions/Folder.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_Folder_Action extends Vtiger_Action_Controller {
|
||||
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
$this->exposeMethod('save');
|
||||
$this->exposeMethod('delete');
|
||||
}
|
||||
|
||||
public function checkPermission(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$moduleModel = Reports_Module_Model::getInstance($moduleName);
|
||||
|
||||
$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
|
||||
if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$mode = $request->get('mode');
|
||||
if(!empty($mode)) {
|
||||
$this->invokeExposedMethod($mode, $request);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that saves/updates the Folder
|
||||
* @param Vtiger_Request $request
|
||||
*/
|
||||
function save(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$folderModel = Reports_Folder_Model::getInstance();
|
||||
$folderId = $request->get('folderid');
|
||||
|
||||
if(!empty($folderId)) {
|
||||
$folderModel->set('folderid', $folderId);
|
||||
}
|
||||
|
||||
// we need to decode if encoded values are given(for XSS vulnerability)
|
||||
$folderModel->set('foldername', decode_html($request->get('foldername')));
|
||||
$folderModel->set('description', decode_html($request->get('description')));
|
||||
|
||||
if ($folderModel->checkDuplicate()) {
|
||||
throw new AppException(vtranslate('LBL_FOLDER_EXISTS', $moduleName));
|
||||
}
|
||||
|
||||
$folderModel->save();
|
||||
$result = array('success' => true, 'message' => vtranslate('LBL_FOLDER_SAVED', $moduleName), 'info' => $folderModel->getInfoArray());
|
||||
|
||||
$response = new Vtiger_Response();
|
||||
$response->setResult($result);
|
||||
$response->emit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that deletes the Folder
|
||||
* @param Vtiger_Request $request
|
||||
*/
|
||||
function delete(Vtiger_Request $request) {
|
||||
$folderId = $request->get('folderid');
|
||||
$moduleName = $request->getModule();
|
||||
if ($folderId) {
|
||||
$folderModel = Reports_Folder_Model::getInstanceById($folderId);
|
||||
$success = false;
|
||||
if ($folderModel->isDefault()) {
|
||||
$message = vtranslate('LBL_FOLDER_CAN_NOT_BE_DELETED', $moduleName);
|
||||
} else {
|
||||
if ($folderModel->hasReports()) {
|
||||
$message = vtranslate('LBL_FOLDER_NOT_EMPTY', $moduleName);
|
||||
} else {
|
||||
$folderModel->delete();
|
||||
$message = vtranslate('LBL_FOLDER_DELETED', $moduleName);
|
||||
$success = true;
|
||||
}
|
||||
}
|
||||
|
||||
$result = array('success' => $success, 'message' => $message);
|
||||
$response = new Vtiger_Response();
|
||||
$response->setResult($result);
|
||||
$response->emit();
|
||||
}
|
||||
}
|
||||
|
||||
public function validateRequest(Vtiger_Request $request) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
57
modules/Reports/actions/MassDelete.php
Normal file
57
modules/Reports/actions/MassDelete.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_MassDelete_Action extends Vtiger_Mass_Action {
|
||||
|
||||
public function checkPermission(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$moduleModel = Reports_Module_Model::getInstance($moduleName);
|
||||
|
||||
$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
|
||||
if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
}
|
||||
|
||||
function preProcess(Vtiger_Request $request) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function postProcess(Vtiger_Request $request) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$parentModule = 'Reports';
|
||||
$recordIds = Reports_Record_Model::getRecordsListFromRequest($request);
|
||||
|
||||
$reportsDeleteDenied = array();
|
||||
foreach($recordIds as $recordId) {
|
||||
$recordModel = Reports_Record_Model::getInstanceById($recordId);
|
||||
if (!$recordModel->isDefault() && $recordModel->isEditable() && $recordModel->isEditableBySharing()) {
|
||||
$success = $recordModel->delete();
|
||||
if(!$success) {
|
||||
$reportsDeleteDenied[] = vtranslate($recordModel->getName(), $parentModule);
|
||||
}
|
||||
} else {
|
||||
$reportsDeleteDenied[] = vtranslate($recordModel->getName(), $parentModule);
|
||||
}
|
||||
}
|
||||
|
||||
$response = new Vtiger_Response();
|
||||
if (empty ($reportsDeleteDenied)) {
|
||||
$response->setResult(array(vtranslate('LBL_REPORTS_DELETED_SUCCESSFULLY', $parentModule)));
|
||||
} else {
|
||||
$response->setError($reportsDeleteDenied, vtranslate('LBL_DENIED_REPORTS', $parentModule));
|
||||
}
|
||||
|
||||
$response->emit();
|
||||
}
|
||||
}
|
||||
53
modules/Reports/actions/MoveReports.php
Normal file
53
modules/Reports/actions/MoveReports.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_MoveReports_Action extends Vtiger_Mass_Action {
|
||||
|
||||
public function checkPermission(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$moduleModel = Reports_Module_Model::getInstance($moduleName);
|
||||
|
||||
$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
|
||||
if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$parentModule = 'Reports';
|
||||
$reportIdsList = Reports_Record_Model::getRecordsListFromRequest($request);
|
||||
$folderId = $request->get('folderid');
|
||||
$viewname=$request->get('viewname');
|
||||
if($folderId==$viewname){
|
||||
$sameTargetFolder=1;
|
||||
}
|
||||
if (!empty ($reportIdsList)) {
|
||||
foreach ($reportIdsList as $reportId) {
|
||||
$reportModel = Reports_Record_Model::getInstanceById($reportId);
|
||||
if (!$reportModel->isDefault() && $reportModel->isEditable() && $reportModel->isEditableBySharing()) {
|
||||
$reportModel->move($folderId);
|
||||
} else {
|
||||
$reportsMoveDenied[] = vtranslate($reportModel->getName(), $parentModule);
|
||||
}
|
||||
}
|
||||
}
|
||||
$response = new Vtiger_Response();
|
||||
if($sameTargetFolder){
|
||||
$result=array('success'=>false, 'message'=>vtranslate('LBL_SAME_SOURCE_AND_TARGET_FOLDER', $parentModule));
|
||||
}
|
||||
else if(empty ($reportsMoveDenied)) {
|
||||
$result=array('success'=>true, 'message'=>vtranslate('LBL_REPORTS_MOVED_SUCCESSFULLY', $parentModule));
|
||||
}else {
|
||||
$result = array('success'=>false, 'message'=>vtranslate('LBL_DENIED_REPORTS', $parentModule),'denied'=>$reportsMoveDenied);
|
||||
}
|
||||
$response->setResult($result);
|
||||
$response->emit();
|
||||
}
|
||||
}
|
||||
84
modules/Reports/actions/Save.php
Normal file
84
modules/Reports/actions/Save.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/*+***********************************************************************************
|
||||
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||||
* ("License"); You may not use this file except in compliance with the License
|
||||
* The Original Code is: vtiger CRM Open Source
|
||||
* The Initial Developer of the Original Code is vtiger.
|
||||
* Portions created by vtiger are Copyright (C) vtiger.
|
||||
* All Rights Reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
class Reports_Save_Action extends Vtiger_Save_Action {
|
||||
|
||||
public function checkPermission(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
$moduleModel = Reports_Module_Model::getInstance($moduleName);
|
||||
|
||||
$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
|
||||
if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
|
||||
$record = $request->get('record');
|
||||
if ($record) {
|
||||
$reportModel = Reports_Record_Model::getCleanInstance($record);
|
||||
if (!$reportModel->isEditable()) {
|
||||
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function process(Vtiger_Request $request) {
|
||||
$moduleName = $request->getModule();
|
||||
|
||||
$record = $request->get('record');
|
||||
$reportModel = new Reports_Record_Model();
|
||||
$reportModel->setModule('Reports');
|
||||
if(!empty($record) && !$request->get('isDuplicate')) {
|
||||
$reportModel->setId($record);
|
||||
}
|
||||
|
||||
$reporttype = $request->get('reporttype');
|
||||
if(empty($reporttype)) $reporttype='tabular';
|
||||
$reportModel->set('reportname', $request->get('reportname'));
|
||||
$reportModel->set('folderid', $request->get('folderid'));
|
||||
$reportModel->set('description', $request->get('reports_description'));
|
||||
$reportModel->set('reporttype', $reporttype);
|
||||
|
||||
$reportModel->setPrimaryModule($request->get('primary_module'));
|
||||
|
||||
$secondaryModules = $request->get('secondary_modules');
|
||||
$secondaryModules = implode(':', $secondaryModules);
|
||||
$reportModel->setSecondaryModule($secondaryModules);
|
||||
|
||||
$reportModel->set('selectedFields', $request->get('selected_fields'));
|
||||
$reportModel->set('sortFields', $request->get('selected_sort_fields'));
|
||||
$reportModel->set('calculationFields', $request->get('selected_calculation_fields'));
|
||||
|
||||
$reportModel->set('standardFilter', $request->get('standard_fiter'));
|
||||
$reportModel->set('advancedFilter', $request->get('advanced_filter'));
|
||||
$reportModel->set('advancedGroupFilterConditions', $request->get('advanced_group_condition'));
|
||||
$reportModel->set('members', $request->get('members'));
|
||||
|
||||
$reportModel->save();
|
||||
|
||||
//Scheduled Reports
|
||||
$scheduleReportModel = new Reports_ScheduleReports_Model();
|
||||
$scheduleReportModel->set('scheduleid', $request->get('schtypeid'));
|
||||
$scheduleReportModel->set('schtime', date('H:i', strtotime($request->get('schtime'))));
|
||||
$scheduleReportModel->set('schdate', $request->get('schdate'));
|
||||
$scheduleReportModel->set('schdayoftheweek', $request->get('schdayoftheweek'));
|
||||
$scheduleReportModel->set('schdayofthemonth', $request->get('schdayofthemonth'));
|
||||
$scheduleReportModel->set('schannualdates', $request->get('schannualdates'));
|
||||
$scheduleReportModel->set('reportid', $reportModel->getId());
|
||||
$scheduleReportModel->set('recipients', $request->get('recipients'));
|
||||
$scheduleReportModel->set('isReportScheduled', $request->get('enable_schedule'));
|
||||
$scheduleReportModel->set('specificemails', $request->get('specificemails'));
|
||||
$scheduleReportModel->set('fileformat', $request->get('fileformat'));
|
||||
$scheduleReportModel->saveScheduleReport();
|
||||
//END
|
||||
|
||||
$loadUrl = $reportModel->getDetailViewUrl();
|
||||
header("Location: $loadUrl");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user