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