id; if(isset($_REQUEST["setDefault"])) { $setdefault = 1; } else { $setdefault = 0; } if(isset($_REQUEST["setMetrics"])) { $setmetrics = 1; } else { $setmetrics = 0; } //$allKeys = array_keys($HTTP_POST_VARS); //this is will cause only the chosen fields to be added to the vtiger_cvcolumnlist table $allKeys = array_keys($_REQUEST); //<<<<<<>>>>>>>>> for ($i=0;$i>>>>>>>> //<<<<<<>>>>>>>> $std_filter_list = array(); $stdfiltercolumn = $_REQUEST["stdDateFilterField"]; $std_filter_list["columnname"] = $stdfiltercolumn; $stdcriteria = $_REQUEST["stdDateFilter"]; $std_filter_list["stdfilter"] = $stdcriteria; $startdate = $_REQUEST["startdate"]; $enddate = $_REQUEST["enddate"]; if(empty($startdate) && empty($enddate)) { unset($std_filter_list); } else { $dbCurrentDateTime = new DateTimeField(date('Y-m-d H:i:s')); $startDateTime = new DateTimeField($startdate.' '. $dbCurrentDateTime->getDisplayTime()); $endDateTime = new DateTimeField($enddate.' '. $dbCurrentDateTime->getDisplayTime()); $std_filter_list["startdate"] = $startDateTime->getDBInsertDateValue(); $std_filter_list["enddate"] = $endDateTime->getDBInsertDateValue(); } //<<<<<<>>>>>>>> //<<<<<<>>>>>>>> $json = new Zend_Json(); $advft_criteria = $_REQUEST['advft_criteria']; $advft_criteria = $json->decode($advft_criteria); $advft_criteria_groups = $_REQUEST['advft_criteria_groups']; $advft_criteria_groups = $json->decode($advft_criteria_groups); //<<<<<<>>>>>>> $moduleHandler = vtws_getModuleHandlerFromName($cvmodule,$current_user); $moduleMeta = $moduleHandler->getMeta(); $moduleFields = $moduleMeta->getModuleFields(); if(!$cvid) { $genCVid = $adb->getUniqueID("vtiger_customview"); if($genCVid != "") { $customviewsql = "INSERT INTO vtiger_customview(cvid, viewname, setdefault, setmetrics, entitytype, status, userid) VALUES (?,?,?,?,?,?,?)"; $customviewparams = array($genCVid, $viewname, 0, $setmetrics, $cvmodule, $status, $userid); $customviewresult = $adb->pquery($customviewsql, $customviewparams); $log->info("CustomView :: Save :: vtiger_customview created successfully"); if($setdefault == 1) { $sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid)); if($adb->num_rows($sql_result) > 0) { $updatedefaultsql = "UPDATE vtiger_user_module_preferences SET default_cvid = ? WHERE userid = ? and tabid = ?"; $updatedefaultresult = $adb->pquery($updatedefaultsql, array($genCVid, $current_user->id, $cv_tabid)); } else { $insertdefaultsql = "INSERT INTO vtiger_user_module_preferences(userid, tabid, default_cvid) values (?,?,?)"; $insertdefaultresult = $adb->pquery($insertdefaultsql, array($userid, $cv_tabid, $genCVid)); } } else { $sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid)); if($adb->num_rows($sql_result) > 0) { $deletedefaultsql = "DELETE FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?"; $deletedefaultresult = $adb->pquery($deletedefaultsql, array($current_user->id, $cv_tabid)); } } $log->info("CustomView :: Save :: setdefault upated successfully"); if($customviewresult) { if(isset($columnslist)) { for($i=0;$ipquery($columnsql, $columnparams); } $log->info("CustomView :: Save :: vtiger_cvcolumnlist created successfully"); if($std_filter_list["columnname"] !="") { $stdfiltersql = "INSERT INTO vtiger_cvstdfilter(cvid,columnname,stdfilter,startdate,enddate) VALUES (?,?,?,?,?)"; $stdfilterparams = array($genCVid, $std_filter_list["columnname"], $std_filter_list["stdfilter"], $adb->formatDate($std_filter_list["startdate"], true), $adb->formatDate($std_filter_list["enddate"], true)); $stdfilterresult = $adb->pquery($stdfiltersql, $stdfilterparams); $log->info("CustomView :: Save :: vtiger_cvstdfilter created successfully"); } foreach($advft_criteria as $column_index => $column_condition) { if(empty($column_condition)) continue; $adv_filter_column = $column_condition["columnname"]; $adv_filter_comparator = $column_condition["comparator"]; $adv_filter_value = $column_condition["value"]; $adv_filter_column_condition = $column_condition["columncondition"]; $adv_filter_groupid = $column_condition["groupid"]; $column_info = explode(":",$adv_filter_column); $fieldName = $column_info[2]; $fieldObj = $moduleFields[$fieldName]; $fieldType = $fieldObj->getFieldDataType(); if($fieldType == 'currency') { if($fieldObj->getUIType() == '71') { $adv_filter_value = CurrencyField::convertToDBFormat($adv_filter_value, null, true); } else { $adv_filter_value = CurrencyField::convertToDBFormat($adv_filter_value); } } $temp_val = explode(",",$adv_filter_value); if(($fieldType == 'date' || ($fieldType == 'time' && $fieldName != 'time_start' && $fieldName != 'time_end') || ($fieldType == 'datetime')) && ($fieldType != '' && $adv_filter_value != '' )) { $val = Array(); for($x=0;$xgetDBInsertDateTimeValue(); } else { $val[$x] = $date->getDBInsertTimeValue(); } } } $adv_filter_value = implode(",",$val); } $irelcriteriasql = "INSERT INTO vtiger_cvadvfilter(cvid,columnindex,columnname,comparator,value,groupid,column_condition) values (?,?,?,?,?,?,?)"; $irelcriteriaresult = $adb->pquery($irelcriteriasql, array($genCVid, $column_index, $adv_filter_column, $adv_filter_comparator, $adv_filter_value, $adv_filter_groupid, $adv_filter_column_condition)); // Update the condition expression for the group to which the condition column belongs $groupConditionExpression = ''; if(!empty($advft_criteria_groups[$adv_filter_groupid]["conditionexpression"])) { $groupConditionExpression = $advft_criteria_groups[$adv_filter_groupid]["conditionexpression"]; } $groupConditionExpression = $groupConditionExpression .' '. $column_index .' '. $adv_filter_column_condition; $advft_criteria_groups[$adv_filter_groupid]["conditionexpression"] = $groupConditionExpression; } foreach($advft_criteria_groups as $group_index => $group_condition_info) { if(empty($group_condition_info)) continue; if(empty($group_condition_info["conditionexpression"])) continue; // Case when the group doesn't have any column criteria $irelcriteriagroupsql = "insert into vtiger_cvadvfilter_grouping(groupid,cvid,group_condition,condition_expression) values (?,?,?,?)"; $irelcriteriagroupresult = $adb->pquery($irelcriteriagroupsql, array($group_index, $genCVid, $group_condition_info["groupcondition"], $group_condition_info["conditionexpression"])); } $log->info("CustomView :: Save :: vtiger_cvadvfilter created successfully"); } } $cvid = $genCVid; } } else { if($is_admin == true || $current_user->id) { $updatecvsql = "UPDATE vtiger_customview SET viewname = ?, setmetrics = ?, status = ? WHERE cvid = ?"; $updatecvparams = array($viewname, $setmetrics, $status, $cvid); $updatecvresult = $adb->pquery($updatecvsql, $updatecvparams); $log->info("CustomView :: Save :: vtiger_customview upated successfully".$cvid); if($setdefault == 1) { $sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid)); if($adb->num_rows($sql_result) > 0) { $updatedefaultsql = "UPDATE vtiger_user_module_preferences SET default_cvid = ? WHERE userid = ? and tabid = ?"; $updatedefaultresult = $adb->pquery($updatedefaultsql, array($cvid, $current_user->id, $cv_tabid)); } else { $insertdefaultsql = "INSERT INTO vtiger_user_module_preferences(userid, tabid, default_cvid) values (?,?,?)"; $insertdefaultresult = $adb->pquery($insertdefaultsql, array($userid, $cv_tabid, $cvid)); } } else { $sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid)); if($adb->num_rows($sql_result) > 0) { $deletedefaultsql = "DELETE FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?"; $deletedefaultresult = $adb->pquery($deletedefaultsql, array($current_user->id, $cv_tabid)); } } $log->info("CustomView :: Save :: setdefault upated successfully".$cvid); $deletesql = "DELETE FROM vtiger_cvcolumnlist WHERE cvid = ?"; $deleteresult = $adb->pquery($deletesql, array($cvid)); $deletesql = "DELETE FROM vtiger_cvstdfilter WHERE cvid = ?"; $deleteresult = $adb->pquery($deletesql, array($cvid)); $deletesql = "DELETE FROM vtiger_cvadvfilter WHERE cvid = ?"; $deleteresult = $adb->pquery($deletesql, array($cvid)); $deletesql = "DELETE FROM vtiger_cvadvfilter_grouping WHERE cvid = ?"; $deleteresult = $adb->pquery($deletesql, array($cvid)); $log->info("CustomView :: Save :: vtiger_cvcolumnlist,cvstdfilter,cvadvfilter,cvadvfilter_grouping deleted successfully before update".$genCVid); $genCVid = $cvid; if($updatecvresult) { if(isset($columnslist)) { for($i=0;$ipquery($columnsql, $columnparams); } $log->info("CustomView :: Save :: vtiger_cvcolumnlist update successfully".$genCVid); if($std_filter_list["columnname"] !="") { $stdfiltersql = "INSERT INTO vtiger_cvstdfilter (cvid,columnname,stdfilter,startdate,enddate) VALUES (?,?,?,?,?)"; $stdfilterparams = array($genCVid, $std_filter_list["columnname"], $std_filter_list["stdfilter"], $adb->formatDate($std_filter_list["startdate"], true), $adb->formatDate($std_filter_list["enddate"], true)); $stdfilterresult = $adb->pquery($stdfiltersql, $stdfilterparams); $log->info("CustomView :: Save :: vtiger_cvstdfilter update successfully".$genCVid); } foreach($advft_criteria as $column_index => $column_condition) { if(empty($column_condition)) continue; $adv_filter_column = $column_condition["columnname"]; $adv_filter_comparator = $column_condition["comparator"]; $adv_filter_value = $column_condition["value"]; $adv_filter_column_condition = $column_condition["columncondition"]; $adv_filter_groupid = $column_condition["groupid"]; $column_info = explode(":",$adv_filter_column); $fieldName = $column_info[2]; $fieldObj = $moduleFields[$fieldName]; $fieldType = $fieldObj->getFieldDataType(); if($fieldType == 'currency') { // Some of the currency fields like Unit Price, Total, Sub-total etc of Inventory modules, do not need currency conversion if($fieldObj->getUIType() == '72') { $adv_filter_value = CurrencyField::convertToDBFormat($adv_filter_value, null, true); } else { $adv_filter_value = CurrencyField::convertToDBFormat($adv_filter_value); } } $temp_val = explode(",",$adv_filter_value); if(($fieldType == 'date' || ($fieldType == 'time' && $fieldName != 'time_start' && $fieldName != 'time_end') || ($fieldType == 'datetime')) && ($fieldType != '' && $adv_filter_value != '' )) { $val = Array(); for($x=0;$xgetDBInsertDateTimeValue(); } else { $val[$x] = $date->getDBInsertTimeValue(); } } } $adv_filter_value = implode(",",$val); } $irelcriteriasql = "INSERT INTO vtiger_cvadvfilter(cvid,columnindex,columnname,comparator,value,groupid,column_condition) values (?,?,?,?,?,?,?)"; $irelcriteriaresult = $adb->pquery($irelcriteriasql, array($genCVid, $column_index, $adv_filter_column, $adv_filter_comparator, $adv_filter_value, $adv_filter_groupid, $adv_filter_column_condition)); // Update the condition expression for the group to which the condition column belongs $groupConditionExpression = ''; if(!empty($advft_criteria_groups[$adv_filter_groupid]["conditionexpression"])) { $groupConditionExpression = $advft_criteria_groups[$adv_filter_groupid]["conditionexpression"]; } $groupConditionExpression = $groupConditionExpression .' '. $column_index .' '. $adv_filter_column_condition; $advft_criteria_groups[$adv_filter_groupid]["conditionexpression"] = $groupConditionExpression; } foreach($advft_criteria_groups as $group_index => $group_condition_info) { if(empty($group_condition_info)) continue; if(empty($group_condition_info["conditionexpression"])) continue; // Case when the group doesn't have any column criteria $irelcriteriagroupsql = "insert into vtiger_cvadvfilter_grouping(groupid,cvid,group_condition,condition_expression) values (?,?,?,?)"; $irelcriteriagroupresult = $adb->pquery($irelcriteriagroupsql, array($group_index, $genCVid, $group_condition_info["groupcondition"], $group_condition_info["conditionexpression"])); } $log->info("CustomView :: Save :: vtiger_cvadvfilter update successfully".$cvid); } } } } } header("Location: index.php?action=$return_action&parenttab=$parenttab&module=$cvmodule&viewname=$cvid"); ?>