Files
crm.clientright.ru/modules/PDFMaker/views/EditRelatedBlock.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

761 lines
33 KiB
PHP

<?php
/* * *******************************************************************************
* The content of this file is subject to the PDF Maker license.
* ("License"); You may not use this file except in compliance with the License
* The Initial Developer of the Original Code is IT-Solutions4You s.r.o.
* Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o.
* All Rights Reserved.
* ****************************************************************************** */
class PDFMaker_EditRelatedBlock_View extends Vtiger_Footer_View
{
public function checkPermission(Vtiger_Request $request)
{
}
public function process(Vtiger_Request $request)
{
PDFMaker_Debugger_Model::GetInstance()->Init();
$primaryModule = '';
$module = $request->getModule();
$adb = PearDatabase::getInstance();
$current_user = Users_Record_Model::getCurrentUserModel();
$viewer = $this->getViewer($request);
$viewer->assign('SELECTED_SORT_FIELDS', []);
global $current_language;
$step = $request->get('step');
if ($step == "") {
$step = "1";
}
$mode = $request->get('mode');
$record = $request->get('record');
if (isset($mode) && $mode == "Delete") {
$rel_module_result = $adb->pquery("SELECT module FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?", array($record));
$rel_module = $adb->query_result($rel_module_result, 0, "module");
$adb->pquery("DELETE FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?", array($record));
header("Location:index.php?module=PDFMaker&action=PDFMakerAjax&file=ListRelatedBlocks&parenttab=Tools&pdfmodule=" . $rel_module);
exit;
}
if (isset($mode) && $mode == "add") {
$result = $adb->pquery("SELECT * FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?", 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 "<div id='block' style='display:none;'>" . $body . "</div>";
echo "<script>
var oEditor = window.opener.CKEDITOR.instances.body;
content = document.getElementById('block').innerHTML;
oEditor.insertHtml(content);
self.close();
</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) {
$result = $adb->pquery("SELECT * FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?", 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');
}
private function getSelectedColumnsList($primodule, $secmodule, $relblockid, $current_user)
{
$is_admin = false;
$profileGlobalPermission = [];
$selectedfields = [];
$adb = PearDatabase::getInstance();
$ssql = "select vtiger_pdfmaker_relblockcol.* from vtiger_pdfmaker_relblocks";
$ssql .= " left join vtiger_pdfmaker_relblockcol on vtiger_pdfmaker_relblockcol.relblockid = vtiger_pdfmaker_relblocks.relblockid";
$ssql .= " where vtiger_pdfmaker_relblocks.relblockid = ?";
$ssql .= " order by vtiger_pdfmaker_relblockcol.colid";
$result = $adb->pquery($ssql, array($relblockid));
$permitted_fields = array();
$selected_mod = explode(":", $secmodule);
array_push($selected_mod, $primodule);
while ($columnslistrow = $adb->fetch_array($result)) {
$fieldname = "";
$fieldcolname = $columnslistrow["columnname"];
$selmod_field_disabled = true;
foreach ($selected_mod as $smod) {
if ((stripos($fieldcolname, ":" . $smod . "_") > -1) && PDFMaker_Module_Model::isModuleActive($smod)) {
$selmod_field_disabled = false;
break;
}
}
if ($selmod_field_disabled == false) {
list($tablename, $colname, $module_field, $fieldname, $single) = explode(":", $fieldcolname);
require('user_privileges/user_privileges_' . $current_user->getId() . '.php');
list($module, $field) = explode("_", $module_field);
if (sizeof($permitted_fields) == 0 && $is_admin == false && $profileGlobalPermission[1] == 1 && $profileGlobalPermission[2] == 1) {
$permitted_fields = $this->getaccesfield($module, $primodule, $secmodule);
}
$querycolumns = $this->getEscapedColumns($selectedfields, $primodule, $secmodule);
$fieldlabel = trim(str_replace($module, " ", $module_field));
$mod_arr = explode('_', $fieldlabel);
$mod = ($mod_arr[0] == '') ? $module : $mod_arr[0];
$fieldlabel = trim(str_replace("_", " ", $fieldlabel));
//modified code to support i18n issue
//$mod_lbl = getTranslatedString($mod,$module); //module
//$fld_lbl = getTranslatedString($fieldlabel,$module); //fieldlabel
//$fieldlabel = $mod_lbl." ".$fld_lbl;
$fieldlabel = getTranslatedString($fieldlabel, $module); //fieldlabel
if (CheckFieldPermission($fieldname, $mod) != 'true' && $colname != "crmid") {
$shtml .= "<option permission='no' value=\"" . $fieldcolname . "\" disabled = 'true'>" . $fieldlabel . "</option>";
} else {
$shtml .= "<option permission='yes' value=\"" . $fieldcolname . "\">" . $fieldlabel . "</option>";
}
}
//end
}
return $shtml;
}
private function getaccesfield($module, $primodule, $secmodule)
{
$adb = PearDatabase::getInstance();
$access_fields = array();
$profileList = getCurrentUserProfileList();
$where = '';
$params = array();
if ($module == "Calendar") {
$where .= " vtiger_field.tabid in (9,16) and vtiger_field.displaytype in (1,2,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_field.presence in (0,2)";
if (count($profileList) > 0) {
$where .= " and vtiger_profile2field.profileid in (" . generateQuestionMarks($profileList) . ")";
array_push($params, $profileList);
}
$where .= " group by vtiger_field.fieldid order by block,sequence";
} else {
array_push($params, $primodule, $secmodule);
$where .= " vtiger_field.tabid in (select tabid from vtiger_tab where vtiger_tab.name in (?,?)) and vtiger_field.displaytype in (1,2,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_field.presence in (0,2)";
if (count($profileList) > 0) {
$where .= " and vtiger_profile2field.profileid in (" . generateQuestionMarks($profileList) . ")";
array_push($params, $profileList);
}
$where .= " group by vtiger_field.fieldid order by block,sequence";
}
$query = "select vtiger_field.fieldname from vtiger_field inner join vtiger_profile2field on vtiger_profile2field.fieldid=vtiger_field.fieldid inner join vtiger_def_org_field on vtiger_def_org_field.fieldid=vtiger_field.fieldid where" . $where;
$result = $adb->pquery($query, $params);
while ($collistrow = $adb->fetch_array($result)) {
$access_fields[] = $collistrow["fieldname"];
}
return $access_fields;
}
private function getEscapedColumns($selectedfields, $primarymodule, $secondarymodule)
{
$fieldname = $selectedfields[3];
if ($fieldname == "parent_id") {
if ($primarymodule == "HelpDesk" && $selectedfields[0] == "vtiger_crmentityRelHelpDesk") {
$querycolumn = "case vtiger_crmentityRelHelpDesk.setype when 'Accounts' then vtiger_accountRelHelpDesk.accountname when 'Contacts' then vtiger_contactdetailsRelHelpDesk.lastname End" . " '" . $selectedfields[2] . "', vtiger_crmentityRelHelpDesk.setype 'Entity_type'";
return $querycolumn;
}
if ($primarymodule == "Products" || $secondarymodule == "Products") {
$querycolumn = "case vtiger_crmentityRelProducts.setype when 'Accounts' then vtiger_accountRelProducts.accountname when 'Leads' then vtiger_leaddetailsRelProducts.lastname when 'Potentials' then vtiger_potentialRelProducts.potentialname End" . " '" . $selectedfields[2] . "', vtiger_crmentityRelProducts.setype 'Entity_type'";
}
if ($primarymodule == "Calendar" || $secondarymodule == "Calendar") {
$querycolumn = "case vtiger_crmentityRelCalendar.setype when 'Accounts' then vtiger_accountRelCalendar.accountname when 'Leads' then vtiger_leaddetailsRelCalendar.lastname when 'Potentials' then vtiger_potentialRelCalendar.potentialname when 'Quotes' then vtiger_quotesRelCalendar.subject when 'PurchaseOrder' then vtiger_purchaseorderRelCalendar.subject when 'Invoice' then vtiger_invoiceRelCalendar.subject End" . " '" . $selectedfields[2] . "', vtiger_crmentityRelCalendar.setype 'Entity_type'";
}
}
return $querycolumn;
}
private function getSortColumns($relblockid, $selected_columns)
{
$adb = PearDatabase::getInstance();
$sql = "SELECT columnname, sortorder, sortsequence
FROM vtiger_pdfmaker_relblockcol
WHERE relblockid=? AND sortorder != ''
ORDER BY sortsequence";
$result = $adb->pquery($sql, array($relblockid));
$outputsArr = array();
$sortOrder = array();
$selected_columns = '<option value="0">' . vtranslate("LBL_NONE") . '</option>' . $selected_columns;
$idx = 1;
while ($row = $adb->fetchByAssoc($result)) {
$search = 'value="' . $row["columnname"] . '"';
$replace = 'value="' . $row["columnname"] . '" selected="selected"';
$outputsArr[$idx] = str_replace($search, $replace, $selected_columns);
if ($row["sortorder"] == "Descending") {
$sortOrder[$idx] = '<option value="Ascending">' . vtranslate("LBL_ASC", 'PDFMaker') . '</option>
<option value="Descending" selected="selected">' . vtranslate("LBL_DESC", 'PDFMaker') . '</option>';
} else {
$sortOrder[$idx] = '<option value="Ascending" selected="selected">' . vtranslate("LBL_ASC", 'PDFMaker') . '</option>
<option value="Descending">' . vtranslate("LBL_DESC", 'PDFMaker') . '</option>';
}
$idx++;
$tmpArr = explode("</option>", $selected_columns);
$selected_columns = "";
foreach ($tmpArr as $option) {
if (strpos($option, $search) === false) {
$selected_columns .= $option . '</option>';
}
}
}
$outputsArr[$idx] = $selected_columns;
$sortOrder[$idx] = '<option value="Ascending">' . vtranslate("LBL_ASC", 'PDFMaker') . '</option>
<option value="Descending">' . vtranslate("LBL_DESC", 'PDFMaker') . '</option>';
return array($outputsArr, $sortOrder);
}
public function getHeaderScripts(Vtiger_Request $request)
{
$headerScriptInstances = parent::getHeaderScripts($request);
$moduleName = $request->getModule();
$jsFileNames = array(
"modules.Vtiger.resources.Edit",
"modules.$moduleName.resources.Edit",
"modules.$moduleName.resources.RelatedBlock",
"modules.Vtiger.resources.Field",
"modules.Vtiger.resources.AdvanceFilter",
"modules.$moduleName.resources.AdvanceFilter",
"modules.$moduleName.resources.ckeditor.ckeditor",
"libraries.jquery.ckeditor.adapters.jquery",
"modules.Vtiger.resources.CkEditor",
"modules.$moduleName.resources.CkEditor"
);
/*
$jsFileNames = array(
"modules.Vtiger.resources.Edit",
"modules.PDFMaker.resources.Edit",
"modules.PDFMaker.resources.RelatedBlock",
"modules.Vtiger.resources.Popup",
"modules.Vtiger.resources.Field",
"modules.Vtiger.resources.validator.BaseValidator",
"modules.Vtiger.resources.validator.FieldValidator",
"libraries.jquery.jquery_windowmsg",
"modules.Vtiger.resources.BasicSearch",
"modules.Vtiger.resources.AdvanceFilter",
"modules.Vtiger.resources.SearchAdvanceFilter",
"modules.Vtiger.resources.AdvanceSearch",
"modules.Vtiger.resources.Vtiger",
"modules.PDFMaker.resources.ckeditor.ckeditor",
"libraries.jquery.ckeditor.adapters.jquery",
"modules.Vtiger.resources.CkEditor",
"modules.PDFMaker.resources.CkEditor"
);*/
$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
$headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
return $headerScriptInstances;
}
private function getRBlockCriteriaJS()
{
$today = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")));
$tomorrow = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 1, date("Y")));
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 1, date("Y")));
$currentmonth0 = date("Y-m-d", mktime(0, 0, 0, date("m"), "01", date("Y")));
$currentmonth1 = date("Y-m-t");
$lastmonth0 = date("Y-m-d", mktime(0, 0, 0, date("m") - 1, "01", date("Y")));
$lastmonth1 = date("Y-m-t", strtotime("-1 Month"));
$nextmonth0 = date("Y-m-d", mktime(0, 0, 0, date("m") + 1, "01", date("Y")));
$nextmonth1 = date("Y-m-t", strtotime("+1 Month"));
$lastweek0 = date("Y-m-d", strtotime("-2 week Sunday"));
$lastweek1 = date("Y-m-d", strtotime("-1 week Saturday"));
$thisweek0 = date("Y-m-d", strtotime("-1 week Sunday"));
$thisweek1 = date("Y-m-d", strtotime("this Saturday"));
$nextweek0 = date("Y-m-d", strtotime("this Sunday"));
$nextweek1 = date("Y-m-d", strtotime("+1 week Saturday"));
$next7days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 6, date("Y")));
$next30days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 29, date("Y")));
$next60days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 59, date("Y")));
$next90days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 89, date("Y")));
$next120days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 119, date("Y")));
$last7days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 6, date("Y")));
$last30days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 29, date("Y")));
$last60days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 59, date("Y")));
$last90days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 89, date("Y")));
$last120days = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 119, date("Y")));
$currentFY0 = date("Y-m-d", mktime(0, 0, 0, "01", "01", date("Y")));
$currentFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y")));
$lastFY0 = date("Y-m-d", mktime(0, 0, 0, "01", "01", date("Y") - 1));
$lastFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y") - 1));
$nextFY0 = date("Y-m-d", mktime(0, 0, 0, "01", "01", date("Y") + 1));
$nextFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y") + 1));
if (date("m") <= 3) {
$cFq = date("Y-m-d", mktime(0, 0, 0, "01", "01", date("Y")));
$cFq1 = date("Y-m-d", mktime(0, 0, 0, "03", "31", date("Y")));
$nFq = date("Y-m-d", mktime(0, 0, 0, "04", "01", date("Y")));
$nFq1 = date("Y-m-d", mktime(0, 0, 0, "06", "30", date("Y")));
$pFq = date("Y-m-d", mktime(0, 0, 0, "10", "01", date("Y") - 1));
$pFq1 = date("Y-m-d", mktime(0, 0, 0, "12", "31", date("Y") - 1));
} else {
if (date("m") > 3 and date("m") <= 6) {
$pFq = date("Y-m-d", mktime(0, 0, 0, "01", "01", date("Y")));
$pFq1 = date("Y-m-d", mktime(0, 0, 0, "03", "31", date("Y")));
$cFq = date("Y-m-d", mktime(0, 0, 0, "04", "01", date("Y")));
$cFq1 = date("Y-m-d", mktime(0, 0, 0, "06", "30", date("Y")));
$nFq = date("Y-m-d", mktime(0, 0, 0, "07", "01", date("Y")));
$nFq1 = date("Y-m-d", mktime(0, 0, 0, "09", "30", date("Y")));
} else {
if (date("m") > 6 and date("m") <= 9) {
$nFq = date("Y-m-d", mktime(0, 0, 0, "10", "01", date("Y")));
$nFq1 = date("Y-m-d", mktime(0, 0, 0, "12", "31", date("Y")));
$pFq = date("Y-m-d", mktime(0, 0, 0, "04", "01", date("Y")));
$pFq1 = date("Y-m-d", mktime(0, 0, 0, "06", "30", date("Y")));
$cFq = date("Y-m-d", mktime(0, 0, 0, "07", "01", date("Y")));
$cFq1 = date("Y-m-d", mktime(0, 0, 0, "09", "30", date("Y")));
} else {
if (date("m") > 9 and date("m") <= 12) {
$nFq = date("Y-m-d", mktime(0, 0, 0, "01", "01", date("Y") + 1));
$nFq1 = date("Y-m-d", mktime(0, 0, 0, "03", "31", date("Y") + 1));
$pFq = date("Y-m-d", mktime(0, 0, 0, "07", "01", date("Y")));
$pFq1 = date("Y-m-d", mktime(0, 0, 0, "09", "30", date("Y")));
$cFq = date("Y-m-d", mktime(0, 0, 0, "10", "01", date("Y")));
$cFq1 = date("Y-m-d", mktime(0, 0, 0, "12", "31", date("Y")));
}
}
}
}
$sjsStr = '<script language="JavaScript" type="text/javaScript">
function showDateRange( type )
{
if (type!="custom")
{
document.NewBlock.startdate.readOnly=true
document.NewBlock.enddate.readOnly=true
getObj("jscal_trigger_date_start").style.visibility="hidden"
getObj("jscal_trigger_date_end").style.visibility="hidden"
}
else
{
document.NewBlock.startdate.readOnly=false
document.NewBlock.enddate.readOnly=false
getObj("jscal_trigger_date_start").style.visibility="visible"
getObj("jscal_trigger_date_end").style.visibility="visible"
}
if( type == "today" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($today) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($today) . '";
}
else if( type == "yesterday" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($yesterday) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($yesterday) . '";
}
else if( type == "tomorrow" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($tomorrow) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($tomorrow) . '";
}
else if( type == "thisweek" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($thisweek0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($thisweek1) . '";
}
else if( type == "lastweek" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($lastweek0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($lastweek1) . '";
}
else if( type == "nextweek" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($nextweek0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($nextweek1) . '";
}
else if( type == "thismonth" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($currentmonth0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($currentmonth1) . '";
}
else if( type == "lastmonth" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($lastmonth0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($lastmonth1) . '";
}
else if( type == "nextmonth" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($nextmonth0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($nextmonth1) . '";
}
else if( type == "next7days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($today) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($next7days) . '";
}
else if( type == "next30days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($today) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($next30days) . '";
}
else if( type == "next60days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($today) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($next60days) . '";
}
else if( type == "next90days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($today) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($next90days) . '";
}
else if( type == "next120days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($today) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($next120days) . '";
}
else if( type == "last7days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($last7days) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($today) . '";
}
else if( type == "last30days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($last30days) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($today) . '";
}
else if( type == "last60days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($last60days) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($today) . '";
}
else if( type == "last90days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($last90days) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($today) . '";
}
else if( type == "last120days" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($last120days) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($today) . '";
}
else if( type == "thisfy" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($currentFY0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($currentFY1) . '";
}
else if( type == "prevfy" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($lastFY0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($lastFY1) . '";
}
else if( type == "nextfy" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($nextFY0) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($nextFY1) . '";
}
else if( type == "nextfq" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($nFq) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($nFq1) . '";
}
else if( type == "prevfq" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($pFq) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($pFq1) . '";
}
else if( type == "thisfq" )
{
document.NewBlock.startdate.value = "' . getValidDisplayDate($cFq) . '";
document.NewBlock.enddate.value = "' . getValidDisplayDate($cFq1) . '";
}
else
{
document.NewBlock.startdate.value = "";
document.NewBlock.enddate.value = "";
}
}
</script>';
return $sjsStr;
}
private function getRBlockSelectedStdFilterCriteria($selecteddatefilter = "")
{
global $rep_mod_strings;
$datefiltervalue = array(
"custom",
"prevfy",
"thisfy",
"nextfy",
"prevfq",
"thisfq",
"nextfq",
"yesterday",
"today",
"tomorrow",
"lastweek",
"thisweek",
"nextweek",
"lastmonth",
"thismonth",
"nextmonth",
"last7days",
"last30days",
"last60days",
"last90days",
"last120days",
"next30days",
"next60days",
"next90days",
"next120days"
);
$datefilterdisplay = array(
"Custom",
"Previous FY",
"Current FY",
"Next FY",
"Previous FQ",
"Current FQ",
"Next FQ",
"Yesterday",
"Today",
"Tomorrow",
"Last Week",
"Current Week",
"Next Week",
"Last Month",
"Current Month",
"Next Month",
"Last 7 Days",
"Last 30 Days",
"Last 60 Days",
"Last 90 Days",
"Last 120 Days",
"Next 7 Days",
"Next 30 Days",
"Next 60 Days",
"Next 90 Days",
"Next 120 Days"
);
for ($i = 0; $i < count($datefiltervalue); $i++) {
if ($selecteddatefilter == $datefiltervalue[$i]) {
$sshtml .= "<option selected value='" . $datefiltervalue[$i] . "'>" . $rep_mod_strings[$datefilterdisplay[$i]] . "</option>";
} else {
$sshtml .= "<option value='" . $datefiltervalue[$i] . "'>" . $rep_mod_strings[$datefilterdisplay[$i]] . "</option>";
}
}
return $sshtml;
}
private function getAdvCriteriaHTML($selected = "")
{
global $adv_filter_options;
foreach ($adv_filter_options as $key => $value) {
if ($selected == $key) {
$shtml .= "<option selected value=\"" . $key . "\">" . $value . "</option>";
} else {
$shtml .= "<option value=\"" . $key . "\">" . $value . "</option>";
}
}
return $shtml;
}
}