/** * Function deletes report * @param Reports_Record_Model $reportModel */ function deleteRecord(Reports_Record_Model $reportModel) { $currentUser = Users_Record_Model::getCurrentUserModel(); $subOrdinateUsers = $currentUser->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_scheduled_reports 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()); } return true; } return false; }
/** * Function deletes report * @param Reports_Record_Model $reportModel */ function deleteRecord($reportModel) { $currentUser = Users_Record_Model::getCurrentUserModel(); $subOrdinateUsers = $currentUser->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()); } //SalesPlatform.ru begin clear widgets $widgetURL = $reportModel->getWidgetReportURL(); if ($widgetURL != '') { $result = $db->pquery("SELECT linkid FROM vtiger_links WHERE linkurl=?", array($widgetURL)); while ($row = $db->fetchByAssoc($result)) { $db->pquery("DELETE FROM vtiger_module_dashboard_widgets WHERE linkid=?", array($row['linkid'])); $db->pquery("DELETE FROM vtiger_links WHERE linkid=?", array($row['linkid'])); } } //SalesPlatform.ru end return true; } return false; }