/** * 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; }
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->save(); //Scheduled Reports $scheduleReportModel = new Reports_ScheduleReports_Model(); $scheduleReportModel->set('scheduleid', $request->get('schtypeid')); $scheduleReportModel->set('schtime', $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(); //END $loadUrl = $reportModel->getDetailViewUrl(); header("Location: {$loadUrl}"); }
/** * 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; }