/** * 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); }
function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Reports_Module_Model::getInstance($moduleName); $record = $request->get('record'); $reportModel = Reports_Record_Model::getCleanInstance($record); $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) { throw new AppException('LBL_PERMISSION_DENIED'); } }
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}"); }
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(); */ }
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); }
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; }
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); }
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'); }