예제 #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)
 {
     $mode = $request->getMode();
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($record);
     $reportModel->setModule('Reports');
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $page = $request->get('page');
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('page', $page);
     $pagingModel->set('limit', Reports_Detail_View::REPORT_LIMIT);
     if ($mode === 'save') {
         $reportModel->saveAdvancedFilters();
         $reportData = $reportModel->getReportData($pagingModel);
         $data = $reportData['data'];
     } else {
         if ($mode === 'generate') {
             $reportData = $reportModel->generateData($pagingModel);
             $data = $reportData['data'];
         }
     }
     $calculation = $reportModel->generateCalculationData();
     $viewer->assign('PRIMARY_MODULE', $reportModel->getPrimaryModule());
     $viewer->assign('CALCULATION_FIELDS', $calculation);
     $viewer->assign('DATA', $data);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('NEW_COUNT', $reportData['count']);
     $viewer->assign('REPORT_RUN_INSTANCE', ReportRun::getInstance($record));
     $viewer->view('ReportContents.tpl', $moduleName);
 }
예제 #3
0
 public function process(Vtiger_Request $request)
 {
     $mode = $request->getMode();
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($record);
     $reportModel->setModule('Reports');
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $secondaryModules = $reportModel->getSecondaryModules();
     if (empty($secondaryModules)) {
         $viewer->assign('CLICK_THROUGH', true);
     }
     $dataFields = $request->get('datafields', 'count(*)');
     if (is_string($dataFields)) {
         $dataFields = array($dataFields);
     }
     $reportModel->set('reporttypedata', Zend_Json::encode(array('type' => $request->get('charttype', 'pieChart'), 'groupbyfield' => $request->get('groupbyfield'), 'datafields' => $dataFields)));
     $reportModel->set('reporttype', 'chart');
     $reportModel->save();
     $reportChartModel = Reports_Chart_Model::getInstanceById($reportModel);
     $data = $reportChartModel->getData();
     $viewer->assign('CHART_TYPE', $reportChartModel->getChartType());
     $viewer->assign('DATA', json_encode($data, JSON_HEX_APOS));
     $viewer->assign('MODULE', $moduleName);
     $viewer->view('ChartReportContents.tpl', $moduleName);
 }
예제 #4
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 = Reports_Record_Model::getCleanInstance($recordId, $moduleName);
     return $instance->setModule($moduleModel)->setRecord($recordModel);
 }
예제 #5
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     $response = new Vtiger_Response();
     $recordModel = Reports_Record_Model::getInstanceById($recordId, $moduleName);
     if (!$recordModel->isDefault() && $recordModel->isEditable()) {
         $recordModel->delete();
         $response->setResult(array(vtranslate('LBL_REPORTS_DELETED_SUCCESSFULLY', $parentModule)));
     } else {
         $response->setError(vtranslate('LBL_REPORT_DELETE_DENIED', $moduleName));
     }
     $response->emit();
 }
예제 #6
0
 /**
  * Function to get related Records count from this relation
  * @param <Vtiger_Request> $request
  * @return <Number> Number of record from this relation
  */
 public function getRecordsCount(Vtiger_Request $request)
 {
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($record);
     $reportModel->setModule('Reports');
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $advFilterSql = $reportModel->getAdvancedFilterSQL();
     $query = $reportModel->getReportSQL($advFilterSql, 'PDF');
     $countQuery = $reportModel->generateCountQuery($query);
     $count = $reportModel->getReportsCount($countQuery);
     $response = new Vtiger_Response();
     $response->setResult($count);
     $response->emit();
 }
예제 #7
0
 /**
  * Function displays the report in printable format
  * @param Vtiger_Request $request
  */
 function GetPrintReport(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($recordId);
     $printData = $reportModel->getReportPrint();
     $viewer->assign('REPORT_NAME', $reportModel->getName());
     $viewer->assign('PRINT_DATA', $printData['data'][0]);
     $viewer->assign('TOTAL', $printData['total']);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('ROW', $printData['data'][1]);
     $viewer->view('PrintReport.tpl', $moduleName);
 }
예제 #8
0
 public function process(Vtiger_Request $request)
 {
     $mode = $request->getMode();
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($record);
     $reportModel->setModule('Reports');
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $page = $request->get('page');
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('page', $page);
     $pagingModel->set('limit', Reports_Detail_View::REPORT_LIMIT);
     if ($mode === 'save') {
         $reportModel->saveAdvancedFilters();
         $reportData = $reportModel->getReportData($pagingModel);
         $data = $reportData['data'];
     } else {
         if ($mode === 'generate') {
             $reportData = $reportModel->generateData($pagingModel);
             $data = $reportData['data'];
         }
     }
     $calculation = $reportModel->generateCalculationData();
     /*убираем ненужные столбцы*/
     $columns = array('SUM' => false, 'AVG' => false, 'MIN' => false, 'MAX' => false);
     foreach ($calculation as $metriks) {
         foreach ($metriks as $index => $metrik) {
             $postfix = substr($index, -3, 3);
             if ($columns[$postfix]) {
                 continue;
             }
             if (!empty($metrik)) {
                 $columns[$postfix] = true;
             }
         }
     }
     $viewer->assign('COLUMNS', $columns);
     /*end*/
     $viewer->assign('PRIMARY_MODULE', $reportModel->getPrimaryModule());
     $viewer->assign('CALCULATION_FIELDS', $calculation);
     $viewer->assign('DATA', $data);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('NEW_COUNT', $reportData['count']);
     $viewer->assign('REPORT_RUN_INSTANCE', ReportRun::getInstance($record));
     $viewer->view('ReportContents.tpl', $moduleName);
 }
예제 #9
0
 public function process(Vtiger_Request $request)
 {
     $primaryModule = $request->get('primodule');
     $secondaryModules = $request->get('secmodule');
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getCleanInstance($record);
     /*if (!empty($record)) {
               $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter());
               $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
       }*/
     $reportModel->setPrimaryModule($primaryModule);
     if (!empty($secondaryModules)) {
         $reportModel->setSecondaryModule($secondaryModules);
     }
     $viewer = $this->getViewer($request);
     $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
     $viewer->assign('PRIMARY_MODULE', $primaryModule);
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel);
     $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure();
     $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure();
     $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure);
     $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures);
     //$viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $reportModel->getPrimaryModuleRecordStructure());
     //$viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $reportModel->getSecondaryModuleRecordStructure());
     $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions());
     $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', Vtiger_Field_Model::getAdvancedFilterOpsByFieldType());
     $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
     foreach ($dateFilters as $comparatorKey => $comparatorInfo) {
         $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
         $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
         $comparatorInfo['label'] = vtranslate($comparatorInfo['label'], $module);
         $dateFilters[$comparatorKey] = $comparatorInfo;
     }
     $viewer->assign('DATE_FILTERS', $dateFilters);
     echo $viewer->view('BlockFilters.tpl', 'PDFMaker', true);
     /*
     $content = $viewer->view('BlockFilters.tpl', 'PDFMaker',true);
     echo "aaaaaaaaa"; 
     
     /*
     $response = new Vtiger_Response();
     $response->setResult($content);
     $response->emit();
     */
 }
예제 #10
0
파일: Save.php 프로젝트: yozhi/YetiForceCRM
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getCleanInstance();
     $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}");
 }
예제 #11
0
 public function process(Vtiger_Request $request)
 {
     $parentModule = 'Reports';
     $reportIdsList = Reports_Record_Model::getRecordsListFromRequest($request);
     $folderId = $request->get('folderid');
     if (!empty($reportIdsList)) {
         foreach ($reportIdsList as $reportId) {
             $reportModel = Reports_Record_Model::getInstanceById($reportId);
             if (!$reportModel->isDefault() && $reportModel->isEditable()) {
                 $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();
 }
예제 #12
0
 public function process(Vtiger_Request $request)
 {
     $parentModule = 'Reports';
     $recordIds = Reports_Record_Model::getRecordsListFromRequest($request);
     $reportsDeleteDenied = array();
     foreach ($recordIds as $recordId) {
         $recordModel = Reports_Record_Model::getInstanceById($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();
 }
예제 #13
0
 public function process(Vtiger_Request $request)
 {
     PDFMaker_Debugger_Model::GetInstance()->Init();
     $adb = PearDatabase::getInstance();
     $current_user = Users_Record_Model::getCurrentUserModel();
     $viewer = $this->getViewer($request);
     global $current_language;
     $step = $request->get('step');
     if ($step == "") {
         $step = "1";
     }
     $mode = $request->get('mode');
     $record = $request->get('record');
     if (isset($mode) && $mode == "Delete") {
         $sql1 = "SELECT module FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?";
         $rel_module = $adb->query_result($adb->pquery($sql1, array($record)), 0, "module");
         $sql2 = "DELETE FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?";
         $result = $adb->pquery($sql2, array($record));
         header("Location:index.php?module=PDFMaker&action=PDFMakerAjax&file=ListRelatedBlocks&parenttab=Tools&pdfmodule=" . $rel_module);
         exit;
     }
     if (isset($mode) && $mode == "add") {
         $sql = "SELECT * FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?";
         $result = $adb->pquery($sql, array($record));
         $Blockdata = $adb->fetchByAssoc($result, 0);
         $body = $Blockdata["block"];
         $body = str_replace("RELBLOCK_START", "RELBLOCK" . $record . "_START", $body);
         $body = str_replace("RELBLOCK_END", "RELBLOCK" . $record . "_END", $body);
         //echo $body; exit;
         echo "<div id='block' style='display:none;'>" . $body . "</div>";
         echo "<script> \n\t\tvar oEditor = window.opener.CKEDITOR.instances.body; \n\t\t\n\t\tcontent = document.getElementById('block').innerHTML;\n\t\t\n\t\toEditor.insertHtml(content); \n\t\tself.close();\n\t\t</script>";
         exit;
     }
     $viewer->assign("PARENTTAB", getParentTab());
     $viewer->assign("DATEFORMAT", $current_user->get('date_format'));
     $viewer->assign("JS_DATEFORMAT", parse_calendardate(vtranslate('NTC_DATE_FORMAT')));
     $RelatedBlock = new PDFMaker_RelatedBlock_Model();
     $columns1 = "";
     if ($record) {
         $sql = "SELECT * FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?";
         $result = $adb->pquery($sql, array($record));
         $Blockdata = $adb->fetchByAssoc($result, 0);
         $rel_module = $Blockdata["module"];
         $sec_module = $Blockdata["secmodule"];
         $blockname = $Blockdata["name"];
         $block = $Blockdata["block"];
         $sql2 = "SELECT * FROM vtiger_pdfmaker_relblockdatefilter WHERE datefilterid = ?";
         $result2 = $adb->pquery($sql2, array($record));
         $num_rows2 = $adb->num_rows($result2);
         if ($num_rows2 > 0) {
             $datecolumnname = $adb->query_result($result2, 0, "datecolumnname");
             $stdselectedfilter = $adb->query_result($result2, 0, "datefilter");
             $startdate = $adb->query_result($result2, 0, "startdate");
             $enddate = $adb->query_result($result2, 0, "enddate");
             if ($startdate != "" && $startdate != "0000-00-00") {
                 $viewer->assign("STARTDATE_STD", getValidDisplayDate($startdate));
             }
             if ($enddate != "" && $startdate != "0000-00-00") {
                 $viewer->assign("ENDDATE_STD", getValidDisplayDate($enddate));
             }
         }
         $module_list = $RelatedBlock->getModuleList($sec_module);
         $options1 = $RelatedBlock->getStdCriteriaByModule($sec_module, $module_list, $current_user);
         if (count($options1) > 0) {
             foreach ($options1 as $value => $label) {
                 if ($value == $datecolumnname) {
                     $sel = "selected";
                 } else {
                     $sel = "";
                 }
                 $columns1 .= "<option value='" . $value . "' " . $sel . ">" . $label . "</option>";
             }
         }
         $columns2 = "";
         foreach ($module_list as $blockid => $optgroup) {
             $options2 = $RelatedBlock->getColumnsListbyBlock($sec_module, $blockid, $rel_module, $current_user);
             if (count($options2) > 0) {
                 $columns2 .= "<optgroup label='" . $optgroup . "'>";
                 foreach ($options2 as $value => $label) {
                     $columns2 .= "<option value='" . $value . "'>" . $label . "</option>";
                 }
                 $columns2 .= "</optgroup>";
             }
         }
         $selected_columns = $this->getSelectedColumnsList($rel_module, $sec_module, $record, $current_user);
         list($sortCols, $sortOrder) = $this->getSortColumns($record, $selected_columns);
         $step = 3;
         $mode = 'edit';
         $RelatedBlock->setId($record);
         $reportModel = Reports_Record_Model::getCleanInstance('');
         $reportModel->setPrimaryModule($rel_module);
         $RelatedBlock->setPrimaryModule($rel_module);
         if (!empty($sec_module)) {
             $RelatedBlock->setSecondaryModule($sec_module);
             $reportModel->setSecondaryModule($sec_module);
         }
         $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $RelatedBlock->transformToNewAdvancedFilter());
         $viewer->assign('PRIMARY_MODULE', $primaryModule);
         $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel);
         $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure();
         $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure();
         $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure);
         $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures);
         $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions());
         $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', Vtiger_Field_Model::getAdvancedFilterOpsByFieldType());
         $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
         foreach ($dateFilters as $comparatorKey => $comparatorInfo) {
             $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
             $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
             $comparatorInfo['label'] = vtranslate($comparatorInfo['label'], $module);
             $dateFilters[$comparatorKey] = $comparatorInfo;
         }
         $viewer->assign('DATE_FILTERS', $dateFilters);
         $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFields());
         $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFields());
         $viewer->assign('SELECTED_SORT_FIELDS', $RelatedBlock->getSelectedSortFields());
     } else {
         $primaryModule = $request->get('primarymodule');
         $secondaryModules = $request->get('secondarymodule');
         $rel_module = $_REQUEST["pdfmodule"];
         $block = "";
         $record = "";
         $blockname = "";
         $columns = "";
         $columns2 = "";
         $selected_columns = "";
         $sortCols = "";
         $sortOrder = "";
         $stdselectedfilter = "";
         $mode = 'create';
     }
     $viewer->assign("MODE", $mode);
     $viewer->assign("RECORD", $record);
     $viewer->assign("BLOCKNAME", $blockname);
     $Related_Modules = PDFMaker_RelatedBlock_Model::getRelatedModulesList($rel_module);
     if ($record == "") {
         $sec_module = $Related_Modules[0];
     }
     $viewer->assign("SEC_MODULE", $sec_module);
     $viewer->assign("RELATED_MODULES", $Related_Modules);
     $version = PDFMaker_Version_Helper::$version;
     $viewer->assign("VERSION", $version);
     $viewer->assign("REL_MODULE", $rel_module);
     $viewer->assign("RELATEDBLOCK", $block);
     $viewer->assign("STEP", $step);
     $viewer->view('EditRelatedBlock.tpl', 'PDFMaker');
 }
예제 #14
0
 function step3(Vtiger_request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getCleanInstance($record);
     if (!empty($record)) {
         $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter());
         $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
     }
     $data = $request->getAll();
     foreach ($data as $name => $value) {
         $reportModel->set($name, $value);
     }
     $primaryModule = $request->get('primary_module');
     $secondaryModules = $request->get('secondary_modules');
     $reportModel->setPrimaryModule($primaryModule);
     if (!empty($secondaryModules)) {
         $secondaryModules = implode(':', $secondaryModules);
         $reportModel->setSecondaryModule($secondaryModules);
         $secondaryModules = explode(':', $secondaryModules);
     } else {
         $secondaryModules = array();
     }
     $chartModel = Reports_Chart_Model::getInstanceById($reportModel);
     $viewer->assign('CHART_MODEL', $chartModel);
     $viewer->assign('ADVANCED_FILTERS', $request->get('advanced_filter'));
     $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFieldsForAdvancedReporting());
     $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFieldsForAdvancedReporting());
     $viewer->assign('CALCULATION_FIELDS', $reportModel->getModuleCalculationFieldsForReport());
     if ($request->get('isDuplicate')) {
         $viewer->assign('IS_DUPLICATE', true);
     }
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('REPORT_MODEL', $reportModel);
     $viewer->assign('PRIMARY_MODULE', $primaryModule);
     $viewer->assign('SECONDARY_MODULES', $secondaryModules);
     $viewer->assign('MODULE', $moduleName);
     $viewer->view('ChartEditStep3.tpl', $moduleName);
 }
예제 #15
0
 public function deleteRaports()
 {
     global $log, $adb;
     $log->debug("Entering VT620_to_YT::deleteRaports() method ...");
     $restrictedRaports = array('Contacts by Accounts', 'Contacts without Accounts', 'Contacts by Potentials', 'Lead by Source', 'Lead Status Report', 'Potential Pipeline', 'Closed Potentials', 'Last Month Activities', 'This Month Activities', 'Tickets by Products', 'Tickets by Priority', 'Open Tickets', 'Product Details', 'Products by Contacts', 'Open Quotes', 'Quotes Detailed Report', 'PurchaseOrder by Contacts', 'PurchaseOrder Detailed Report', 'Invoice Detailed Report', 'SalesOrder Detailed Report', 'Campaign Expectations and Actuals', 'Contacts Email Report', 'Accounts Email Report', 'Leads Email Report', 'Vendors Email Report');
     $sql = "SELECT * FROM `vtiger_report` WHERE reportname IN (" . generateQuestionMarks($restrictedRaports) . ")";
     $result = $adb->pquery($sql, $restrictedRaports);
     $num = $adb->num_rows($result);
     $moduleModel = Vtiger_Module_Model::getInstance('Reports');
     for ($i = 0; $i < $num; $i++) {
         $reportId = $adb->query_result($result, $i, "reportid");
         $recordModel = Reports_Record_Model::getInstanceById($reportId, 'Reports');
         $recordModel->delete();
     }
     $log->debug("Exiting VT620_to_YT::deleteRaports() method ...");
 }
예제 #16
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);
     }
     $reportModel->set('reportname', $request->get('reportname'));
     $reportModel->set('folderid', $request->get('folderid'));
     $reportModel->set('description', $request->get('reports_description'));
     $reportModel->setPrimaryModule($request->get('primary_module'));
     $secondaryModules = $request->get('secondary_modules');
     $secondaryModules = implode(':', $secondaryModules);
     $reportModel->setSecondaryModule($secondaryModules);
     $reportModel->set('advancedFilter', $request->get('advanced_filter'));
     $reportModel->set('reporttype', 'chart');
     $dataFields = $request->get('datafields', 'count(*)');
     if (is_string($dataFields)) {
         $dataFields = array($dataFields);
     }
     $reportModel->set('reporttypedata', Zend_Json::encode(array('type' => $request->get('charttype', 'pieChart'), 'groupbyfield' => $request->get('groupbyfield'), 'datafields' => $dataFields)));
     $reportModel->save();
     $loadUrl = $reportModel->getDetailViewUrl();
     header("Location: {$loadUrl}");
 }
예제 #17
0
 function getReport(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $page = $request->get('page');
     $data = $this->reportData;
     $calculation = $this->calculationFields;
     if (empty($data)) {
         $reportModel = Reports_Record_Model::getInstanceById($record);
         $reportModel->setModule('Reports');
         $reportType = $reportModel->get('reporttype');
         $pagingModel = new Vtiger_Paging_Model();
         $pagingModel->set('page', $page);
         $pagingModel->set('limit', self::REPORT_LIMIT + 1);
         $reportData = $reportModel->getReportData($pagingModel);
         $data = $reportData['data'];
         $calculation = $reportModel->getReportCalulationData();
         $advFilterSql = $reportModel->getAdvancedFilterSQL();
         $query = $reportModel->getReportSQL($advFilterSql, 'PDF');
         $countQuery = $reportModel->generateCountQuery($query);
         $this->count = $reportModel->getReportsCount($countQuery);
     }
     $viewer->assign('CALCULATION_FIELDS', $calculation);
     $viewer->assign('DATA', $data);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('COUNT', $this->count);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('REPORT_RUN_INSTANCE', ReportRun::getInstance($record));
     if (count($data) > self::REPORT_LIMIT) {
         $viewer->assign('LIMIT_EXCEEDED', true);
     }
     $viewer->view('ReportContents.tpl', $moduleName);
 }
예제 #18
0
 function step3(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getCleanInstance($record);
     if (!empty($record)) {
         $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter());
         $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
     }
     $data = $request->getAll();
     foreach ($data as $name => $value) {
         if ($name == 'schdayoftheweek' || $name == 'schdayofthemonth' || $name == 'schannualdates' || $name == 'recipients') {
             $value = Zend_Json::decode($value);
             if (!is_array($value)) {
                 // need to save these as json data
                 $value = array($value);
             }
         }
         $reportModel->set($name, $value);
     }
     $primaryModule = $request->get('primary_module');
     $secondaryModules = $request->get('secondary_modules');
     $reportModel->setPrimaryModule($primaryModule);
     if (!empty($secondaryModules)) {
         $secondaryModules = implode(':', $secondaryModules);
         $reportModel->setSecondaryModule($secondaryModules);
         $secondaryModules = explode(':', $secondaryModules);
     } else {
         $secondaryModules = array();
     }
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('REPORT_MODEL', $reportModel);
     $viewer->assign('PRIMARY_MODULE', $primaryModule);
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel);
     $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure();
     $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure();
     //TODO : We need to remove "update_log" field from "HelpDesk" module in New Look
     // after removing old look we need to remove this field from crm
     if ($primaryModule == 'HelpDesk') {
         foreach ($primaryModuleRecordStructure as $blockLabel => $blockFields) {
             foreach ($blockFields as $field => $object) {
                 if ($field == 'update_log') {
                     unset($primaryModuleRecordStructure[$blockLabel][$field]);
                 }
             }
         }
     }
     if (!empty($secondaryModuleRecordStructures)) {
         foreach ($secondaryModuleRecordStructures as $module => $structure) {
             if ($module == 'HelpDesk') {
                 foreach ($structure as $blockLabel => $blockFields) {
                     foreach ($blockFields as $field => $object) {
                         if ($field == 'update_log') {
                             unset($secondaryModuleRecordStructures[$module][$blockLabel][$field]);
                         }
                     }
                 }
             }
         }
     }
     // End
     $viewer->assign('SECONDARY_MODULES', $secondaryModules);
     $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure);
     $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures);
     $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
     foreach ($dateFilters as $comparatorKey => $comparatorInfo) {
         $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
         $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
         $comparatorInfo['label'] = vtranslate($comparatorInfo['label'], $moduleName);
         $dateFilters[$comparatorKey] = $comparatorInfo;
     }
     $viewer->assign('DATE_FILTERS', $dateFilters);
     if ($primaryModule == 'Calendar' || in_array('Calendar', $secondaryModules)) {
         $advanceFilterOpsByFieldType = Calendar_Field_Model::getAdvancedFilterOpsByFieldType();
     } else {
         $advanceFilterOpsByFieldType = Vtiger_Field_Model::getAdvancedFilterOpsByFieldType();
     }
     $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions());
     $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', $advanceFilterOpsByFieldType);
     $viewer->assign('MODULE', $moduleName);
     $calculationFields = $reportModel->get('calculation_fields');
     if ($calculationFields) {
         $calculationFields = Zend_Json::decode($calculationFields);
         $viewer->assign('LINEITEM_FIELD_IN_CALCULATION', $reportModel->showLineItemFieldsInFilter($calculationFields));
     }
     if ($request->get('isDuplicate')) {
         $viewer->assign('IS_DUPLICATE', true);
     }
     $viewer->view('step3.tpl', $moduleName);
 }
 /**
  * Get report-templates models for transmittrd module
  * 
  * @param string $moduleName
  * @return Reports_Record_Model[]
  */
 public static function getTemplatesReportModels($moduleName)
 {
     $db = PearDatabase::getInstance();
     $reportResult = $db->pquery('SELECT vtiger_report.* FROM vtiger_report ' . 'INNER JOIN vtiger_reportfolder ON vtiger_reportfolder.folderid=vtiger_report.folderid ' . 'INNER JOIN vtiger_reportmodules ON vtiger_reportmodules.reportmodulesid=vtiger_report.reportid ' . 'WHERE vtiger_reportfolder.foldername=? AND vtiger_reportmodules.primarymodule=?', array('Templates', $moduleName));
     $reportsModelsList = array();
     while ($values = $db->fetchByAssoc($reportResult)) {
         $reportModel = Reports_Record_Model::getCleanInstance();
         $reportModel->setData($values)->setId($values['reportid'])->setModuleFromInstance(Vtiger_Module_Model::getInstance('Reports'));
         $reportModel->initialize();
         $reportsModelsList[] = $reportModel;
     }
     return $reportsModelsList;
 }
예제 #20
0
 function getReport(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $page = $request->get('page');
     $data = $this->reportData;
     $calculation = $this->calculationFields;
     if (empty($data)) {
         $reportModel = Reports_Record_Model::getInstanceById($record);
         $reportModel->setModule('Reports');
         $pagingModel = new Vtiger_Paging_Model();
         $pagingModel->set('page', $page);
         $pagingModel->set('limit', self::REPORT_LIMIT + 1);
         $data = $reportModel->getReportData($pagingModel);
         $calculation = $reportModel->getReportCalulationData();
     }
     $viewer->assign('CALCULATION_FIELDS', $calculation);
     $viewer->assign('DATA', $data);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('MODULE', $moduleName);
     if (count($data) > self::REPORT_LIMIT) {
         $viewer->assign('LIMIT_EXCEEDED', true);
     }
     $viewer->view('ReportContents.tpl', $moduleName);
 }
예제 #21
0
 public function sendEmail()
 {
     require_once 'vtlib/Vtiger/Mailer.php';
     $vtigerMailer = new Vtiger_Mailer();
     $recipientEmails = $this->getRecipientEmails();
     Vtiger_Utils::ModuleLog('ScheduleReprots', $recipientEmails);
     foreach ($recipientEmails as $name => $email) {
         $vtigerMailer->AddAddress($email, $name);
     }
     vimport('~modules/Report/models/Record.php');
     $reportRecordModel = Reports_Record_Model::getInstanceById($this->get('reportid'));
     $currentTime = date('Y-m-d.H.i.s');
     Vtiger_Utils::ModuleLog('ScheduleReprots Send Mail Start ::', $currentTime);
     $reportname = decode_html($reportRecordModel->getName());
     $subject = $reportname;
     Vtiger_Utils::ModuleLog('ScheduleReprot Name ::', $reportname);
     $vtigerMailer->Subject = $subject;
     $vtigerMailer->Body = $this->getEmailContent($reportRecordModel);
     $vtigerMailer->IsHTML();
     $baseFileName = $reportname . '__' . $currentTime;
     $oReportRun = ReportRun::getInstance($this->get('reportid'));
     $reportFormat = $this->scheduledFormat;
     $attachments = array();
     if ($reportFormat == 'CSV') {
         $fileName = $baseFileName . '.csv';
         $filePath = 'storage/' . $fileName;
         $attachments[$fileName] = $filePath;
         $oReportRun->writeReportToCSVFile($filePath);
     }
     foreach ($attachments as $attachmentName => $path) {
         $vtigerMailer->AddAttachment($path, decode_html($attachmentName));
     }
     //Added cc to account owner
     $accountOwnerId = Users::getActiveAdminId();
     $vtigerMailer->AddCC(getUserEmail($accountOwnerId), getUserFullName($accountOwnerId));
     $status = $vtigerMailer->Send(true);
     foreach ($attachments as $attachmentName => $path) {
         unlink($path);
     }
     return $status;
 }
예제 #22
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);
     }
     $reportModel->set('reportname', $request->get('reportname'));
     $reportModel->set('folderid', $request->get('folderid'));
     $reportModel->set('description', $request->get('reports_description'));
     $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();
     $loadUrl = $reportModel->getDetailViewUrl();
     header("Location: {$loadUrl}");
 }
예제 #23
0
 function getReport(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $page = $request->get('page');
     //$data = $this->reportData; //TODO
     $calculation = $this->calculationFields;
     //if(empty($data)){
     $reportModel = Reports_Record_Model::getInstanceById($record);
     $reportModel->setModule('Reports');
     $reportType = $reportModel->get('reporttype');
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('page', $page);
     $pagingModel->set('limit', self::REPORT_LIMIT + 1);
     $reportData = $reportModel->getReportData($pagingModel);
     $data = $reportData['data'];
     $dataRaw = $reportData['data_raw'];
     $calculation = $reportModel->getReportCalulationData();
     $advFilterSql = $reportModel->getAdvancedFilterSQL();
     $query = $reportModel->getReportSQL($advFilterSql, 'PDF');
     $countQuery = $reportModel->generateCountQuery($query);
     $this->count = $reportModel->getReportsCount($countQuery);
     //}
     /*готовим данные в нужный нам формат для новой таблицы*/
     /*получим поле для группировки*/
     global $adb;
     $reportRun = ReportRun::getInstance($record);
     $fieldRawArr = $reportRun->getGroupingList();
     foreach ($fieldRawArr as $value) {
         $fieldRaw = explode('_', $value, 2);
         break;
     }
     $groupModule = str_replace('`', '', $fieldRaw[0]);
     $groupLabel = explode(' ', $fieldRaw[1], 2);
     $groupLabel = str_replace('`', '', $groupLabel[0]);
     //это системное имя, нужен перевод
     $fieldInfo = getFieldByReportLabel($groupModule, $groupLabel);
     $fieldType = null;
     if (!empty($fieldInfo)) {
         $field = WebserviceField::fromArray($adb, $fieldInfo);
         $fieldType = $field->getFieldDataType();
     }
     if (!empty($fieldInfo)) {
         $translatedLabel = getTranslatedString($field->getFieldLabelKey(), $groupModule);
     } else {
         $translatedLabel = getTranslatedString($groupLabel, $groupModule);
         $translatedLabel = str_replace("_", " ", $translatedLabel);
     }
     $groupLabel = $translatedLabel;
     /*STRING TRANSLATION starts  TODO*/
     /*$moduleLabel ='';
                 if(in_array($module,$modules_selected))
                     $moduleLabel = getTranslatedString($module,$module);
                 if(empty($translatedLabel)) {
                         $translatedLabel = getTranslatedString(str_replace('_', " ",
                             $fld->name), $module);
     
                 }*/
     /*if(!empty($this->secondarymodule)) {
           if($moduleLabel != '') {
               $headerLabel = $moduleLabel." ". $translatedLabel;
           }
       }*/
     /*формируем нужный массив*/
     $dataGrouped = array();
     foreach ($data as $index => $row) {
         $groupIndex = $row[$groupLabel];
         if (!isset($dataGrouped[$groupIndex])) {
             $dataGrouped[$groupIndex] = array('rows' => array(), 'summary' => array());
         }
         $dataGrouped[$groupIndex]['rows'][] = $row;
         foreach ($row as $reportField => $value) {
             $dataRawVal = explode('::', $dataRaw[$index][$reportField]);
             $dataRawType = empty($dataRawVal[1]) ? 'undefined' : $dataRawVal[1];
             $dataRawVal = $dataRawVal[0];
             if (!isset($dataGrouped[$groupIndex]['summary'][$reportField])) {
                 if ($dataRawType == 'currency') {
                     $dataRawVal = $dataRawVal + 0;
                 }
                 if (empty($dataRawType)) {
                     $dataRawVal = (string) $dataRawVal;
                 }
                 $dataGrouped[$groupIndex]['summary'][$reportField] = $dataRawVal;
             } elseif ($dataRawType == 'currency') {
                 /*можно позже добавить другие типы данных*/
                 $summed = $dataGrouped[$groupIndex]['summary'][$reportField] + $dataRawVal;
                 $dataGrouped[$groupIndex]['summary'][$reportField] = $summed;
                 /*todo переделать в пользовательский формат*/
             }
         }
     }
     /*end*/
     /*убираем ненужные столбцы*/
     $columns = array('SUM' => false, 'AVG' => false, 'MIN' => false, 'MAX' => false);
     foreach ($calculation as $metriks) {
         foreach ($metriks as $index => $metrik) {
             $postfix = substr($index, -3, 3);
             if ($columns[$postfix]) {
                 continue;
             }
             if (!empty($metrik)) {
                 $columns[$postfix] = true;
             }
         }
     }
     $viewer->assign('COLUMNS', $columns);
     /*end*/
     $viewer->assign('CALCULATION_FIELDS', $calculation);
     $viewer->assign('DATA', $data);
     $viewer->assign('DATAGROUPED', $dataGrouped);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('COUNT', $this->count);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('REPORT_RUN_INSTANCE', ReportRun::getInstance($record));
     if (count($data) > self::REPORT_LIMIT) {
         $viewer->assign('LIMIT_EXCEEDED', true);
     }
     $viewer->view('ReportContents.tpl', $moduleName);
 }
예제 #24
0
 function step3(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getCleanInstance($record);
     if (!empty($record)) {
         $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter());
         $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter());
     }
     $data = $request->getAll();
     foreach ($data as $name => $value) {
         $reportModel->set($name, $value);
     }
     $primaryModule = $request->get('primary_module');
     $secondaryModules = $request->get('secondary_modules');
     $reportModel->setPrimaryModule($primaryModule);
     if (!empty($secondaryModules)) {
         $secondaryModules = implode(':', $secondaryModules);
         $reportModel->setSecondaryModule($secondaryModules);
         $secondaryModules = explode(':', $secondaryModules);
     } else {
         $secondaryModules = array();
     }
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('REPORT_MODEL', $reportModel);
     $viewer->assign('PRIMARY_MODULE', $primaryModule);
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel);
     $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure();
     $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure();
     $viewer->assign('SECONDARY_MODULES', $secondaryModules);
     $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure);
     $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures);
     $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
     foreach ($dateFilters as $comparatorKey => $comparatorInfo) {
         $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
         $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
         $comparatorInfo['label'] = vtranslate($comparatorInfo['label'], $moduleName);
         $dateFilters[$comparatorKey] = $comparatorInfo;
     }
     $viewer->assign('DATE_FILTERS', $dateFilters);
     if ($primaryModule == 'Calendar' || in_array('Calendar', $secondaryModules)) {
         $advanceFilterOpsByFieldType = Calendar_Field_Model::getAdvancedFilterOpsByFieldType();
     } else {
         $advanceFilterOpsByFieldType = Vtiger_Field_Model::getAdvancedFilterOpsByFieldType();
     }
     $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions());
     $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', $advanceFilterOpsByFieldType);
     $viewer->assign('MODULE', $moduleName);
     $calculationFields = $reportModel->get('calculation_fields');
     if ($calculationFields) {
         $calculationFields = Zend_Json::decode($calculationFields);
         $viewer->assign('LINEITEM_FIELD_IN_CALCULATION', $reportModel->showLineItemFieldsInFilter($calculationFields));
     }
     if ($request->get('isDuplicate')) {
         $viewer->assign('IS_DUPLICATE', true);
     }
     $viewer->view('step3.tpl', $moduleName);
 }
예제 #25
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 Reports_Record_Model();
             $reportModel->setData($reportsList[$i])->setModuleFromInstance($reportModuleModel);
             $reportModel->set('foldername', $folders[$key]->getName());
             $allReportModels[] = $reportModel;
             unset($reportModel);
         }
     }
     return $allReportModels;
 }
예제 #26
0
 function getReport(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $record = $request->get('record');
     $reportModel = Reports_Record_Model::getInstanceById($record);
     $reportChartModel = Reports_Chart_Model::getInstanceById($reportModel);
     $secondaryModules = $reportModel->getSecondaryModules();
     if (empty($secondaryModules)) {
         $viewer->assign('CLICK_THROUGH', true);
     }
     $viewer->assign('ADVANCED_FILTERS', $request->get('advanced_filter'));
     $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFields());
     $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFields());
     $viewer->assign('CALCULATION_FIELDS', $reportModel->getModuleCalculationFieldsForReport());
     $data = $reportChartModel->getData();
     $viewer->assign('CHART_TYPE', $reportChartModel->getChartType());
     $viewer->assign('DATA', json_encode($data, JSON_HEX_APOS));
     $viewer->assign('REPORT_MODEL', $reportModel);
     $viewer->assign('RECORD_ID', $record);
     $viewer->assign('REPORT_MODEL', $reportModel);
     $viewer->assign('SECONDARY_MODULES', $secondaryModules);
     $viewer->assign('MODULE', $moduleName);
     $viewer->view('ChartReportContents.tpl', $moduleName);
 }