예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 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;
 }