Beispiel #1
0
 public function process(Vtiger_Request $request)
 {
     $parentModule = 'ITS4YouReports';
     $recordIds = ITS4YouReports_Record_Model::getRecordsListFromRequest($request);
     $reportsDeleteDenied = array();
     foreach ($recordIds as $recordId) {
         $recordModel = ITS4YouReports_Record_Model::getInstanceById($recordId);
         $recordModel->setId($recordId);
         if (!$recordModel->isDefault() && $recordModel->isEditable()) {
             $success = $recordModel->delete();
             if (!$success) {
                 $reportsDeleteDenied[] = vtranslate($recordModel->getName(), $parentModule);
             }
         } else {
             $reportsDeleteDenied[] = vtranslate($recordModel->getName(), $parentModule);
         }
     }
     $response = new Vtiger_Response();
     if (empty($reportsDeleteDenied)) {
         $response->setResult(array(vtranslate('LBL_REPORTS_DELETED_SUCCESSFULLY', $parentModule)));
     } else {
         $response->setError($reportsDeleteDenied, vtranslate('LBL_DENIED_REPORTS', $parentModule));
     }
     $response->emit();
 }
Beispiel #2
0
 /**
  * Function to get the instance
  * @param <String> $moduleName - module name
  * @param <String> $recordId - record id
  * @return <Vtiger_DetailView_Model>
  */
 public static function getInstance($moduleName, $recordId)
 {
     $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'DetailView', $moduleName);
     $instance = new $modelClassName();
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $recordModel = ITS4YouReports_Record_Model::getCleanInstance($recordId, $moduleName);
     return $instance->setModule($moduleModel)->setRecord($recordModel);
 }
Beispiel #3
0
 public function checkPermission(Vtiger_Request $request)
 {
     $record = $request->get('record');
     if (!$record) {
         throw new AppException('LBL_PERMISSION_DENIED');
     }
     $moduleName = $request->getModule();
     $moduleModel = ITS4YouReports_Module_Model::getInstance($moduleName);
     $reportModel = ITS4YouReports_Record_Model::getCleanInstance($record);
     $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
     if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId()) && !$reportModel->isEditable()) {
         throw new AppException('LBL_PERMISSION_DENIED');
     }
 }
Beispiel #4
0
 public function process(Vtiger_Request $request)
 {
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $viewer = $this->getViewer($request);
     $moduleName = "ITS4YouReports";
     $recordId = $request->get("record");
     $viewer->assign('recordid', $recordId);
     $linkId = $request->get('linkid');
     $data = $request->get('data');
     $createdTime = $request->get('createdtime');
     //Date conversion from user to database format
     if (!empty($createdTime)) {
         $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['start']);
         $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['end']);
     }
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $recordModel = ITS4YouReports_Record_Model::getInstanceById($recordId);
     $data = $moduleModel->getReports4You($recordId, $request->get('smownerid'), $dates);
     $detailViewUrl = 'index.php?module=ITS4YouReports&view=Detail&record=' . $recordId;
     $viewer->assign('detailViewUrl', $detailViewUrl);
     //echo "<pre>";print_r("<textarea>".$data."</textarea>");echo "</pre>";
     $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId());
     $widget->set('title', $recordModel->getName());
     //Include special script and css needed for this widget
     $viewer->assign('WIDGET', $widget);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->assign('DATA', $data);
     $viewer->assign('CURRENTUSER', $currentUser);
     $accessibleUsers = $currentUser->getAccessibleUsersForModule('Leads');
     $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers);
     $viewer->assign('SETTING_EXIST', false);
     $content = $request->get('content');
     if (!empty($content)) {
         $display_widget_header = false;
     } else {
         $display_widget_header = true;
     }
     $viewer->assign('display_widget_header', $display_widget_header);
     $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName);
 }
 public function process(Vtiger_Request $request)
 {
     $parentModule = 'ITS4YouReports';
     $reportIdsList = ITS4YouReports_Record_Model::getRecordsListFromRequest($request);
     $folderId = $request->get('folderid');
     if (!empty($reportIdsList)) {
         foreach ($reportIdsList as $reportId) {
             $reportModel = ITS4YouReports_Record_Model::getInstanceById($reportId);
             $reportModel->setId($reportId);
             if (!$reportModel->isDefault() && $reportModel->isEditable()) {
                 $return = $reportModel->move($folderId);
             } else {
                 $reportsMoveDenied[] = vtranslate($reportModel->getName(), $parentModule);
             }
         }
     }
     $response = new Vtiger_Response();
     if (empty($reportsMoveDenied)) {
         $response->setResult(array(vtranslate('LBL_REPORTS_MOVED_SUCCESSFULLY', $parentModule)));
     } else {
         $response->setError($reportsMoveDenied, vtranslate('LBL_DENIED_REPORTS', $parentModule));
     }
     $response->emit();
 }
Beispiel #6
0
 public static function ReportCustomSql(Vtiger_Request $request, $viewer)
 {
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $mode = $request->get('mode');
     $adb = PearDatabase::getInstance();
     $current_user = Users_Record_Model::getCurrentUserModel();
     $viewer->assign("MODULE", $moduleName);
     $record = $request->get('record');
     $reportModel = ITS4YouReports_Record_Model::getCleanInstance($record);
     $viewer->assign("RECORDID", $record);
     $report_custom_sql = ITS4YouReports::validateCustomSql($reportModel->report->reportinformations["custom_sql"]);
     $viewer->assign("REPORT_CUSTOM_SQL", $report_custom_sql);
     return $viewer->view("ReportCustomSQL.tpl", $moduleName, true);
 }
Beispiel #7
0
 /**
  * Function checks if the Report is editable
  * @return boolean
  */
 function isEditable()
 {
     //$ogReport = $this->getITS4YouReport();
     //return $ogReport->is_editable;
     $reporttype = ITS4YouReports_Record_Model::getRecordReportType($this->getId());
     $is_editable = false;
     global $current_user;
     if (is_admin($current_user) !== true) {
         $user_privileges_path = 'user_privileges/user_privileges_' . $this->current_user->id . '.php';
         $edit_all = 1;
         if (file_exists($user_privileges_path)) {
             require $user_privileges_path;
             $edit_all = $profileGlobalPermission[1];
         }
         $owner = $this->getRecordOwner($this->getId());
         $subordinate_users = ITS4YouReports::getSubOrdinateUsersArray(true);
     }
     if ($current_user->id == "5") {
         $edit_all = 1;
     }
     if ($reporttype == "custom_report" && is_admin($current_user) !== true) {
         return $is_editable;
     } elseif (is_admin($current_user) === true || $owner == $current_user->id || $edit_all == 0) {
         $is_editable = true;
     }
     return $is_editable;
 }
Beispiel #8
0
 /**
  * Function exports report in a CSV file
  * @param Vtiger_Request $request
  */
 function GetCSV(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $reportModel = ITS4YouReports_Record_Model::getInstanceById($recordId);
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $reportModel->getReportCSV();
 }
Beispiel #9
0
 function addWidget()
 {
     $success = false;
     global $adb;
     global $current_user;
     $request = new Vtiger_Request($_REQUEST, $_REQUEST);
     $record = $request->get("record");
     if ($record != "") {
         $reportModel = ITS4YouReports_Record_Model::getCleanInstance($record);
         $createResult = $reportModel->checkDashboardWidget();
     }
     if ($createResult == "Created") {
         $result = array("success" => false, "message" => vtranslate("LBL_ADD_WIDGET_SUCCESS", "ITS4YouReports"));
     } elseif ($createResult == "Exist") {
         $result = array("success" => false, "message" => vtranslate("LBL_ADD_WIDGET_ERROR_EXIST", "ITS4YouReports"));
     } else {
         $result = array("success" => false, "message" => vtranslate("LBL_ADD_WIDGET_ERROR", "ITS4YouReports"));
     }
     $response = new Vtiger_Response();
     try {
         $response->setResult($result);
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
Beispiel #10
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $requestAll = $request->getAll();
     $record = $requestAll["record"];
     if ($record != "") {
         $mode = "edit";
     } else {
         $mode = "create";
     }
     global $default_charset;
     $reportModel = new ITS4YouReports_Record_Model();
     $reportModel->setModule("ITS4YouReports");
     if (!empty($record) && !$request->get('isDuplicate')) {
         $reportModel->setId($record);
     }
     //$reporttype = $request->get('reporttype');
     //if(empty($reporttype)) $reporttype='tabular';
     $reportModel->set('reportname', $requestAll['reportname']);
     $reportModel->set('folderid', $requestAll['reportfolder']);
     $reportModel->set('description', $requestAll['reports_description']);
     //$reportModel->set('reporttype', $reporttype);
     $reportModel->setPrimaryModule($requestAll['primarymodule']);
     $reportModel->set('template_owner', $requestAll['template_owner']);
     $reportModel->set('sharing', $requestAll['sharing']);
     //$secondaryModules = $request->get('secondary_modules');
     //$secondaryModules = implode(':', $secondaryModules);
     //$reportModel->setSecondaryModule($secondaryModules);
     $saveselectedcolumns = explode(";", trim($requestAll['selectedColumnsString'], ";"));
     $reportModel->set('selectedFields', $saveselectedcolumns);
     $selectedSummaries_array = explode(";", trim($requestAll['selectedSummariesString'], ";"));
     $reportModel->set('selectedSummaries', $selectedSummaries_array);
     $reportModel->set('summaries_orderby', $requestAll['summaries_orderby_columnString']);
     $reportModel->set('summaries_orderby_type', $requestAll['summaries_orderby_type']);
     $lbl_array = array();
     $lbl_url_string = $requestAll['labels_to_go'];
     $lbl_url_string = urldecode($lbl_url_string);
     $lbl_url_string = html_entity_decode($lbl_url_string, ENT_QUOTES, $default_charset);
     // $lbl_url_string = str_replace("@AMPKO@", "&", $lbl_url_string);
     if ($lbl_url_string != "") {
         $lbl_url_arr = explode('$_@_$', $lbl_url_string);
         foreach ($lbl_url_arr as $key => $lbl_value) {
             if (strpos($lbl_value, '_SC_lLbLl_') !== false) {
                 $temp = explode('_SC_lLbLl_', $lbl_value);
                 $temp_lbls = explode('_lLGbGLl_', $temp[1]);
                 $lbl_key = $temp_lbls[0];
                 $lbl_value = $temp_lbls[1];
                 $lbl_array["SC"][$lbl_key] = $lbl_value;
             }
             if (strpos($lbl_value, '_SM_lLbLl_') !== false) {
                 $temp = explode('_SM_lLbLl_', $lbl_value);
                 $temp_lbls = explode('_lLGbGLl_', $temp[1]);
                 $lbl_key = $temp_lbls[0];
                 $lbl_value = $temp_lbls[1];
                 $lbl_array["SM"][$lbl_key] = $lbl_value;
             }
             if (strpos($lbl_value, '_CT_lLbLl_') !== false) {
                 $temp = explode('_CT_lLbLl_', $lbl_value);
                 $temp_lbls = explode('_lLGbGLl_', $temp[1]);
                 $lbl_key = $temp_lbls[0];
                 $lbl_value = $temp_lbls[1];
                 $lbl_array["CT"][$lbl_key] = $lbl_value;
             }
         }
     }
     $reportModel->set('lbl_array', $lbl_array);
     for ($gi = 1; $gi < 4; $gi++) {
         $reportModel->set('sort_by' . $gi, $requestAll['Group' . $gi]);
         $reportModel->set('sort_order' . $gi, $requestAll['Sort' . $gi]);
     }
     $reportModel->set('timeline_type2', $requestAll['timeline_type2']);
     $reportModel->set('timeline_type3', $requestAll['timeline_type3']);
     for ($tgi = 1; $tgi < 4; $tgi++) {
         if ($request->has('TimeLineColumn_Group' . $tgi) && !$request->isEmpty('TimeLineColumn_Group' . $tgi) && $requestAll['Group' . $tgi] != "none") {
             $TimeLineColumn_Group = $requestAll['TimeLineColumn_Group' . $tgi];
             $TimeLineColumn_Group_arr = explode("@vlv@", $TimeLineColumn_Group);
             $TimeLineColumn_str = $TimeLineColumn_Group_arr[0];
             $TimeLineColumn_frequency = $TimeLineColumn_Group_arr[1];
             $reportModel->set('TimeLineColumn_str' . $tgi, $TimeLineColumn_str);
             $reportModel->set('TimeLineColumn_frequency' . $tgi, $TimeLineColumn_frequency);
         }
     }
     $reportModel->set('SortByColumn', $requestAll['SortByColumn']);
     $reportModel->set('SortOrderColumn', $requestAll['SortOrderColumn']);
     $pmodule = $requestAll['primarymodule'];
     $reportModel->set('pmodule', $pmodule);
     $smodule = trim($requestAll['secondarymodule'], ":");
     $reportModel->set('smodule', $smodule);
     $reportModel->set('sharetype', $requestAll['sharing']);
     $reportModel->set('shared_entities', $requestAll['sharingSelectedColumnsString']);
     $columnstototal = explode('$_@_$', $requestAll["curl_to_go"]);
     $reportModel->set('columnstototal', $columnstototal);
     $json = new Zend_Json();
     //$std_filter_columns = $ITS4YouReports->getStdFilterColumns();
     $advft_criteria = $requestAll['advft_criteria'];
     $advft_criteria = $json->decode($advft_criteria);
     $reportModel->set('advft_criteria', $advft_criteria);
     $advft_criteria_groups = $requestAll['advft_criteria_groups'];
     $advft_criteria_groups = $json->decode($advft_criteria_groups);
     $reportModel->set('advft_criteria_groups', $advft_criteria_groups);
     $groupft_criteria = $requestAll['groupft_criteria'];
     $groupft_criteria = $json->decode($groupft_criteria);
     $reportModel->set('groupft_criteria', $groupft_criteria);
     $reportModel->set('limit', $requestAll['limit']);
     $reportModel->set('summaries_limit', $requestAll['summaries_limit']);
     $reportModel->set('isReportScheduled', $requestAll['isReportScheduled']);
     $reportModel->set('selectedRecipientsString', $requestAll['selectedRecipientsString']);
     $reportModel->set('scheduledReportFormat', $requestAll['scheduledReportFormat']);
     $reportModel->set('scheduledIntervalString', $requestAll['scheduledIntervalString']);
     $chartType = $requestAll["chartType"];
     $reportModel->set('chartType', $chartType);
     if ($chartType != "" && $chartType != "none") {
         $data_series = $requestAll["data_series"];
         $reportModel->set('data_series', $data_series);
         $charttitle = $requestAll["charttitle"];
         $reportModel->set('charttitle', $charttitle);
     }
     $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
     if ($requestAll["SaveType"] == "Save") {
         $loadUrl = $reportModel->getListViewUrl();
     } else {
         $loadUrl = $reportModel->getDetailViewUrl();
     }
     header("Location: {$loadUrl}");
 }
Beispiel #11
0
 function editReport(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     //ITS4YouReports::define_rt_vars(true,true);
     //ITS4YouReports::getR4UDifTime(1);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = ITS4YouReports_Record_Model::getCleanInstance($record);
     if (!$reportModel->has('folderid')) {
         $reportModel->set('folderid', $request->get('folder'));
     }
     $data = $request->getAll();
     foreach ($data as $name => $value) {
         $reportModel->set($name, $value);
     }
     if ($request->has("reporttype") && !$request->isEmpty("reporttype")) {
         $reportModel->set('reporttype', $request->get('reporttype'));
     }
     if ($record != "") {
         $viewer->assign('MODE', 'edit');
         $reporttype = $reportModel->getReportType();
     } else {
         $viewer->assign('MODE', 'create');
         $reporttype = $request->get('reporttype');
     }
     $viewer->assign('REPORTTYPE', $reporttype);
     global $current_user;
     $is_admin_user = is_admin($current_user);
     $viewer->assign('IS_ADMIN_USER', $is_admin_user);
     $viewer->assign("steps_display", "reportTab hide");
     //$viewer->assign("steps_display","reportTab");
     /* global $current_user;if($current_user->id=="1"){
        $viewer->assign("steps_display","reportTab");
        //ITS4YouReports::sshow($ReportColumnsTotal);
        } */
     $viewer->assign("cancel_btn_url", $reportModel->getCancelViewUrl());
     //ITS4YouReports::getR4UDifTime(2);
     if ($reporttype == "") {
         $viewer->view('ITS4YouReportsType.tpl', $moduleName);
     } else {
         $reportModuleModel = $reportModel->getModule();
         $viewer->assign("REPORTNAME", $reportModel->getName());
         $viewer->assign("REPORTDESC", $reportModel->getDesc());
         $viewer->assign("REP_FOLDERS", $reportModel->getReportFolders());
         $ReportSharing = ITS4YouReports_EditView_Model::ReportSharing($request, $viewer);
         $viewer->assign("REPORT_SHARING", $ReportSharing);
         $ReportScheduler = ITS4YouReports_EditView_Model::ReportScheduler($request, $viewer);
         $viewer->assign("REPORT_SCHEDULER", $ReportScheduler);
         //ITS4YouReports::getR4UDifTime(3);
         if ($reporttype == "custom_report") {
             if ($is_admin_user != 1) {
                 ITS4YouReports::DieDuePermission();
             }
             //                    ITS4YouReports::sshow($reporttype);
             $ReportCustomSQL = ITS4YouReports_EditView_Model::ReportCustomSql($request, $viewer);
             $viewer->assign("REPORT_CUSTOMSQL", $ReportCustomSQL);
             $viewer->view('EditCustom.tpl', $moduleName);
         } else {
             if ($request->get('isDuplicate')) {
                 $viewer->assign('isDuplicate', 'true');
             }
             $viewer->assign("PRIMARYMODULES", $reportModel->getPrimaryModules());
             //ITS4YouReports::getR4UDifTime(4);
             $ReportGrouping = ITS4YouReports_EditView_Model::ReportGrouping($request, $viewer);
             $viewer->assign("REPORT_GROUPING", $ReportGrouping);
             //ITS4YouReports::getR4UDifTime(5);
             $ReportColumns = ITS4YouReports_EditView_Model::ReportColumns($request, $viewer);
             $viewer->assign("REPORT_COLUMNS", $ReportColumns);
             //ITS4YouReports::getR4UDifTime(6);
             $ReportColumnsTotal = ITS4YouReports_EditView_Model::ReportColumnsTotal($request, $viewer);
             $viewer->assign("REPORT_COLUMNS_TOTAL", $ReportColumnsTotal);
             //ITS4YouReports::getR4UDifTime(7);
             $ReportLabels = ITS4YouReports_EditView_Model::ReportLabels($request, $viewer);
             $viewer->assign("REPORT_LABELS", $ReportLabels);
             //ITS4YouReports::getR4UDifTime(8);
             $ReportFilters = ITS4YouReports_EditView_Model::ReportFilters($request, $viewer);
             $viewer->assign("REPORT_FILTERS", $ReportFilters);
             //ITS4YouReports::getR4UDifTime(9);
             $ReportGraphs = ITS4YouReports_EditView_Model::ReportGraphs($request, $viewer);
             $viewer->assign("REPORT_GRAPHS", $ReportGraphs);
             //ITS4YouReports::getR4UDifTime(10);
             //exit;
             $viewer->view('Edit.tpl', $moduleName);
         }
     }
 }
Beispiel #12
0
 /**
  * Function to get all Report Record Models
  * @param <Array> $allReportsList
  * @param <Vtiger_Module_Model> - Reports Module Model
  * @return <Array> Reports Record Models
  */
 public function getAllReportModels($allReportsList, $reportModuleModel)
 {
     $allReportModels = array();
     $folders = self::getAll();
     foreach ($allReportsList as $key => $reportsList) {
         for ($i = 0; $i < count($reportsList); $i++) {
             $reportModel = new ITS4YouReports_Record_Model();
             $reportModel->setData($reportsList[$i])->setModuleFromInstance($reportModuleModel);
             //$reportModel->set('foldername', $folders[$key]->getName());
             $allReportModels[] = $reportModel;
             unset($reportModel);
         }
     }
     return $allReportModels;
 }