getSubordinateUsers(); $subOrdinates = array(); foreach($subOrdinateUsers as $id=>$name) { $subOrdinates[] = $id; } $owner = $reportModel->get('owner'); if($currentUser->isAdminUser() || in_array($owner, $subOrdinates) || $owner == $currentUser->getId()) { $reportId = $reportModel->getId(); $db = PearDatabase::getInstance(); $db->pquery('DELETE FROM vtiger_selectquery WHERE queryid = ?', array($reportId)); $db->pquery('DELETE FROM vtiger_report WHERE reportid = ?', array($reportId)); $db->pquery('DELETE FROM vtiger_schedulereports WHERE reportid = ?', array($reportId)); $db->pquery('DELETE FROM vtiger_reporttype WHERE reportid = ?', array($reportId)); $result = $db->pquery('SELECT * FROM vtiger_homereportchart WHERE reportid = ?',array($reportId)); $numOfRows = $db->num_rows($result); for ($i = 0; $i < $numOfRows; $i++) { $homePageChartIdsList[] = $adb->query_result($result, $i, 'stuffid'); } if ($homePageChartIdsList) { $deleteQuery = 'DELETE FROM vtiger_homestuff WHERE stuffid IN (' . implode(",", $homePageChartIdsList) . ')'; $db->pquery($deleteQuery, array()); } if($reportModel->get('reporttype') == 'chart'){ Vtiger_Widget_Model::deleteChartReportWidgets($reportId); } return true; } return false; } /** * Function returns quick links for the module * @return */ function getSideBarLinks($linkParams) { $quickLinks = array( array( 'linktype' => 'SIDEBARLINK', 'linklabel' => 'LBL_REPORTS', 'linkurl' => $this->getListViewUrl(), 'linkicon' => '', ), ); foreach($quickLinks as $quickLink) { $links['SIDEBARLINK'][] = Vtiger_Link_Model::getInstanceFromValues($quickLink); } $quickWidgets = array( array( 'linktype' => 'SIDEBARWIDGET', 'linklabel' => 'LBL_RECENTLY_MODIFIED', 'linkurl' => 'module='.$this->get('name').'&view=IndexAjax&mode=showActiveRecords', 'linkicon' => '' ), ); foreach($quickWidgets as $quickWidget) { $links['SIDEBARWIDGET'][] = Vtiger_Link_Model::getInstanceFromValues($quickWidget); } return $links; } /** * Function returns the recent created reports * @param $limit * @return */ function getRecentRecords($limit = 10) { $db = PearDatabase::getInstance(); $result = $db->pquery('SELECT * FROM vtiger_report INNER JOIN vtiger_reportmodules ON vtiger_reportmodules.reportmodulesid = vtiger_report.reportid INNER JOIN vtiger_tab ON vtiger_tab.name = vtiger_reportmodules.primarymodule AND presence = 0 ORDER BY reportid DESC LIMIT ?', array($limit)); $rows = $db->num_rows($result); $recentRecords = array(); for($i=0; $i<$rows; ++$i) { $row = $db->query_result_rowdata($result, $i); $recentRecords[$row['reportid']] = $this->getRecordFromArray($row); } return $recentRecords; } /** * Function returns the report folders * @return */ function getFolders() { return Reports_Folder_Model::getAll(); } /** * Function to get the url for add folder from list view of the module * @return - url */ function getAddFolderUrl() { return 'index.php?module='.$this->get('name').'&view=EditFolder'; } /** * Function to check if the extension module is permitted for utility action * @return true */ public function isUtilityActionEnabled() { return true; } /** * Function is a callback from Vtiger_Link model to check permission for the links * @param type $linkData */ public function checkLinkAccess($linkData) { $privileges = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $reportModuleModel = Vtiger_Module_Model::getInstance('Reports'); return $privileges->hasModulePermission($reportModuleModel->getId()); } /* * Function to get supported utility actions for a module */ function getUtilityActionsNames() { return array('Export'); } //SalesPlatform.ru begin /** * Get report-templates models for transmitted module * * @param string $moduleName * @return Reports_Record_Model[] */ public static function getTemplatesReportModels($moduleName) { $db = PearDatabase::getInstance(); $reportResult = $db->pquery('SELECT vtiger_report.* FROM vtiger_report ' . 'INNER JOIN vtiger_reportfolder ON vtiger_reportfolder.folderid=vtiger_report.folderid ' . 'INNER JOIN vtiger_reportmodules ON vtiger_reportmodules.reportmodulesid=vtiger_report.reportid ' . 'WHERE vtiger_reportfolder.foldername=? AND vtiger_reportmodules.primarymodule=?', array('Templates', $moduleName)); $reportsModelsList = array(); while( ($values = $db->fetchByAssoc($reportResult)) ) { $reportModel = Reports_Record_Model::getCleanInstance(); $reportModel->setData($values)->setId($values['reportid'])->setModuleFromInstance(Vtiger_Module_Model::getInstance('Reports')); $reportModel->initialize(); $reportsModelsList[] = $reportModel; } return $reportsModelsList; } //SalesPlatform.ru end }