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(); }
/** * 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); }
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'); } }
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(); }
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); }
/** * 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; }
/** * 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(); }
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(); }
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}"); }
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); } } }
/** * 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; }