951f0e4023
yuchenghu@hawebs.net git-svn-id: https://svn.code.sf.net/p/hawebs/svn@570 a2543c7e-f6e9-4f8a-8bff-1ffc34733512
4520 lines
196 KiB
PHP
4520 lines
196 KiB
PHP
<?php
|
|
/*********************************************************************************
|
|
* The contents of this file are subject to the SugarCRM Public License Version 1.1.2
|
|
* ("License"); You may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
* the specific language governing rights and limitations under the License.
|
|
* The Original Code is: SugarCRM Open Source
|
|
* The Initial Developer of the Original Code is SugarCRM, Inc.
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
********************************************************************************/
|
|
/*********************************************************************************
|
|
* $Header: /cvsroot/vtigercrm/vtiger_crm/include/utils/ListViewUtils.php,v 1.32 2006/02/03 06:53:08 mangai Exp $
|
|
* Description: Includes generic helper functions used throughout the application.
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________..
|
|
********************************************************************************/
|
|
|
|
require_once('include/database/PearDatabase.php');
|
|
require_once('include/ComboUtil.php'); //new
|
|
require_once('include/utils/CommonUtils.php'); //new
|
|
require_once('user_privileges/default_module_view.php'); //new
|
|
require_once('include/utils/UserInfoUtil.php');
|
|
require_once('include/Zend/Json.php');
|
|
|
|
/**This function is used to get the list view header values in a list view
|
|
*Param $focus - module object
|
|
*Param $module - module name
|
|
*Param $sort_qry - sort by value
|
|
*Param $sorder - sorting order (asc/desc)
|
|
*Param $order_by - order by
|
|
*Param $relatedlist - flag to check whether the header is for listvie or related list
|
|
*Param $oCv - Custom view object
|
|
*Returns the listview header values in an array
|
|
*/
|
|
function getListViewHeader($focus, $module,$sort_qry='',$sorder='',$order_by='',$relatedlist='',$oCv='',$relatedmodule='',$skipActions=false)
|
|
{
|
|
global $log, $singlepane_view;
|
|
$log->debug("Entering getListViewHeader(". $module.",".$sort_qry.",".$sorder.",".$order_by.",".$relatedlist.",".(is_object($oCv)? get_class($oCv) : $oCv).") method ...");
|
|
global $adb;
|
|
global $theme;
|
|
global $app_strings;
|
|
global $mod_strings;
|
|
|
|
$arrow='';
|
|
$qry = getURLstring($focus);
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
$list_header = Array();
|
|
|
|
//Get the vtiger_tabid of the module
|
|
$tabid = getTabid($module);
|
|
$tabname = getParentTab();
|
|
global $current_user;
|
|
//added for vtiger_customview 27/5
|
|
if($oCv)
|
|
{
|
|
if(isset($oCv->list_fields))
|
|
{
|
|
$focus->list_fields = $oCv->list_fields;
|
|
}
|
|
}
|
|
|
|
// Remove fields which are made inactive
|
|
$focus->filterInactiveFields($module);
|
|
|
|
//Added to reduce the no. of queries logging for non-admin user -- by Minnie-start
|
|
$field_list = array();
|
|
$j=0;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
foreach($focus->list_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
if($oCv)
|
|
{
|
|
if(isset($oCv->list_fields_name))
|
|
{
|
|
$fieldname = $oCv->list_fields_name[$name];
|
|
}
|
|
}
|
|
if($fieldname == 'accountname' && $module != 'Accounts')
|
|
{
|
|
$fieldname = 'account_id';
|
|
}
|
|
if($fieldname == 'lastname' && ($module == 'SalesOrder'|| $module == 'PurchaseOrder' || $module == 'Invoice' || $module == 'Quotes'||$module == 'Calendar' ))
|
|
{
|
|
$fieldname = 'contact_id';
|
|
}
|
|
if($fieldname == 'productname' && $module != 'Products')
|
|
{
|
|
$fieldname = 'product_id';
|
|
}
|
|
array_push($field_list, $fieldname);
|
|
$j++;
|
|
}
|
|
$field=Array();
|
|
if($is_admin==false)
|
|
{
|
|
if($module == 'Emails')
|
|
{
|
|
$query = "SELECT fieldname FROM vtiger_field WHERE tabid = ? and vtiger_field.presence in (0,2)";
|
|
$params = array($tabid);
|
|
}
|
|
else
|
|
{
|
|
$profileList = getCurrentUserProfileList();
|
|
$params = array();
|
|
|
|
$query = "SELECT DISTINCT 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";
|
|
if($module == "Calendar") {
|
|
$query .=" WHERE vtiger_field.tabid in (9,16) and vtiger_field.presence in (0,2)";
|
|
} else {
|
|
$query .=" WHERE vtiger_field.tabid = ? and vtiger_field.presence in (0,2)";
|
|
array_push($params, $tabid);
|
|
}
|
|
|
|
$query.=" AND vtiger_profile2field.visible = 0
|
|
AND vtiger_def_org_field.visible = 0
|
|
AND vtiger_profile2field.profileid IN (". generateQuestionMarks($profileList) .")
|
|
AND vtiger_field.fieldname IN (". generateQuestionMarks($field_list) .")";
|
|
|
|
array_push($params, $profileList, $field_list);
|
|
}
|
|
$result = $adb->pquery($query, $params);
|
|
for($k=0;$k < $adb->num_rows($result);$k++)
|
|
{
|
|
$field[]=$adb->query_result($result,$k,"fieldname");
|
|
}
|
|
}
|
|
//end
|
|
//modified for vtiger_customview 27/5 - $app_strings change to $mod_strings
|
|
foreach($focus->list_fields as $name=>$tableinfo)
|
|
{
|
|
//added for vtiger_customview 27/5
|
|
if($oCv)
|
|
{
|
|
if(isset($oCv->list_fields_name))
|
|
{
|
|
$fieldname = $oCv->list_fields_name[$name];
|
|
if($fieldname == 'accountname' && $module != 'Accounts')
|
|
{
|
|
$fieldname = 'account_id';
|
|
}
|
|
if($fieldname == 'lastname' && ($module == 'SalesOrder'|| $module == 'PurchaseOrder' || $module == 'Invoice' || $module == 'Quotes'|| $module == 'Calendar') )
|
|
{
|
|
$fieldname = 'contact_id';
|
|
}
|
|
if($fieldname == 'productname' && $module != 'Products')
|
|
{
|
|
$fieldname = 'product_id';
|
|
}
|
|
}else
|
|
{
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
}
|
|
}else
|
|
{
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
if($fieldname == 'accountname' && $module != 'Accounts')
|
|
{
|
|
$fieldname = 'account_id';
|
|
}
|
|
if($fieldname == 'lastname' && ($module == 'SalesOrder'|| $module == 'PurchaseOrder' || $module == 'Invoice' || $module == 'Quotes'|| $module == 'Calendar'))
|
|
{
|
|
$fieldname = 'contact_id';
|
|
}
|
|
if($fieldname == 'productname' && $module != 'Products')
|
|
{
|
|
$fieldname = 'product_id';
|
|
}
|
|
|
|
}
|
|
if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] ==0 || in_array($fieldname,$field) || $fieldname == '' || ($name=='Close' && $module=='Calendar'))
|
|
{
|
|
if(isset($focus->sortby_fields) && $focus->sortby_fields !='')
|
|
{
|
|
//Added on 14-12-2005 to avoid if and else check for every list vtiger_field for arrow image and change order
|
|
$change_sorder = array('ASC'=>'DESC','DESC'=>'ASC');
|
|
$arrow_gif = array('ASC'=>'arrow_down.gif','DESC'=>'arrow_up.gif');
|
|
foreach($focus->list_fields[$name] as $tab=>$col)
|
|
{
|
|
if(in_array($col,$focus->sortby_fields))
|
|
{
|
|
if($order_by == $col)
|
|
{
|
|
$temp_sorder = $change_sorder[$sorder];
|
|
$arrow = " <img src ='".vtiger_imageurl($arrow_gif[$sorder], $theme)."' border='0'>";
|
|
}
|
|
else
|
|
{
|
|
$temp_sorder = 'ASC';
|
|
}
|
|
$lbl_name = getTranslatedString($name, $module);
|
|
//added to display vtiger_currency symbol in listview header
|
|
if($lbl_name =='Amount')
|
|
{
|
|
$lbl_name .=' ('.$app_strings['LBL_IN'].' '.$user_info['currency_symbol'].')';
|
|
}
|
|
if($relatedlist !='' && $relatedlist != 'global'){
|
|
$relationURL = '';
|
|
if(!empty($_REQUEST['relation_id'])){
|
|
$relationURL = '&relation_id='.vtlib_purify(
|
|
$_REQUEST['relation_id']);
|
|
}
|
|
$actionsURL = '';
|
|
if(!empty($_REQUEST['actions'])){
|
|
$actionsURL = '&actions='.vtlib_purify($_REQUEST['actions']);
|
|
}
|
|
if(empty($_REQUEST['header'])){
|
|
$moduleLabel = getTranslatedString($module,$module);
|
|
}else{
|
|
$moduleLabel = $_REQUEST['header'];
|
|
}
|
|
$moduleLabel = str_replace(' ','',$moduleLabel);
|
|
$name = "<a href='javascript:void(0);' onClick='loadRelatedListBlock".
|
|
"(\"module=$relatedmodule&action=".$relatedmodule."Ajax&".
|
|
"file=DetailViewAjax&ajxaction=LOADRELATEDLIST&header=".$moduleLabel.
|
|
"&order_by=$col&record=$relatedlist&sorder=$temp_sorder$relationURL".
|
|
"$actionsURL\",\"tbl_".$relatedmodule."_$moduleLabel\",".
|
|
"\"$relatedmodule"."_$moduleLabel\");' class='listFormHeaderLinks'>".$lbl_name."".$arrow."</a>";
|
|
} elseif($module == 'Users' && $name == 'User Name')
|
|
$name = "<a href='javascript:;' onClick='getListViewEntries_js(\"".$module."\",\"parenttab=".$tabname."&order_by=".$col."&start=1&sorder=".$temp_sorder."".$sort_qry."\");' class='listFormHeaderLinks'>".getTranslatedString('LBL_LIST_USER_NAME_ROLE',$module)."".$arrow."</a>";
|
|
elseif($relatedlist == "global")
|
|
$name = $lbl_name;
|
|
else
|
|
$name = "<a href='javascript:;' onClick='getListViewEntries_js(\"".$module."\",\"parenttab=".$tabname."&order_by=".$col."&start=1&sorder=".$temp_sorder."".$sort_qry."\");' class='listFormHeaderLinks'>".$lbl_name."".$arrow."</a>";
|
|
$arrow = '';
|
|
}
|
|
else
|
|
{
|
|
if(stripos($col, 'cf_') === 0) {
|
|
$tablenameArray = array_keys($tableinfo,$col);
|
|
$tablename = $tablenameArray[0];
|
|
$cf_columns = $adb->getColumnNames($tablename);
|
|
if (array_search($col, $cf_columns) != null) {
|
|
$pquery = "select fieldlabel,typeofdata from vtiger_field where tablename = ? and fieldname = ? and vtiger_field.presence in (0,2)";
|
|
$cf_res = $adb->pquery($pquery, array($tablename, $col));
|
|
if (count($cf_res) > 0){
|
|
$cf_fld_label = $adb->query_result($cf_res, 0, "fieldlabel");
|
|
$typeofdata = explode("~",$adb->query_result($cf_res, 0, "typeofdata"));
|
|
$new_field_label = $tablename. ":" . $col .":". $col .":". $module . "_" . str_replace(" ","_",$cf_fld_label) .":". $typeofdata[0];
|
|
$name = $cf_fld_label;
|
|
|
|
// Update the existing field name in the database with new field name.
|
|
$upd_query = "update vtiger_cvcolumnlist set columnname = ? where columnname like '" .$tablename. ":" . $col .":". $col ."%'";
|
|
$upd_params = array($new_field_label);
|
|
$adb->pquery($upd_query, $upd_params);
|
|
|
|
}
|
|
}
|
|
} else {
|
|
$name = getTranslatedString($name, $module);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//added to display vtiger_currency symbol in related listview header
|
|
if($name =='Amount' && $relatedlist !='' )
|
|
{
|
|
$name .=' ('.$app_strings['LBL_IN'].' '.$user_info['currency_symbol'].')';
|
|
}
|
|
|
|
if($module == "Calendar" && $name == $app_strings['Close'])
|
|
{
|
|
if(isPermitted("Calendar","EditView") == 'yes')
|
|
{
|
|
if((getFieldVisibilityPermission('Events',$current_user->id,'eventstatus') == '0') || (getFieldVisibilityPermission('Calendar',$current_user->id,'taskstatus') == '0'))
|
|
{
|
|
array_push($list_header,$name);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$list_header[]=$name;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Added for Action - edit and delete link header in listview
|
|
if(!$skipActions && (isPermitted($module,"EditView","") == 'yes' || isPermitted($module,"Delete","") == 'yes'))
|
|
$list_header[] = $app_strings["LBL_ACTION"];
|
|
|
|
$log->debug("Exiting getListViewHeader method ...");
|
|
return $list_header;
|
|
}
|
|
|
|
/**This function is used to get the list view header in popup
|
|
*Param $focus - module object
|
|
*Param $module - module name
|
|
*Param $sort_qry - sort by value
|
|
*Param $sorder - sorting order (asc/desc)
|
|
*Param $order_by - order by
|
|
*Returns the listview header values in an array
|
|
*/
|
|
|
|
function getSearchListViewHeader($focus, $module,$sort_qry='',$sorder='',$order_by='')
|
|
{
|
|
global $log;
|
|
$log->debug("Entering getSearchListViewHeader(".get_class($focus).",". $module.",".$sort_qry.",".$sorder.",".$order_by.") method ...");
|
|
global $adb;
|
|
global $theme;
|
|
global $app_strings;
|
|
global $mod_strings,$current_user;
|
|
$arrow='';
|
|
$list_header = Array();
|
|
$tabid = getTabid($module);
|
|
if(isset($_REQUEST['task_relmod_id']))
|
|
{
|
|
$task_relmod_id=vtlib_purify($_REQUEST['task_relmod_id']);
|
|
$pass_url .="&task_relmod_id=".$task_relmod_id;
|
|
}
|
|
if(isset($_REQUEST['relmod_id']))
|
|
{
|
|
$relmod_id=vtlib_purify($_REQUEST['relmod_id']);
|
|
$pass_url .="&relmod_id=".$relmod_id;
|
|
}
|
|
if(isset($_REQUEST['task_parent_module']))
|
|
{
|
|
$task_parent_module=vtlib_purify($_REQUEST['task_parent_module']);
|
|
$pass_url .="&task_parent_module=".$task_parent_module;
|
|
}
|
|
if(isset($_REQUEST['parent_module']))
|
|
{
|
|
$parent_module=vtlib_purify($_REQUEST['parent_module']);
|
|
$pass_url .="&parent_module=".$parent_module;
|
|
}
|
|
if(isset($_REQUEST['fromPotential']) && (isset($_REQUEST['acc_id']) && $_REQUEST['acc_id']!= ''))
|
|
{
|
|
$pass_url .="&parent_module=Accounts&relmod_id=".vtlib_purify($_REQUEST['acc_id']);
|
|
}
|
|
|
|
// vtlib Customization : For uitype 10 popup during paging
|
|
if($_REQUEST['form'] == 'vtlibPopupView') {
|
|
$pass_url .= '&form=vtlibPopupView&forfield='.vtlib_purify($_REQUEST['forfield']).'&srcmodule='.vtlib_purify($_REQUEST['srcmodule']).'&forrecord='.vtlib_purify($_REQUEST['forrecord']);
|
|
}
|
|
// END
|
|
|
|
//Added to reduce the no. of queries logging for non-admin user -- by Minnie-start
|
|
$field_list = array();
|
|
$j=0;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
foreach($focus->search_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->search_fields_name[$name];
|
|
array_push($field_list, $fieldname);
|
|
$j++;
|
|
}
|
|
$field=Array();
|
|
if($is_admin==false && $module != 'Users')
|
|
{
|
|
if($module == 'Emails')
|
|
{
|
|
$query = "SELECT fieldname FROM vtiger_field WHERE tabid = ? and vtiger_field.presence in (0,2)";
|
|
$params = array($tabid);
|
|
}
|
|
else
|
|
{
|
|
$profileList = getCurrentUserProfileList();
|
|
$query = "SELECT DISTINCT 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 vtiger_field.tabid = ?
|
|
AND vtiger_profile2field.visible=0
|
|
AND vtiger_def_org_field.visible=0
|
|
AND vtiger_profile2field.profileid IN (". generateQuestionMarks($profileList) .")
|
|
AND vtiger_field.fieldname IN (". generateQuestionMarks($field_list) .") and vtiger_field.presence in (0,2)";
|
|
|
|
$params = array($tabid, $profileList, $field_list);
|
|
}
|
|
|
|
$result = $adb->pquery($query, $params);
|
|
for($k=0;$k < $adb->num_rows($result);$k++)
|
|
{
|
|
$field[]=$adb->query_result($result,$k,"fieldname");
|
|
}
|
|
}
|
|
//end
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
|
|
|
|
$focus->filterInactiveFields($module);
|
|
|
|
foreach($focus->search_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->search_fields_name[$name];
|
|
$tabid = getTabid($module);
|
|
|
|
global $current_user;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] ==0 || in_array($fieldname,$field) || $module == 'Users')
|
|
{
|
|
|
|
if(isset($focus->sortby_fields) && $focus->sortby_fields !='')
|
|
{
|
|
foreach($focus->search_fields[$name] as $tab=>$col)
|
|
{
|
|
if(in_array($col,$focus->sortby_fields))
|
|
{
|
|
if($order_by == $col)
|
|
{
|
|
if($sorder == 'ASC')
|
|
{
|
|
$sorder = "DESC";
|
|
$arrow = "<img src ='".vtiger_imageurl('arrow_down.gif', $theme)."' border='0'>";
|
|
}
|
|
else
|
|
{
|
|
$sorder = 'ASC';
|
|
$arrow = "<img src ='".vtiger_imageurl('arrow_up.gif', $theme)."' border='0'>";
|
|
}
|
|
}
|
|
// vtlib customization: If translation is not available use the given name
|
|
$tr_name = getTranslatedString($name, $module);
|
|
$name = "<a href='javascript:;' onClick=\"getListViewSorted_js('".$module."','".$sort_qry.$pass_url."&order_by=".$col."&sorder=".$sorder."')\" class='listFormHeaderLinks'>".$tr_name." ".$arrow."</a>";
|
|
// END
|
|
$arrow = '';
|
|
}
|
|
else {
|
|
// vtlib customization: If translation is not available use the given name
|
|
$tr_name = getTranslatedString($name, $module);
|
|
$name = $tr_name;
|
|
// END
|
|
}
|
|
}
|
|
}
|
|
$list_header[]=$name;
|
|
}
|
|
}
|
|
$log->debug("Exiting getSearchListViewHeader method ...");
|
|
return $list_header;
|
|
|
|
}
|
|
|
|
/**This function generates the navigation array in a listview
|
|
*Param $display - start value of the navigation
|
|
*Param $noofrows - no of records
|
|
*Param $limit - no of entries per page
|
|
*Returns an array type
|
|
*/
|
|
|
|
//code contributed by raju for improved pagination
|
|
function getNavigationValues($display, $noofrows, $limit)
|
|
{
|
|
global $log;
|
|
$log->debug("Entering getNavigationValues(".$display.",".$noofrows.",".$limit.") method ...");
|
|
$navigation_array = Array();
|
|
global $limitpage_navigation;
|
|
if(isset($_REQUEST['allflag']) && $_REQUEST['allflag'] == 'All'){
|
|
$navigation_array['start'] =1;
|
|
$navigation_array['first'] = 1;
|
|
$navigation_array['end'] = 1;
|
|
$navigation_array['prev'] =0;
|
|
$navigation_array['next'] =0;
|
|
$navigation_array['end_val'] =$noofrows;
|
|
$navigation_array['current'] =1;
|
|
$navigation_array['allflag'] ='Normal';
|
|
$navigation_array['verylast'] =1;
|
|
$log->debug("Exiting getNavigationValues method ...");
|
|
return $navigation_array;
|
|
}
|
|
if($noofrows != 0)
|
|
{
|
|
if(((($display * $limit)-$limit)+1) > $noofrows)
|
|
{
|
|
$display =floor($noofrows / $limit);
|
|
}
|
|
$start = ((($display * $limit) - $limit)+1);
|
|
}
|
|
else
|
|
{
|
|
$start = 0;
|
|
}
|
|
|
|
$end = $start + ($limit-1);
|
|
if($end > $noofrows)
|
|
{
|
|
$end = $noofrows;
|
|
}
|
|
$paging = ceil ($noofrows / $limit);
|
|
// Display the navigation
|
|
if ($display > 1) {
|
|
$previous = $display - 1;
|
|
}
|
|
else {
|
|
$previous=0;
|
|
}
|
|
if($noofrows < $limit)
|
|
{
|
|
$first = '';
|
|
}
|
|
elseif ($noofrows != $limit) {
|
|
$last = $paging;
|
|
$first = 1;
|
|
if ($paging > $limitpage_navigation) {
|
|
$first = $display-floor(($limitpage_navigation/2));
|
|
if ($first<1) $first=1;
|
|
$last = ($limitpage_navigation - 1) + $first;
|
|
}
|
|
if ($last > $paging ) {
|
|
$first = $paging - ($limitpage_navigation - 1);
|
|
$last = $paging;
|
|
}
|
|
}
|
|
if ($display < $paging) {
|
|
$next = $display + 1;
|
|
}
|
|
else {
|
|
$next=0;
|
|
}
|
|
$navigation_array['start'] = $start;
|
|
$navigation_array['first'] = $first;
|
|
$navigation_array['end'] = $last;
|
|
$navigation_array['prev'] = $previous;
|
|
$navigation_array['next'] = $next;
|
|
$navigation_array['end_val'] = $end;
|
|
$navigation_array['current'] = $display;
|
|
$navigation_array['allflag'] ='All';
|
|
$navigation_array['verylast'] =$paging;
|
|
$log->debug("Exiting getNavigationValues method ...");
|
|
return $navigation_array;
|
|
|
|
}
|
|
|
|
|
|
//End of code contributed by raju for improved pagination
|
|
|
|
/**This function generates the List view entries in a list view
|
|
*Param $focus - module object
|
|
*Param $list_result - resultset of a listview query
|
|
*Param $navigation_array - navigation values in an array
|
|
*Param $relatedlist - check for related list flag
|
|
*Param $returnset - list query parameters in url string
|
|
*Param $edit_action - Edit action value
|
|
*Param $del_action - delete action value
|
|
*Param $oCv - vtiger_customview object
|
|
*Returns an array type
|
|
*/
|
|
|
|
//parameter added for vtiger_customview $oCv 27/5
|
|
function getListViewEntries($focus, $module,$list_result,$navigation_array,$relatedlist='',$returnset='',$edit_action='EditView',$del_action='Delete',$oCv='',$page='',$selectedfields='',$contRelatedfields='',$skipActions=false)
|
|
{
|
|
global $log;
|
|
global $mod_strings;
|
|
$log->debug("Entering getListViewEntries(".get_class($focus).",". $module.",".$list_result.",".$navigation_array.",".$relatedlist.",".$returnset.",".$edit_action.",".$del_action.",".(is_object($oCv)? get_class($oCv) : $oCv).") method ...");
|
|
$tabname = getParentTab();
|
|
global $adb,$current_user;
|
|
global $app_strings;
|
|
$noofrows = $adb->num_rows($list_result);
|
|
$list_block = Array();
|
|
global $theme;
|
|
$evt_status = '';
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
//getting the vtiger_fieldtable entries from database
|
|
$tabid = getTabid($module);
|
|
|
|
//added for vtiger_customview 27/5
|
|
if($oCv)
|
|
{
|
|
if(isset($oCv->list_fields))
|
|
{
|
|
$focus->list_fields = $oCv->list_fields;
|
|
}
|
|
}
|
|
if(is_array($selectedfields) && $selectedfields != '')
|
|
{
|
|
$focus->list_fields = $selectedfields;
|
|
}
|
|
|
|
// Remove fields which are made inactive
|
|
$focus->filterInactiveFields($module);
|
|
|
|
//Added to reduce the no. of queries logging for non-admin user -- by minnie-start
|
|
$field_list = array();
|
|
$j=0;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
foreach($focus->list_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
if($oCv)
|
|
{
|
|
if(isset($oCv->list_fields_name))
|
|
{
|
|
$fieldname = $oCv->list_fields_name[$name];
|
|
}
|
|
}
|
|
if($fieldname == 'accountname' && $module != 'Accounts')
|
|
{
|
|
$fieldname = 'account_id';
|
|
}
|
|
if($fieldname == 'lastname' &&($module == 'SalesOrder'|| $module == 'PurchaseOrder' || $module == 'Invoice' || $module == 'Quotes'||$module == 'Calendar'))
|
|
$fieldname = 'contact_id';
|
|
|
|
if($fieldname == 'productname' && $module != 'Products')
|
|
{
|
|
$fieldname = 'product_id';
|
|
}
|
|
|
|
array_push($field_list, $fieldname);
|
|
$j++;
|
|
}
|
|
$field=Array();
|
|
if($is_admin==false)
|
|
{
|
|
if($module == 'Emails')
|
|
{
|
|
$query = "SELECT fieldname FROM vtiger_field WHERE tabid = ? and vtiger_field.presence in (0,2)";
|
|
$params = array($tabid);
|
|
}
|
|
else
|
|
{
|
|
$profileList = getCurrentUserProfileList();
|
|
$params = array();
|
|
$query = "SELECT DISTINCT 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";
|
|
|
|
if($module == "Calendar")
|
|
$query .=" WHERE vtiger_field.tabid in (9,16) and vtiger_field.presence in (0,2)";
|
|
else {
|
|
$query .=" WHERE vtiger_field.tabid = ? and vtiger_field.presence in (0,2)";
|
|
array_push($params, $tabid);
|
|
}
|
|
|
|
$query .=" AND vtiger_profile2field.visible = 0
|
|
AND vtiger_profile2field.visible = 0
|
|
AND vtiger_def_org_field.visible = 0
|
|
AND vtiger_profile2field.profileid IN (". generateQuestionMarks($profileList) .")
|
|
AND vtiger_field.fieldname IN (". generateQuestionMarks($field_list) .")";
|
|
|
|
array_push($params, $profileList, $field_list);
|
|
}
|
|
|
|
$result = $adb->pquery($query, $params);
|
|
for($k=0;$k < $adb->num_rows($result);$k++)
|
|
{
|
|
$field[]=$adb->query_result($result,$k,"fieldname");
|
|
}
|
|
}
|
|
//constructing the uitype and columnname array
|
|
$ui_col_array=Array();
|
|
|
|
$params = array();
|
|
$query = "SELECT uitype, columnname, fieldname FROM vtiger_field ";
|
|
|
|
if($module == "Calendar")
|
|
$query .=" WHERE vtiger_field.tabid in (9,16) and vtiger_field.presence in (0,2)";
|
|
else {
|
|
$query .=" WHERE vtiger_field.tabid = ? and vtiger_field.presence in (0,2)";
|
|
array_push($params, $tabid);
|
|
}
|
|
$query .= " AND fieldname IN (". generateQuestionMarks($field_list).") ";
|
|
array_push($params, $field_list);
|
|
|
|
$result = $adb->pquery($query, $params);
|
|
$num_rows=$adb->num_rows($result);
|
|
for($i=0;$i<$num_rows;$i++)
|
|
{
|
|
$tempArr=array();
|
|
$uitype=$adb->query_result($result,$i,'uitype');
|
|
$columnname=$adb->query_result($result,$i,'columnname');
|
|
$field_name=$adb->query_result($result,$i,'fieldname');
|
|
$tempArr[$uitype]=$columnname;
|
|
$ui_col_array[$field_name]=$tempArr;
|
|
}
|
|
//end
|
|
if($navigation_array['start'] !=0)
|
|
for ($i=1; $i<=$noofrows; $i++)
|
|
{
|
|
$list_header =Array();
|
|
//Getting the entityid
|
|
if($module != 'Users')
|
|
{
|
|
$entity_id = $adb->query_result($list_result,$i-1,"crmid");
|
|
$owner_id = $adb->query_result($list_result,$i-1,"smownerid");
|
|
}else
|
|
{
|
|
$entity_id = $adb->query_result($list_result,$i-1,"id");
|
|
}
|
|
// Fredy Klammsteiner, 4.8.2005: changes from 4.0.1 migrated to 4.2
|
|
// begin: Armando Lüscher 05.07.2005 -> §priority
|
|
// Code contri buted by fredy Desc: Set Priority color
|
|
$priority = $adb->query_result($list_result,$i-1,"priority");
|
|
|
|
$font_color_high = "color:#00DD00;";
|
|
$font_color_medium = "color:#DD00DD;";
|
|
$P_FONT_COLOR = "";
|
|
switch ($priority)
|
|
{
|
|
case 'High':
|
|
$P_FONT_COLOR = $font_color_high;
|
|
break;
|
|
case 'Medium':
|
|
$P_FONT_COLOR = $font_color_medium;
|
|
break;
|
|
default:
|
|
$P_FONT_COLOR = "";
|
|
}
|
|
//end: Armando Lüscher 05.07.2005 -> §priority
|
|
foreach($focus->list_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
|
|
//added for vtiger_customview 27/5
|
|
if($oCv) {
|
|
if(isset($oCv->list_fields_name)) {
|
|
$fieldname = $oCv->list_fields_name[$name];
|
|
if($fieldname == 'accountname' && $module != 'Accounts') {
|
|
$fieldname = 'account_id';
|
|
}
|
|
if($fieldname == 'lastname' &&($module == 'SalesOrder'|| $module == 'PurchaseOrder' || $module == 'Invoice' || $module == 'Quotes'||$module == 'Calendar' )) {
|
|
$fieldname = 'contact_id';
|
|
}
|
|
if($fieldname == 'productname' && $module != 'Products') {
|
|
$fieldname = 'product_id';
|
|
}
|
|
} else {
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
}
|
|
} else {
|
|
$fieldname = $focus->list_fields_name[$name];
|
|
if($fieldname == 'accountname' && $module != 'Accounts') {
|
|
$fieldname = 'account_id';
|
|
}
|
|
if($fieldname == 'lastname' && ($module == 'SalesOrder'|| $module == 'PurchaseOrder' || $module == 'Invoice' || $module == 'Quotes'|| $module == 'Calendar')) {
|
|
$fieldname = 'contact_id';
|
|
}
|
|
if($fieldname == 'productname' && $module != 'Products') {
|
|
$fieldname = 'product_id';
|
|
}
|
|
}
|
|
if($is_admin==true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] ==0 || in_array($fieldname,$field) || $fieldname == '' || ($name=='Close' && $module=='Calendar')) {
|
|
if($fieldname == '') {
|
|
$table_name = '';
|
|
$column_name = '';
|
|
foreach($tableinfo as $tablename=>$colname) {
|
|
$table_name=$tablename;
|
|
$column_name = $colname;
|
|
}
|
|
$value = $adb->query_result($list_result,$i-1,$colname);
|
|
}
|
|
else {
|
|
if($module == 'Calendar') {
|
|
$act_id = $adb->query_result($list_result,$i-1,"activityid");
|
|
|
|
$cal_sql = "select activitytype from vtiger_activity where activityid=?";
|
|
$cal_res = $adb->pquery($cal_sql,array($act_id));
|
|
if($adb->num_rows($cal_res)>=0)
|
|
$activitytype = $adb->query_result($cal_res,0,"activitytype");
|
|
}
|
|
if(($module == 'Calendar' || $module == 'Emails' || $module == 'HelpDesk' || $module == 'Invoice' || $module == 'Leads' || $module == 'Contacts') && (($fieldname=='parent_id') || ($name=='Contact Name') || ($name=='Close') || ($fieldname == 'firstname'))) {
|
|
if($module == 'Calendar'){
|
|
if($fieldname=='status'){
|
|
if($activitytype == 'Task'){
|
|
$fieldname='taskstatus';
|
|
} else {
|
|
$fieldname='eventstatus';
|
|
}
|
|
}
|
|
if($activitytype == 'Task' ) {
|
|
if(getFieldVisibilityPermission('Calendar',$current_user->id,$fieldname) == '0'){
|
|
$has_permission = 'yes';
|
|
} else {
|
|
$has_permission = 'no';
|
|
}
|
|
} else {
|
|
if(getFieldVisibilityPermission('Events',$current_user->id,$fieldname) == '0'){
|
|
$has_permission = 'yes';
|
|
} else {
|
|
$has_permission = 'no';
|
|
}
|
|
}
|
|
}
|
|
if($module != 'Calendar' || ($module == 'Calendar' && $has_permission == 'yes')) {
|
|
if ($fieldname=='parent_id') {
|
|
$value=getRelatedTo($module,$list_result,$i-1);
|
|
}
|
|
if($name=='Contact Name') {
|
|
$contact_id = $adb->query_result($list_result,$i-1,"contactid");
|
|
$contact_name = getFullNameFromQResult($list_result,$i-1,"Contacts");
|
|
$value="";
|
|
//Added to get the contactname for activities custom view - t=2190
|
|
if($contact_id != '' && !empty($contact_name)) {
|
|
$contact_name = getContactName($contact_id);
|
|
}
|
|
if(($contact_name != "") && ($contact_id !='NULL')) {
|
|
// Fredy Klammsteiner, 4.8.2005: changes from 4.0.1 migrated to 4.2
|
|
$value = "<a href='index.php?module=Contacts&action=DetailView&parenttab=".$tabname."&record=".$contact_id."' style='".$P_FONT_COLOR."'>".$contact_name."</a>"; // Armando Lüscher 05.07.2005 -> §priority -> Desc: inserted style="$P_FONT_COLOR"
|
|
}
|
|
}
|
|
if($fieldname == "firstname") {
|
|
$first_name = textlength_check($adb->query_result($list_result,$i-1,"firstname"));
|
|
|
|
$value = '<a href="index.php?action=DetailView&module='.$module.'&parenttab='.$tabname.'&record='.$entity_id.'">'.$first_name.'</a>';
|
|
}
|
|
|
|
if ($name == 'Close') {
|
|
$status = $adb->query_result($list_result,$i-1,"status");
|
|
$activityid = $adb->query_result($list_result,$i-1,"activityid");
|
|
if(empty($activityid)){
|
|
$activityid = $adb->query_result($list_result, $i-1, "tmp_activity_id");
|
|
}
|
|
$activitytype = $adb->query_result($list_result,$i-1,"activitytype");
|
|
// TODO - Picking activitytype when it is not present in the Custom View.
|
|
// Going forward, this column should be added to the select list if not already present as a performance improvement.
|
|
if (empty($activitytype)) {
|
|
$activitytypeRes = $adb->pquery('SELECT activitytype FROM vtiger_activity WHERE activityid=?', array($activityid));
|
|
if ($adb->num_rows($activitytypeRes) > 0) {
|
|
$activitytype = $adb->query_result($activitytypeRes, 0, 'activitytype');
|
|
}
|
|
}
|
|
if ($activitytype != 'Task' && $activitytype != 'Emails') {
|
|
$eventstatus = $adb->query_result($list_result,$i-1,"eventstatus");
|
|
if(isset($eventstatus)) {
|
|
$status = $eventstatus;
|
|
}
|
|
}
|
|
if($status =='Deferred' || $status == 'Completed' || $status == 'Held' || $status == '') {
|
|
$value="";
|
|
} else {
|
|
if($activitytype=='Task')
|
|
$evt_status='&status=Completed';
|
|
else
|
|
$evt_status='&eventstatus=Held';
|
|
if(isPermitted("Calendar",'EditView',$activityid) == 'yes') {
|
|
if ($returnset == '') {
|
|
$returnset = '&return_module=Calendar&return_action=ListView&return_id='.$activityid.'&return_viewname='.$oCv->setdefaultviewid;
|
|
}
|
|
// Fredy Klammsteiner, 4.8.2005: changes from 4.0.1 migrated to 4.2
|
|
$value = "<a href='index.php?action=Save&module=Calendar&record=".$activityid."&parenttab=".$tabname."&change_status=true".$returnset.$evt_status."&start=".$navigation_array['current']."' style='".$P_FONT_COLOR."'>X</a>"; // Armando Lüscher 05.07.2005 -> §priority -> Desc: inserted style="$P_FONT_COLOR"
|
|
} else {
|
|
$value = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
} else {
|
|
$value = "";
|
|
}
|
|
} elseif($module == "Documents" && ($fieldname == 'filelocationtype' || $fieldname == 'filename' || $fieldname == 'filesize' || $fieldname == 'filestatus' || $fieldname == 'filetype')) {
|
|
$value = $adb->query_result($list_result,$i-1,$fieldname);
|
|
if($fieldname == 'filelocationtype') {
|
|
if($value == 'I')
|
|
$value = getTranslatedString('LBL_INTERNAL',$module);
|
|
elseif($value == 'E')
|
|
$value = getTranslatedString('LBL_EXTERNAL',$module);
|
|
else
|
|
$value = ' --';
|
|
}
|
|
if($fieldname == 'filename') {
|
|
$downloadtype = $adb->query_result($list_result,$i-1,'filelocationtype');
|
|
if($downloadtype == 'I') {
|
|
$fld_value = $value;
|
|
$ext_pos = strrpos($fld_value, ".");
|
|
$ext =substr($fld_value, $ext_pos + 1);
|
|
$ext = strtolower($ext);
|
|
if($value != ''){
|
|
if($ext == 'bin' || $ext == 'exe' || $ext == 'rpm')
|
|
$fileicon="<img src='" . vtiger_imageurl('fExeBin.gif', $theme) . "' hspace='3' align='absmiddle' border='0'>";
|
|
elseif($ext == 'jpg' || $ext == 'gif' || $ext == 'bmp')
|
|
$fileicon="<img src='" . vtiger_imageurl('fbImageFile.gif', $theme) . "' hspace='3' align='absmiddle' border='0'>";
|
|
elseif($ext == 'txt' || $ext == 'doc' || $ext == 'xls')
|
|
$fileicon="<img src='" . vtiger_imageurl('fbTextFile.gif', $theme) . "' hspace='3' align='absmiddle' border='0'>";
|
|
elseif($ext == 'zip' || $ext == 'gz' || $ext == 'rar')
|
|
$fileicon="<img src='" . vtiger_imageurl('fbZipFile.gif', $theme) . "' hspace='3' align='absmiddle' border='0'>";
|
|
else
|
|
$fileicon="<img src='" . vtiger_imageurl('fbUnknownFile.gif', $theme) . "' hspace='3' align='absmiddle' border='0'>";
|
|
}
|
|
} elseif($downloadtype == 'E') {
|
|
if(trim($value) != '' ) {
|
|
$fld_value = $value;
|
|
$fileicon = "<img src='" . vtiger_imageurl('fbLink.gif', $theme) . "' alt='".getTranslatedString('LBL_EXTERNAL_LNK',$module)."' title='".getTranslatedString('LBL_EXTERNAL_LNK',$module)."' hspace='3' align='absmiddle' border='0'>";
|
|
}
|
|
else {
|
|
$fld_value = '--';
|
|
$fileicon = '';
|
|
}
|
|
} else {
|
|
$fld_value = ' --';
|
|
$fileicon = '';
|
|
}
|
|
|
|
$file_name = $adb->query_result($list_result,$i-1,'filename');
|
|
$notes_id = $adb->query_result($list_result,$i-1,'crmid');
|
|
$folder_id = $adb->query_result($list_result,$i-1,'folderid');
|
|
$download_type = $adb->query_result($list_result,$i-1,'filelocationtype');
|
|
$file_status = $adb->query_result($list_result,$i-1,'filestatus');
|
|
$fileidQuery = "select attachmentsid from vtiger_seattachmentsrel where crmid=?";
|
|
$fileidres = $adb->pquery($fileidQuery,array($notes_id));
|
|
$fileid = $adb->query_result($fileidres,0,'attachmentsid');
|
|
if($file_name != '' && $file_status == 1) {
|
|
if($download_type == 'I' ) {
|
|
$fld_value = "<a href='index.php?module=uploads&action=downloadfile&entityid=$notes_id&fileid=$fileid' title='".getTranslatedString("LBL_DOWNLOAD_FILE",$module)."' onclick='javascript:dldCntIncrease($notes_id);'>".$fld_value."</a>";
|
|
} elseif($download_type == 'E') {
|
|
$fld_value = "<a target='_blank' href='$file_name' onclick='javascript:dldCntIncrease($notes_id);' title='".getTranslatedString("LBL_DOWNLOAD_FILE",$module)."'>".$fld_value."</a>";
|
|
} else {
|
|
$fld_value = ' --';
|
|
}
|
|
}
|
|
$value = $fileicon.$fld_value;
|
|
}
|
|
if($fieldname == 'filesize') {
|
|
$downloadtype = $adb->query_result($list_result,$i-1,'filelocationtype');
|
|
if($downloadtype == 'I') {
|
|
$filesize = $value;
|
|
if($filesize < 1024)
|
|
$value=$filesize.' B';
|
|
elseif($filesize > 1024 && $filesize < 1048576)
|
|
$value=round($filesize/1024,2).' KB';
|
|
else if($filesize > 1048576)
|
|
$value=round($filesize/(1024*1024),2).' MB';
|
|
} else {
|
|
$value = ' --';
|
|
}
|
|
}
|
|
if($fieldname == 'filestatus') {
|
|
$filestatus = $value;
|
|
if($filestatus == 1)
|
|
$value=getTranslatedString('yes',$module);
|
|
elseif($filestatus == 0)
|
|
$value=getTranslatedString('no',$module);
|
|
else
|
|
$value=' --';
|
|
}
|
|
if($fieldname == 'filetype') {
|
|
$downloadtype = $adb->query_result($list_result,$i-1,'filelocationtype');
|
|
$filetype = $adb->query_result($list_result,$i-1,'filetype');
|
|
if($downloadtype == 'E' || $downloadtype != 'I') {
|
|
$value = ' --';
|
|
} else
|
|
$value = $filetype;
|
|
}
|
|
if($fieldname == 'notecontent') {
|
|
$value = decode_html($value);
|
|
$value = textlength_check($value);
|
|
}
|
|
} elseif($module == "Products" && $name == "Related to") {
|
|
$value=getRelatedTo($module,$list_result,$i-1);
|
|
} elseif($name=='Contact Name' && ($module =='SalesOrder' || $module == 'Quotes' || $module == 'PurchaseOrder')) {
|
|
if($name == 'Contact Name') {
|
|
$contact_id = $adb->query_result($list_result,$i-1,"contactid");
|
|
$contact_name = getFullNameFromQResult($list_result, $i-1,"Contacts");
|
|
$value="";
|
|
if(($contact_name != "") && ($contact_id !='NULL'))
|
|
$value ="<a href='index.php?module=Contacts&action=DetailView&parenttab=".$tabname."&record=".$contact_id."' style='".$P_FONT_COLOR."'>".$contact_name."</a>";
|
|
}
|
|
} elseif($name == 'Product') {
|
|
$product_id = textlength_check($adb->query_result($list_result,$i-1,"productname"));
|
|
$value = $product_id;
|
|
} elseif($name=='Account Name') {
|
|
//modified for vtiger_customview 27/5
|
|
if($module == 'Accounts') {
|
|
$account_id = $adb->query_result($list_result,$i-1,"crmid");
|
|
//$account_name = getAccountName($account_id);
|
|
$account_name = textlength_check($adb->query_result($list_result,$i-1,"accountname"));
|
|
// Fredy Klammsteiner, 4.8.2005: changes from 4.0.1 migrated to 4.2
|
|
$value = '<a href="index.php?module=Accounts&action=DetailView&record='.$account_id.'&parenttab='.$tabname.'" style="'.$P_FONT_COLOR.'">'.$account_name.'</a>'; // Armando Lüscher 05.07.2005 -> §priority -> Desc: inserted style="$P_FONT_COLOR"
|
|
} elseif($module == 'Potentials' || $module == 'Contacts' || $module == 'Invoice' || $module == 'SalesOrder' || $module == 'Quotes') { //Potential,Contacts,Invoice,SalesOrder & Quotes records sort by Account Name
|
|
$accountname = textlength_check($adb->query_result($list_result,$i-1,"accountname"));
|
|
$accountid = $adb->query_result($list_result,$i-1,"accountid");
|
|
$value = '<a href="index.php?module=Accounts&action=DetailView&record='.$accountid.'&parenttab='.$tabname.'" style="'.$P_FONT_COLOR.'">'.$accountname.'</a>';
|
|
} else {
|
|
$account_id = $adb->query_result($list_result,$i-1,"accountid");
|
|
$account_name = getAccountName($account_id);
|
|
$acc_name = textlength_check($account_name);
|
|
// Fredy Klammsteiner, 4.8.2005: changes from 4.0.1 migrated to 4.2
|
|
$value = '<a href="index.php?module=Accounts&action=DetailView&record='.$account_id.'&parenttab='.$tabname.'" style="'.$P_FONT_COLOR.'">'.$acc_name.'</a>'; // Armando Lüscher 05.07.2005 -> §priority -> Desc: inserted style="$P_FONT_COLOR"
|
|
}
|
|
} elseif(( $module == 'HelpDesk' || $module == 'PriceBook' || $module == 'Quotes' || $module == 'PurchaseOrder' || $module == 'Faq') && $name == 'Product Name') {
|
|
if($module == 'HelpDesk' || $module == 'Faq')
|
|
$product_id = $adb->query_result($list_result,$i-1,"product_id");
|
|
else
|
|
$product_id = $adb->query_result($list_result,$i-1,"productid");
|
|
|
|
if($product_id != '')
|
|
$product_name = getProductName($product_id);
|
|
else
|
|
$product_name = '';
|
|
|
|
$value = '<a href="index.php?module=Products&action=DetailView&parenttab='.$tabname.'&record='.$product_id.'">'.textlength_check($product_name).'</a>';
|
|
} elseif(($module == 'Quotes' && $name == 'Potential Name') || ($module == 'SalesOrder' && $name == 'Potential Name')) {
|
|
$potential_id = $adb->query_result($list_result,$i-1,"potentialid");
|
|
$potential_name = getPotentialName($potential_id);
|
|
$value = '<a href="index.php?module=Potentials&action=DetailView&parenttab='.$tabname.'&record='.$potential_id.'">'.textlength_check($potential_name).'</a>';
|
|
} elseif($module =='Emails' && $relatedlist != '' && ($name=='Subject' || $name=='Date Sent' || $name == 'To')) {
|
|
$list_result_count = $i-1;
|
|
$tmp_value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"list","",$returnset,$oCv->setdefaultviewid);
|
|
$value = '<a href="javascript:;" onClick="ShowEmail(\''.$entity_id.'\');">'.textlength_check($tmp_value).'</a>';
|
|
if($name == 'Date Sent') {
|
|
$sql="select email_flag from vtiger_emaildetails where emailid=?";
|
|
$result=$adb->pquery($sql, array($entity_id));
|
|
$email_flag=$adb->query_result($result,0,"email_flag");
|
|
if($email_flag != 'SAVED')
|
|
$value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"list","",$returnset,$oCv->setdefaultviewid);
|
|
else
|
|
$value = '';
|
|
}
|
|
} elseif($module == 'Calendar' && ($fieldname!='taskstatus' && $fieldname!='eventstatus')) {
|
|
if($activitytype == 'Task' ) {
|
|
if(getFieldVisibilityPermission('Calendar',$current_user->id,$fieldname) == '0'){
|
|
$list_result_count = $i-1;
|
|
$value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"list","",$returnset,$oCv->setdefaultviewid);
|
|
} else {
|
|
$value = '';
|
|
}
|
|
} else {
|
|
if(getFieldVisibilityPermission('Events',$current_user->id,$fieldname) == '0'){
|
|
$list_result_count = $i-1;
|
|
$value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"list","",$returnset,$oCv->setdefaultviewid);
|
|
} else {
|
|
$value = '';
|
|
}
|
|
}
|
|
} else {
|
|
$list_result_count = $i-1;
|
|
$value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"list","",$returnset,$oCv->setdefaultviewid);
|
|
}
|
|
}
|
|
|
|
// vtlib customization: For listview javascript triggers
|
|
$value = "$value <span type='vtlib_metainfo' vtrecordid='{$entity_id}' vtfieldname='{$fieldname}' vtmodule='$module' style='display:none;'></span>";
|
|
// END
|
|
|
|
if($module == "Calendar" && $name == $app_strings['Close'])
|
|
{
|
|
if(isPermitted("Calendar","EditView") == 'yes')
|
|
{
|
|
if((getFieldVisibilityPermission('Events',$current_user->id,'eventstatus') == '0') || (getFieldVisibilityPermission('Calendar',$current_user->id,'taskstatus') == '0'))
|
|
{
|
|
array_push($list_header,$value);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
$list_header[] = $value;
|
|
|
|
}
|
|
|
|
}
|
|
$varreturnset = '';
|
|
if($returnset=='')
|
|
$varreturnset = '&return_module='.$module.'&return_action=index';
|
|
else
|
|
$varreturnset = $returnset;
|
|
|
|
|
|
if($module == 'Calendar')
|
|
{
|
|
$actvity_type = $adb->query_result($list_result,$list_result_count,'activitytype');
|
|
if($actvity_type == 'Task')
|
|
$varreturnset .= '&activity_mode=Task';
|
|
else
|
|
$varreturnset .= '&activity_mode=Events';
|
|
}
|
|
|
|
//Added for Actions ie., edit and delete links in listview
|
|
$links_info = "";
|
|
if(!(is_array($selectedfields) && $selectedfields != ''))
|
|
{
|
|
if(isPermitted($module,"EditView","") == 'yes'){
|
|
$edit_link = getListViewEditLink($module,$entity_id,$relatedlist,$varreturnset,$list_result,$list_result_count);
|
|
if(isset($_REQUEST['start']) && $_REQUEST['start'] > 1 && $module != 'Emails')
|
|
$links_info .= "<a href=\"$edit_link&start=".vtlib_purify($_REQUEST['start'])."\">".$app_strings["LNK_EDIT"]."</a> ";
|
|
else
|
|
$links_info .= "<a href=\"$edit_link\">".$app_strings["LNK_EDIT"]."</a> ";
|
|
}
|
|
|
|
|
|
if(isPermitted($module,"Delete","") == 'yes'){
|
|
$del_link = getListViewDeleteLink($module,$entity_id,$relatedlist,$varreturnset);
|
|
if($links_info != "" && $del_link != "")
|
|
$links_info .= " | ";
|
|
if($del_link != "")
|
|
$links_info .= "<a href='javascript:confirmdelete(\"".addslashes(urlencode($del_link))."\")'>".$app_strings["LNK_DELETE"]."</a>";
|
|
}
|
|
}
|
|
// Record Change Notification
|
|
if(method_exists($focus, 'isViewed') && PerformancePrefs::getBoolean('LISTVIEW_RECORD_CHANGE_INDICATOR', true)) {
|
|
if(!$focus->isViewed($entity_id)) {
|
|
$links_info .= " | <img src='" . vtiger_imageurl('important1.gif', $theme) . "' border=0>";
|
|
}
|
|
}
|
|
// END
|
|
if($links_info != "" && !$skipActions)
|
|
$list_header[] = $links_info;
|
|
$list_block[$entity_id] = $list_header;
|
|
|
|
}
|
|
$log->debug("Exiting getListViewEntries method ...");
|
|
return $list_block;
|
|
|
|
}
|
|
|
|
/**This function generates the List view entries in a popup list view
|
|
*Param $focus - module object
|
|
*Param $list_result - resultset of a listview query
|
|
*Param $navigation_array - navigation values in an array
|
|
*Param $relatedlist - check for related list flag
|
|
*Param $returnset - list query parameters in url string
|
|
*Param $edit_action - Edit action value
|
|
*Param $del_action - delete action value
|
|
*Param $oCv - vtiger_customview object
|
|
*Returns an array type
|
|
*/
|
|
|
|
|
|
function getSearchListViewEntries($focus, $module,$list_result,$navigation_array,$form='')
|
|
{
|
|
global $log;
|
|
$log->debug("Entering getSearchListViewEntries(".get_class($focus).",". $module.",".$list_result.",".$navigation_array.") method ...");
|
|
|
|
global $adb,$app_strings,$theme,$current_user,$list_max_entries_per_page;
|
|
$noofrows = $adb->num_rows($list_result);
|
|
|
|
$list_header = '';
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
$list_block = Array();
|
|
|
|
//getting the vtiger_fieldtable entries from database
|
|
$tabid = getTabid($module);
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
|
|
//Added to reduce the no. of queries logging for non-admin user -- by Minnie-start
|
|
$field_list = array();
|
|
$j=0;
|
|
foreach($focus->search_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->search_fields_name[$name];
|
|
array_push($field_list, $fieldname);
|
|
$j++;
|
|
}
|
|
|
|
$field=Array();
|
|
if($is_admin==false && $module != 'Users')
|
|
{
|
|
if($module == 'Emails')
|
|
{
|
|
$query = "SELECT fieldname FROM vtiger_field WHERE tabid = ? and vtiger_field.presence in (0,2)";
|
|
$params = array($tabid);
|
|
}
|
|
else
|
|
{
|
|
$profileList = getCurrentUserProfileList();
|
|
$query = "SELECT DISTINCT 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 vtiger_field.tabid = ?
|
|
AND vtiger_profile2field.visible = 0
|
|
AND vtiger_def_org_field.visible = 0
|
|
AND vtiger_profile2field.profileid IN (". generateQuestionMarks($profileList) .")
|
|
AND vtiger_field.fieldname IN (". generateQuestionMarks($field_list) .") and vtiger_field.presence in (0,2)";
|
|
$params = array($tabid, $profileList, $field_list);
|
|
}
|
|
|
|
$result = $adb->pquery($query, $params);
|
|
|
|
for($k=0;$k < $adb->num_rows($result);$k++)
|
|
{
|
|
$field[]=$adb->query_result($result,$k,"fieldname");
|
|
}
|
|
}
|
|
//constructing the uitype and columnname array
|
|
$ui_col_array=Array();
|
|
|
|
$query = "SELECT uitype, columnname, fieldname
|
|
FROM vtiger_field
|
|
WHERE tabid=?
|
|
AND fieldname IN (". generateQuestionMarks($field_list) .") and vtiger_field.presence in (0,2)";
|
|
$result = $adb->pquery($query, array($tabid, $field_list));
|
|
$num_rows=$adb->num_rows($result);
|
|
for($i=0;$i<$num_rows;$i++)
|
|
{
|
|
$tempArr=array();
|
|
$uitype=$adb->query_result($result,$i,'uitype');
|
|
$columnname=$adb->query_result($result,$i,'columnname');
|
|
$field_name=$adb->query_result($result,$i,'fieldname');
|
|
$tempArr[$uitype]=$columnname;
|
|
$ui_col_array[$field_name]=$tempArr;
|
|
}
|
|
|
|
//end
|
|
if($navigation_array['end_val'] > 0)
|
|
{
|
|
for ($i=1; $i<=$noofrows; $i++)
|
|
{
|
|
|
|
//Getting the entityid
|
|
if($module != 'Users')
|
|
{
|
|
$entity_id = $adb->query_result($list_result,$i-1,"crmid");
|
|
}else
|
|
{
|
|
$entity_id = $adb->query_result($list_result,$i-1,"id");
|
|
}
|
|
|
|
$list_header=Array();
|
|
|
|
foreach($focus->search_fields as $name=>$tableinfo)
|
|
{
|
|
$fieldname = $focus->search_fields_name[$name];
|
|
|
|
if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] ==0 || in_array($fieldname,$field) || $module == 'Users')
|
|
{
|
|
if($fieldname == '')
|
|
{
|
|
$table_name = '';
|
|
$column_name = '';
|
|
foreach($tableinfo as $tablename=>$colname)
|
|
{
|
|
$table_name=$tablename;
|
|
$column_name = $colname;
|
|
}
|
|
$value = $adb->query_result($list_result,$i-1,$colname);
|
|
}
|
|
else
|
|
{
|
|
if(($module == 'Calls' || $module == 'Tasks' || $module == 'Meetings' || $module == 'Emails') && (($name=='Related to') || ($name=='Contact Name') || ($name=='Vendor Name')))
|
|
{
|
|
if ($name=='Related to')
|
|
$value=getRelatedTo($module,$list_result,$i-1);
|
|
if($name=='Contact Name')
|
|
{
|
|
$contact_id = $adb->query_result($list_result,$i-1,"contactid");
|
|
$contact_name = getFullNameFromQResult($list_result,$i-1,"Contacts");
|
|
$value="";
|
|
if(($contact_name != "") && ($contact_id !='NULL'))
|
|
$value = "<a href='index.php?module=Contacts&action=DetailView&record=".$contact_id."'>".$contact_name."</a>";
|
|
}
|
|
}
|
|
elseif(($module == 'Faq' || $module == 'Documents') && $name=='Related to')
|
|
{
|
|
$value=getRelatedToEntity($module,$list_result,$i-1);
|
|
}
|
|
elseif($name=='Account Name' && ($module == 'Potentials' || $module == 'SalesOrder' || $module == 'Quotes'))
|
|
{
|
|
$account_id = $adb->query_result($list_result,$i-1,"accountid");
|
|
$account_name = getAccountName($account_id);
|
|
$value = textlength_check($account_name);
|
|
}
|
|
elseif($name=='Quote Name' && $module == 'SalesOrder')
|
|
{
|
|
$quote_id = $adb->query_result($list_result,$i-1,"quoteid");
|
|
$quotename = getQuoteName($quote_id);
|
|
$value = textlength_check($quotename);
|
|
}
|
|
elseif($name == 'Account Name' && $module=='Contacts' )
|
|
{
|
|
$account_id = $adb->query_result($list_result,$i-1,"accountid");
|
|
$account_name = getAccountName($account_id);
|
|
$value = textlength_check($account_name);
|
|
}
|
|
// vtlib customization: Generic popup handling
|
|
elseif(isset($focus->popup_fields) && in_array($fieldname, $focus->popup_fields)) {
|
|
global $default_charset;
|
|
$forfield = htmlspecialchars($_REQUEST['forfield'], ENT_QUOTES, $default_charset);
|
|
$list_result_count = $i-1;
|
|
$value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"search",$focus->popup_type);
|
|
if(isset($forfield) && $forfield != '' && $focus->popup_type != 'detailview') {
|
|
$value = strip_tags($value); // Remove any previous html conversion
|
|
$value = "<a href='javascript:window.close();' onclick='return vtlib_setvalue_from_popup($entity_id, \"$value\", \"$forfield\")'>$value</a>";
|
|
}
|
|
}
|
|
// END
|
|
else
|
|
{
|
|
$list_result_count = $i-1;
|
|
$value = getValue($ui_col_array,$list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,"search",$focus->popup_type, $form);
|
|
}
|
|
|
|
}
|
|
$list_header[]=$value;
|
|
}
|
|
}
|
|
|
|
if($module=='Products' && ($focus->popup_type=='inventory_prod' || $focus->popup_type=='inventory_prod_po'))
|
|
{
|
|
global $default_charset;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
$row_id = $_REQUEST['curr_row'];
|
|
|
|
//To get all the tax types and values and pass it to product details
|
|
$tax_str = '';
|
|
$tax_details = getAllTaxes();
|
|
for($tax_count=0;$tax_count<count($tax_details);$tax_count++)
|
|
{
|
|
$tax_str .= $tax_details[$tax_count]['taxname'].'='.$tax_details[$tax_count]['percentage'].',';
|
|
}
|
|
$tax_str = trim($tax_str,',');
|
|
$rate = $user_info['conv_rate'];
|
|
if(getFieldVisibilityPermission($module,$current_user->id,'unit_price') == '0') {
|
|
$unitprice=$adb->query_result($list_result,$list_result_count,'unit_price');
|
|
if($_REQUEST['currencyid'] != null) {
|
|
$prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id));
|
|
$unitprice = $prod_prices[$entity_id];
|
|
}
|
|
} else {
|
|
$unit_price = '';
|
|
}
|
|
$sub_products = '';
|
|
$sub_prod = '';
|
|
$sub_prod_query = $adb->pquery("SELECT vtiger_products.productid,vtiger_products.productname from vtiger_products INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_products.productid INNER JOIN vtiger_seproductsrel on vtiger_seproductsrel.crmid=vtiger_products.productid WHERE vtiger_seproductsrel.productid=? and vtiger_seproductsrel.setype='Products'",array($entity_id));
|
|
for($k=0;$k<$adb->num_rows($sub_prod_query);$k++){
|
|
//$sub_prod=array();
|
|
$id = $adb->query_result($sub_prod_query,$k,"productid");
|
|
$str_sep='';
|
|
if($k>0) $str_sep = ":";
|
|
$sub_products .= $str_sep.$id;
|
|
$sub_prod .= $str_sep." - ".$adb->query_result($sub_prod_query,$k,"productname");
|
|
}
|
|
|
|
$sub_det = $sub_products."::".str_replace(":","<br>",$sub_prod);
|
|
$qty_stock=$adb->query_result($list_result,$list_result_count,'qtyinstock');
|
|
|
|
$slashes_temp_val = popup_from_html(getProductName($entity_id));
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$description=$adb->query_result($list_result,$list_result_count,'description');
|
|
$slashes_desc = htmlspecialchars($description,ENT_QUOTES,$default_charset);
|
|
|
|
$sub_products_link = '<a href="index.php?module=Products&action=Popup&html=Popup_picker&return_module='.vtlib_purify($_REQUEST['return_module']).'&record_id='.vtlib_purify($entity_id).'&form=HelpDeskEditView&select=enable&popuptype='.$focus->popup_type.'&curr_row='.vtlib_purify($row_id).'¤cyid='.vtlib_purify($_REQUEST['currencyid']).'" > Sub Products</a>';
|
|
|
|
if(!isset($_REQUEST['record_id'])){
|
|
$sub_products_query = $adb->pquery("SELECT * from vtiger_seproductsrel WHERE productid=? AND setype='Products'",array($entity_id));
|
|
if($adb->num_rows($sub_products_query)>0)
|
|
$list_header[]=$sub_products_link;
|
|
else
|
|
$list_header[]= $app_strings['LBL_NO_SUB_PRODUCTS'];
|
|
}
|
|
}
|
|
|
|
if($module=='Services' && $focus->popup_type=='inventory_service')
|
|
{
|
|
global $default_charset;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
$row_id = $_REQUEST['curr_row'];
|
|
|
|
//To get all the tax types and values and pass it to product details
|
|
$tax_str = '';
|
|
$tax_details = getAllTaxes();
|
|
for($tax_count=0;$tax_count<count($tax_details);$tax_count++)
|
|
{
|
|
$tax_str .= $tax_details[$tax_count]['taxname'].'='.$tax_details[$tax_count]['percentage'].',';
|
|
}
|
|
$tax_str = trim($tax_str,',');
|
|
$rate = $user_info['conv_rate'];
|
|
if(getFieldVisibilityPermission($module,$current_user->id,'unit_price') == '0') {
|
|
$unitprice=$adb->query_result($list_result,$list_result_count,'unit_price');
|
|
if($_REQUEST['currencyid'] != null) {
|
|
$prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id), $module);
|
|
$unitprice = $prod_prices[$entity_id];
|
|
}
|
|
} else {
|
|
$unit_price = '';
|
|
}
|
|
|
|
$slashes_temp_val = popup_from_html($adb->query_result($list_result,$list_result_count,'servicename'));
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$description=$adb->query_result($list_result,$list_result_count,'description');
|
|
$slashes_desc = htmlspecialchars($description,ENT_QUOTES,$default_charset);
|
|
}
|
|
$list_block[$entity_id]=$list_header;
|
|
}
|
|
}
|
|
$list = $list_block;
|
|
$log->debug("Exiting getSearchListViewEntries method ...");
|
|
return $list;
|
|
}
|
|
|
|
|
|
/**This function generates the value for a given vtiger_field namee
|
|
*Param $field_result - vtiger_field result in array
|
|
*Param $list_result - resultset of a listview query
|
|
*Param $fieldname - vtiger_field name
|
|
*Param $focus - module object
|
|
*Param $module - module name
|
|
*Param $entity_id - entity id
|
|
*Param $list_result_count - list result count
|
|
*Param $mode - mode type
|
|
*Param $popuptype - popup type
|
|
*Param $returnset - list query parameters in url string
|
|
*Param $viewid - custom view id
|
|
*Returns an string value
|
|
*/
|
|
|
|
|
|
function getValue($field_result, $list_result,$fieldname,$focus,$module,$entity_id,$list_result_count,$mode,$popuptype,$returnset='',$viewid='')
|
|
{
|
|
global $log, $listview_max_textlength, $app_strings, $current_language,$currentModule;
|
|
$log->debug("Entering getValue(".$field_result.",". $list_result.",".$fieldname.",".get_class($focus).",".$module.",".$entity_id.",".$list_result_count.",".$mode.",".$popuptype.",".$returnset.",".$viewid.") method ...");
|
|
global $adb, $current_user, $default_charset;
|
|
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
$tabname = getParentTab();
|
|
$tabid = getTabid($module);
|
|
$current_module_strings = return_module_language($current_language, $module);
|
|
$uicolarr=$field_result[$fieldname];
|
|
foreach($uicolarr as $key=>$value)
|
|
{
|
|
$uitype = $key;
|
|
$colname = $value;
|
|
}
|
|
//added for getting event status in Custom view - Jaguar
|
|
if($module == 'Calendar' && ($colname == "status" || $colname == "eventstatus"))
|
|
{
|
|
$colname="activitystatus";
|
|
}
|
|
//Ends
|
|
$field_val = $adb->query_result($list_result,$list_result_count,$colname);
|
|
if(stristr(html_entity_decode($field_val), "<a href") === false && $uitype != 8){
|
|
$temp_val = textlength_check($field_val);
|
|
}elseif($uitype != 8){
|
|
$temp_val = html_entity_decode($field_val,ENT_QUOTES);
|
|
}else{
|
|
$temp_val = $field_val;
|
|
}
|
|
// vtlib customization: New uitype to handle relation between modules
|
|
if($uitype == '10'){
|
|
$parent_id = $field_val;
|
|
if(!empty($parent_id)) {
|
|
$parent_module = getSalesEntityType($parent_id);
|
|
$valueTitle=$parent_module;
|
|
if($app_strings[$valueTitle]) $valueTitle = $app_strings[$valueTitle];
|
|
|
|
$displayValueArray = getEntityName($parent_module, $parent_id);
|
|
if(!empty($displayValueArray)){
|
|
foreach($displayValueArray as $key=>$value){
|
|
$displayValue = $value;
|
|
}
|
|
}
|
|
$value = "<a href='index.php?module=$parent_module&action=DetailView&record=$parent_id' title='$valueTitle'>$displayValue</a>";
|
|
} else {
|
|
$value = '';
|
|
}
|
|
} // END
|
|
else if($uitype == 53)
|
|
{
|
|
$value = textlength_check($adb->query_result($list_result,$list_result_count,'user_name'));
|
|
// When Assigned To field is used in Popup window
|
|
if($value == '' ) {
|
|
$user_id = $adb->query_result($list_result,$list_result_count,'smownerid');
|
|
if ($user_id != null && $user_id != '') {
|
|
$value = getOwnerName($user_id);
|
|
}
|
|
}
|
|
}
|
|
elseif($uitype == 52)
|
|
{
|
|
$value = getUserName($adb->query_result($list_result,$list_result_count,$colname));
|
|
}
|
|
elseif($uitype == 51)//Accounts - Member Of
|
|
{
|
|
$parentid = $adb->query_result($list_result,$list_result_count,"parentid");
|
|
if($module=='Accounts')
|
|
$entity_name = textlength_check(getAccountName($parentid));
|
|
elseif($module == 'Products')
|
|
$entity_name = textlength_check(getProductName($parentid));
|
|
$value = '<a href="index.php?module='.$module.'&action=DetailView&record='.$parentid.'&parenttab='.$tabname.'" style="'.$P_FONT_COLOR.'">'.$entity_name.'</a>';
|
|
|
|
}
|
|
elseif($uitype == 77)
|
|
{
|
|
$value = getUserName($adb->query_result($list_result,$list_result_count,'inventorymanager'));
|
|
}
|
|
elseif($uitype == 5 || $uitype == 6 || $uitype == 23 || $uitype == 70)
|
|
{
|
|
if($temp_val != '' && $temp_val != '0000-00-00')
|
|
{
|
|
$value = getDisplayDate($temp_val);
|
|
}
|
|
elseif($temp_val == '0000-00-00')
|
|
{
|
|
$value = '';
|
|
}
|
|
else
|
|
{
|
|
$value = $temp_val;
|
|
}
|
|
|
|
|
|
}
|
|
elseif($uitype == 15 || ($uitype == 55 && $fieldname =="salutationtype"))
|
|
{
|
|
$temp_val = decode_html($adb->query_result($list_result,$list_result_count,$colname));
|
|
if(($is_admin==false && $profileGlobalPermission[1] == 1 && $profileGlobalPermission[2] == 1) && $temp_val != '')
|
|
{
|
|
$temp_acttype = $adb->query_result($list_result,$list_result_count,'activitytype');
|
|
if(($temp_acttype != 'Task') && $fieldname =="taskstatus")
|
|
$temptable = "eventstatus";
|
|
else
|
|
$temptable = $fieldname;
|
|
$roleid=$current_user->roleid;
|
|
$roleids = Array();
|
|
$subrole = getRoleSubordinates($roleid);
|
|
if(count($subrole)> 0)
|
|
$roleids = $subrole;
|
|
array_push($roleids, $roleid);
|
|
|
|
//here we are checking wheather the table contains the sortorder column .If sortorder is present in the main picklist table, then the role2picklist will be applicable for this table...
|
|
|
|
$sql="select * from vtiger_$temptable where $temptable=?";
|
|
$res = $adb->pquery($sql,array(decode_html($temp_val)));
|
|
$picklistvalueid = $adb->query_result($res,0,'picklist_valueid');
|
|
if ($picklistvalueid != null) {
|
|
$pick_query="select * from vtiger_role2picklist where picklistvalueid=$picklistvalueid and roleid in (". generateQuestionMarks($roleids) .")";
|
|
$res_val=$adb->pquery($pick_query,array($roleids));
|
|
$num_val = $adb->num_rows($res_val);
|
|
}
|
|
if($num_val > 0 || ($temp_acttype == 'Task' && $fieldname == 'activitytype'))
|
|
$temp_val = $temp_val;
|
|
else
|
|
$temp_val = "<font color='red'>".$app_strings['LBL_NOT_ACCESSIBLE']."</font>";
|
|
}
|
|
$value = ($current_module_strings[$temp_val] != '') ? $current_module_strings[$temp_val] : (($app_strings[$temp_val] != '') ? ($app_strings[$temp_val]) : $temp_val);
|
|
if($value != "<font color='red'>".$app_strings['LBL_NOT_ACCESSIBLE']."</font>")
|
|
{
|
|
$value = textlength_check($value);
|
|
}
|
|
}
|
|
elseif ($uitype == 16)
|
|
{
|
|
$value = getTranslatedString($temp_val,$currentModule);
|
|
}
|
|
elseif($uitype == 71 || $uitype == 72)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
if($fieldname == 'unit_price') {
|
|
$currency_id = getProductBaseCurrency($entity_id,$module);
|
|
$cursym_convrate = getCurrencySymbolandCRate($currency_id);
|
|
$value = "<font style='color:grey;'>".$cursym_convrate['symbol']."</font> ". $temp_val;
|
|
} else {
|
|
$rate = $user_info['conv_rate'];
|
|
//changes made to remove vtiger_currency symbol infront of each vtiger_potential amount
|
|
if ($temp_val != 0) $value = convertFromDollar($temp_val,$rate);
|
|
else $value = $temp_val;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$value = '';
|
|
}
|
|
|
|
}
|
|
elseif($uitype == 17)
|
|
{
|
|
$value = '<a href="http://'.$field_val.'" target="_blank">'.$temp_val.'</a>';
|
|
}
|
|
elseif($uitype == 13 || $uitype == 104 && ($_REQUEST['action'] != 'Popup' && $_REQUEST['file'] != 'Popup'))
|
|
{
|
|
if($_SESSION['internal_mailer'] == 1)
|
|
{
|
|
//check added for email link in user detailview
|
|
if($module == 'Calendar') {
|
|
if(getActivityType($entity_id) == 'Task') {
|
|
$tabid = 9;
|
|
} else {
|
|
$tabid = 16;
|
|
}
|
|
} else {
|
|
$tabid = getTabid($module);
|
|
}
|
|
$fieldid = getFieldid($tabid, $fieldname);
|
|
if(empty($popuptype)){
|
|
$value = '<a href="javascript:InternalMailer('.$entity_id.','.$fieldid.',\''.$fieldname.'\',\''.$module.'\',\'record_id\');">'.$temp_val.'</a>';
|
|
} else {
|
|
$value = $temp_val;
|
|
}
|
|
}
|
|
else
|
|
$value = '<a href="mailto:'.$field_val.'">'.$temp_val.'</a>';
|
|
}
|
|
elseif($uitype == 56)
|
|
{
|
|
if($temp_val == 1)
|
|
{
|
|
$value = $app_strings['yes'];
|
|
}
|
|
elseif($temp_val == 0)
|
|
{
|
|
$value = $app_strings['no'];
|
|
}
|
|
else {
|
|
$value = '';
|
|
}
|
|
}
|
|
elseif($uitype == 57)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
$sql="SELECT * FROM vtiger_contactdetails WHERE contactid=?";
|
|
$result=$adb->pquery($sql, array($temp_val));
|
|
$value = '';
|
|
if($adb->num_rows($result)) {
|
|
$name=getFullNameFromQResult($result,0,"Contacts");
|
|
$value= '<a href=index.php?module=Contacts&action=DetailView&record='.$temp_val.'>'.$name.'</a>';
|
|
}
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
//Added by Minnie to get Campaign Source
|
|
elseif($uitype == 58)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
$sql="SELECT * FROM vtiger_campaign WHERE campaignid=?";
|
|
$result=$adb->pquery($sql, array($temp_val));
|
|
$campaignname=$adb->query_result($result,0,"campaignname");
|
|
$value= '<a href=index.php?module=Campaigns&action=DetailView&record='.$temp_val.'>'.$campaignname.'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
//End
|
|
//Added By *Raj* for the Issue ProductName not displayed in CustomView of HelpDesk
|
|
elseif($uitype == 59)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
$value = getProductName($temp_val);
|
|
}
|
|
else
|
|
{
|
|
$value = '';
|
|
}
|
|
}
|
|
//End
|
|
elseif($uitype == 61)
|
|
{
|
|
$attachmentid=$adb->query_result($adb->pquery("SELECT * FROM vtiger_seattachmentsrel WHERE crmid = ?", array($entity_id)),0,'attachmentsid');
|
|
$value = '<a href = "index.php?module=uploads&action=downloadfile&return_module='.$module.'&fileid='.$attachmentid.'&filename='.$temp_val.'">'.$temp_val.'</a>';
|
|
}
|
|
elseif($uitype == 62)
|
|
{
|
|
$parentid = $adb->query_result($list_result,$list_result_count,"parent_id");
|
|
$parenttype = $adb->query_result($list_result,$list_result_count,"parent_type");
|
|
|
|
if($parenttype == "Leads")
|
|
{
|
|
$tablename = "vtiger_leaddetails"; $fieldname = "lastname"; $idname="leadid";
|
|
}
|
|
if($parenttype == "Accounts")
|
|
{
|
|
$tablename = "vtiger_account"; $fieldname = "accountname"; $idname="accountid";
|
|
}
|
|
if($parenttype == "Products")
|
|
{
|
|
$tablename = "vtiger_products"; $fieldname = "productname"; $idname="productid";
|
|
}
|
|
if($parenttype == "HelpDesk")
|
|
{
|
|
$tablename = "vtiger_troubletickets"; $fieldname = "title"; $idname="ticketid";
|
|
}
|
|
if($parenttype == "Invoice")
|
|
{
|
|
$tablename = "vtiger_invoice"; $fieldname = "subject"; $idname="invoiceid";
|
|
}
|
|
|
|
|
|
if($parentid != '')
|
|
{
|
|
$sql="SELECT * FROM $tablename WHERE $idname = ?";
|
|
$fieldvalue=$adb->query_result($adb->pquery($sql, array($parentid)),0,$fieldname);
|
|
|
|
$value='<a href=index.php?module='.$parenttype.'&action=DetailView&record='.$parentid.'&parenttab='.urlencode($tabname).'>'.$fieldvalue.'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 66)
|
|
{
|
|
$parentid = $adb->query_result($list_result,$list_result_count,"parent_id");
|
|
$parenttype = $adb->query_result($list_result,$list_result_count,"parent_type");
|
|
|
|
if($parenttype == "Leads")
|
|
{
|
|
$tablename = "vtiger_leaddetails"; $fieldname = "lastname"; $idname="leadid";
|
|
}
|
|
if($parenttype == "Accounts")
|
|
{
|
|
$tablename = "vtiger_account"; $fieldname = "accountname"; $idname="accountid";
|
|
}
|
|
if($parenttype == "HelpDesk")
|
|
{
|
|
$tablename = "vtiger_troubletickets"; $fieldname = "title"; $idname="ticketid";
|
|
}
|
|
if($parentid != '')
|
|
{
|
|
$sql="SELECT * FROM $tablename WHERE $idname = ?";
|
|
$fieldvalue=$adb->query_result($adb->pquery($sql, array($parentid)),0,$fieldname);
|
|
|
|
$value='<a href=index.php?module='.$parenttype.'&action=DetailView&record='.$parentid.'&parenttab='.urlencode($tabname).'>'.$fieldvalue.'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 67)
|
|
{
|
|
$parentid = $adb->query_result($list_result,$list_result_count,"parent_id");
|
|
$parenttype = $adb->query_result($list_result,$list_result_count,"parent_type");
|
|
|
|
if($parenttype == "Leads")
|
|
{
|
|
$tablename = "vtiger_leaddetails"; $fieldname = "lastname"; $idname="leadid";
|
|
}
|
|
if($parenttype == "Contacts")
|
|
{
|
|
$tablename = "vtiger_contactdetails"; $fieldname = "contactname"; $idname="contactid";
|
|
}
|
|
if($parentid != '')
|
|
{
|
|
$sql="SELECT * FROM $tablename WHERE $idname = ?";
|
|
$fieldvalue=$adb->query_result($adb->pquery($sql, array($parentid)),0,$fieldname);
|
|
|
|
$value='<a href=index.php?module='.$parenttype.'&action=DetailView&record='.$parentid.'&parenttab='.urlencode($tabname).'>'.$fieldvalue.'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 68)
|
|
{
|
|
$parentid = $adb->query_result($list_result,$list_result_count,"parent_id");
|
|
$parenttype = $adb->query_result($list_result,$list_result_count,"parent_type");
|
|
|
|
if($parenttype == '' && $parentid != '')
|
|
$parenttype = getSalesEntityType($parentid);
|
|
|
|
if($parenttype == "Contacts")
|
|
{
|
|
$tablename = "vtiger_contactdetails"; $fieldname = "contactname"; $idname="contactid";
|
|
}
|
|
if($parenttype == "Accounts")
|
|
{
|
|
$tablename = "vtiger_account"; $fieldname = "accountname"; $idname="accountid";
|
|
}
|
|
if($parentid != '')
|
|
{
|
|
$sql="SELECT * FROM $tablename WHERE $idname = ?";
|
|
$fieldvalue=$adb->query_result($adb->pquery($sql, array($parentid)),0,$fieldname);
|
|
|
|
$value='<a href=index.php?module='.$parenttype.'&action=DetailView&record='.$parentid.'&parenttab='.urlencode($tabname).'>'.$fieldvalue.'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 78)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
|
|
$quote_name = getQuoteName($temp_val);
|
|
$value= '<a href=index.php?module=Quotes&action=DetailView&record='.$temp_val.'&parenttab='.urlencode($tabname).'>'.textlength_check($quote_name).'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 79)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
|
|
$purchaseorder_name = getPoName($temp_val);
|
|
$value= '<a href=index.php?module=PurchaseOrder&action=DetailView&record='.$temp_val.'&parenttab='.urlencode($tabname).'>'.textlength_check($purchaseorder_name).'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 80)
|
|
{
|
|
if($temp_val != '')
|
|
{
|
|
|
|
$salesorder_name = getSoName($temp_val);
|
|
$value= "<a href=index.php?module=SalesOrder&action=DetailView&record=$temp_val&parenttab=".urlencode($tabname).">".textlength_check($salesorder_name).'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 75 || $uitype == 81)
|
|
{
|
|
|
|
if($temp_val != '')
|
|
{
|
|
|
|
$vendor_name = getVendorName($temp_val);
|
|
$value= '<a href=index.php?module=Vendors&action=DetailView&record='.$temp_val.'&parenttab='.urlencode($tabname).'>'.textlength_check($vendor_name).'</a>';
|
|
}
|
|
else
|
|
$value='';
|
|
}
|
|
elseif($uitype == 98)
|
|
{
|
|
$value = '<a href="index.php?action=RoleDetailView&module=Settings&parenttab=Settings&roleid='.$temp_val.'">'.textlength_check(getRoleName($temp_val)).'</a>';
|
|
}
|
|
elseif($uitype == 33)
|
|
{
|
|
$value = ($temp_val != "") ? str_ireplace(' |##| ',', ',$temp_val) : "";
|
|
if(!$is_admin && $value != '')
|
|
{
|
|
$value = ($field_val != "") ? str_ireplace(' |##| ',', ',$field_val) : "";
|
|
if($value != '')
|
|
{
|
|
$value_arr=explode(',',trim($value));
|
|
$roleid=$current_user->roleid;
|
|
$subrole = getRoleSubordinates($roleid);
|
|
if(count($subrole)> 0)
|
|
{
|
|
$roleids = $subrole;
|
|
array_push($roleids, $roleid);
|
|
}
|
|
else
|
|
{
|
|
$roleids = $roleid;
|
|
}
|
|
|
|
if (count($roleids) > 0) {
|
|
$pick_query="select distinct $fieldname from vtiger_$fieldname inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldname.picklist_valueid where roleid in (". generateQuestionMarks($roleids) .") and picklistid in (select picklistid from vtiger_$fieldname) order by $fieldname asc";
|
|
$params = array($roleids);
|
|
} else {
|
|
$pick_query="select distinct $fieldname from vtiger_$fieldname inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldname.picklist_valueid where picklistid in (select picklistid from vtiger_$fieldname) order by $fieldname asc";
|
|
$params = array();
|
|
}
|
|
$pickListResult = $adb->pquery($pick_query, $params);
|
|
$picklistval = Array();
|
|
for($i=0;$i<$adb->num_rows($pickListResult);$i++)
|
|
{
|
|
$picklistarr[]=$adb->query_result($pickListResult,$i,$fieldname);
|
|
}
|
|
$value_temp = Array();
|
|
$string_temp = '';
|
|
$str_c = 0;
|
|
foreach($value_arr as $ind => $val)
|
|
{
|
|
$notaccess = '<font color="red">'.$app_strings['LBL_NOT_ACCESSIBLE']."</font>";
|
|
if(!$listview_max_textlength || !(strlen(preg_replace("/(<\/?)(\w+)([^>]*>)/i","",$string_temp)) > $listview_max_textlength))
|
|
{
|
|
$value_temp1 = (in_array(trim($val),$picklistarr))?$val:$notaccess;
|
|
if($str_c!=0)
|
|
$string_temp .= ' , ';
|
|
$string_temp .= $value_temp1;
|
|
$str_c++;
|
|
}
|
|
else
|
|
$string_temp .='...';
|
|
|
|
}
|
|
$value=$string_temp;
|
|
}
|
|
}
|
|
}
|
|
elseif($uitype == 85)
|
|
{
|
|
$value = ($temp_val != "") ? "<a href='skype:{$temp_val}?call'>{$temp_val}</a>" : "";
|
|
}
|
|
elseif($uitype == 116)
|
|
{
|
|
$value = ($temp_val != "") ? getCurrencyName($temp_val) : "";
|
|
}
|
|
elseif($uitype == 117)
|
|
{
|
|
// NOTE: Without symbol the value could be used for filtering/lookup hence avoiding the translation
|
|
$value = ($temp_val != "") ? getCurrencyName($temp_val,false) : "";
|
|
}
|
|
elseif($uitype == 26){
|
|
$sql ="select foldername from vtiger_attachmentsfolder where folderid = ?";
|
|
$res = $adb->pquery($sql,array($temp_val));
|
|
$foldername = $adb->query_result($res,0,'foldername');
|
|
$value = $foldername;
|
|
}
|
|
//added for asterisk integration
|
|
elseif($uitype == 11){
|
|
// Fix added for Trac Id: 6139
|
|
if(vtlib_isModuleActive('PBXManager')) {
|
|
$value = "<a href='javascript:;' onclick='startCall("$temp_val", "$entity_id")'>".$temp_val."</a>";
|
|
} else {
|
|
$value = $temp_val;
|
|
}
|
|
}
|
|
//asterisk changes end here
|
|
//Added for email status tracking
|
|
elseif($uitype == 25)
|
|
{
|
|
$contactid=$_REQUEST['record'];
|
|
$emailid=$adb->query_result($list_result,$list_result_count,"activityid");
|
|
$result = $adb->pquery("SELECT access_count FROM vtiger_email_track WHERE crmid=? AND mailid=?", array($contactid,$emailid));
|
|
$value=$adb->query_result($result,0,"access_count");
|
|
if(!$value) {
|
|
$value = 0;
|
|
}
|
|
}elseif($uitype == 8){
|
|
if(!empty($temp_val)){
|
|
$temp_val = html_entity_decode($temp_val,ENT_QUOTES,$default_charset);
|
|
$json = new Zend_Json();
|
|
$value = vt_suppressHTMLTags(implode(',',$json->decode($temp_val)));
|
|
}
|
|
}
|
|
//end email status tracking
|
|
else
|
|
{
|
|
if($fieldname == $focus->list_link_field)
|
|
{
|
|
if($mode == "search")
|
|
{
|
|
if($popuptype == "specific" || $popuptype=="toDospecific")
|
|
{
|
|
// Added for get the first name of contact in Popup window
|
|
if($colname == "lastname" && $module == 'Contacts')
|
|
{
|
|
$temp_val = getFullNameFromQResult($list_result,$list_result_count,"Contacts");
|
|
}
|
|
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
//Added to avoid the error when select SO from Invoice through AjaxEdit
|
|
if($module == 'SalesOrder')
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_specific("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'","'.$_REQUEST['form'].'");\'>'.$temp_val.'</a>';
|
|
|
|
elseif($module =='Contacts'){
|
|
require_once('modules/Contacts/Contacts.php');
|
|
$cntct_focus = new Contacts();
|
|
$cntct_focus->retrieve_entity_info($entity_id,"Contacts");
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
//ADDED TO CHECK THE FIELD PERMISSIONS FOR
|
|
$xyz=array('mailingstreet','mailingcity','mailingzip','mailingpobox','mailingcountry','mailingstate','otherstreet','othercity','otherzip','otherpobox','othercountry','otherstate');
|
|
for($i=0;$i<12;$i++){
|
|
if (getFieldVisibilityPermission($module, $current_user->id,$xyz[$i]) == '0'){
|
|
$cntct_focus->column_fields[$xyz[$i]] = $cntct_focus->column_fields[$xyz[$i]];
|
|
}
|
|
else
|
|
$cntct_focus->column_fields[$xyz[$i]] = '';
|
|
}
|
|
// For ToDo creation the underlying form is not named as EditView
|
|
$form = !empty($_REQUEST['form']) ? $_REQUEST['form'] : '';
|
|
if(!empty($form)) $form = htmlspecialchars($form,ENT_QUOTES,$default_charset);
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_contact_address("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'", "'.popup_decode_html($cntct_focus->column_fields['mailingstreet']).'", "'.popup_decode_html($cntct_focus->column_fields['otherstreet']).'", "'.popup_decode_html($cntct_focus->column_fields['mailingcity']).'", "'.popup_decode_html($cntct_focus->column_fields['othercity']).'", "'.popup_decode_html($cntct_focus->column_fields['mailingstate']).'", "'.popup_decode_html($cntct_focus->column_fields['otherstate']).'", "'.popup_decode_html($cntct_focus->column_fields['mailingzip']).'", "'.popup_decode_html($cntct_focus->column_fields['otherzip']).'", "'.popup_decode_html($cntct_focus->column_fields['mailingcountry']).'", "'.popup_decode_html($cntct_focus->column_fields['othercountry']).'","'.popup_decode_html($cntct_focus->column_fields['mailingpobox']).'", "'.popup_decode_html($cntct_focus->column_fields['otherpobox']).'","'.$form.'");\'>'.$temp_val.'</a>';
|
|
}
|
|
|
|
else
|
|
if($popuptype=='toDospecific')
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_toDospecific("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'");\'>'.$temp_val.'</a>';
|
|
else
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_specific("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'");\'>'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "detailview")
|
|
{
|
|
if($colname == "lastname" && ($module == 'Contacts' || $module == 'Leads')) {
|
|
$temp_val = getFullNameFromQResult($list_result,$list_result_count,$module);
|
|
}
|
|
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
$focus->record_id = $_REQUEST['recordid'];
|
|
if($_REQUEST['return_module'] == "Calendar")
|
|
{
|
|
$value = '<a href="javascript:window.close();" id="calendarCont'.$entity_id.'" LANGUAGE=javascript onclick=\'add_data_to_relatedlist_incal("'.$entity_id.'","'.decode_html($slashes_temp_val).'");\'>'.$temp_val.'</a>';
|
|
}
|
|
else
|
|
$value = '<a href="javascript:window.close();" onclick=\'add_data_to_relatedlist("'.$entity_id.'","'.$focus->record_id.'","'.$module.'");\'>'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "formname_specific")
|
|
{
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_formname_specific("'.$_REQUEST['form'].'", "'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'");\'>'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "inventory_prod")
|
|
{
|
|
$row_id = $_REQUEST['curr_row'];
|
|
|
|
//To get all the tax types and values and pass it to product details
|
|
$tax_str = '';
|
|
$tax_details = getAllTaxes();
|
|
for($tax_count=0;$tax_count<count($tax_details);$tax_count++)
|
|
{
|
|
$tax_str .= $tax_details[$tax_count]['taxname'].'='.$tax_details[$tax_count]['percentage'].',';
|
|
}
|
|
$tax_str = trim($tax_str,',');
|
|
$rate = $user_info['conv_rate'];
|
|
if(getFieldVisibilityPermission('Products',$current_user->id,'unit_price') == '0') {
|
|
$unitprice=$adb->query_result($list_result,$list_result_count,'unit_price');
|
|
if($_REQUEST['currencyid'] != null) {
|
|
$prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id));
|
|
$unitprice = $prod_prices[$entity_id];
|
|
}
|
|
} else {
|
|
$unit_price = '';
|
|
}
|
|
$sub_products = '';
|
|
$sub_prod = '';
|
|
$sub_prod_query = $adb->pquery("SELECT vtiger_products.productid,vtiger_products.productname,vtiger_products.qtyinstock,vtiger_crmentity.description from vtiger_products INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_products.productid INNER JOIN vtiger_seproductsrel on vtiger_seproductsrel.crmid=vtiger_products.productid WHERE vtiger_seproductsrel.productid=? and vtiger_seproductsrel.setype='Products'",array($entity_id));
|
|
for($i=0;$i<$adb->num_rows($sub_prod_query);$i++){
|
|
//$sub_prod=array();
|
|
$id = $adb->query_result($sub_prod_query,$i,"productid");
|
|
$str_sep='';
|
|
if($i>0) $str_sep = ":";
|
|
$sub_products .= $str_sep.$id;
|
|
$sub_prod .= $str_sep." - ".$adb->query_result($sub_prod_query,$i,"productname");
|
|
}
|
|
|
|
$sub_det = $sub_products."::".str_replace(":","<br>",$sub_prod);
|
|
$qty_stock=$adb->query_result($list_result,$list_result_count,'qtyinstock');
|
|
|
|
//fix for T6943
|
|
|
|
$slashes_temp_val = popup_from_html($field_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$description = popup_from_html($adb->query_result($list_result,$list_result_count,'description'));
|
|
$slashes_temp_desc = decode_html(htmlspecialchars($description,ENT_QUOTES,$default_charset));
|
|
|
|
$slashes_desc = str_replace(array("\r","\n"),array('\r','\n'), $slashes_temp_desc);
|
|
$tmp_arr = array("entityid"=>$entity_id,"prodname"=>"".stripslashes(decode_html(nl2br($slashes_temp_val)))."","unitprice" => "$unitprice", "qtyinstk"=>"$qty_stock","taxstring"=>"$tax_str","rowid"=>"$row_id","desc"=>"$slashes_desc","subprod_ids"=>"$sub_det");
|
|
require_once('include/Zend/Json.php');
|
|
$prod_arr = Zend_Json::encode($tmp_arr);
|
|
$value = '<a href="javascript:window.close();" id=\'popup_product_'.$entity_id.'\' onclick=\'set_return_inventory("'.$entity_id.'", "'.decode_html(nl2br($slashes_temp_val)).'", "'.$unitprice.'", "'.$qty_stock.'","'.$tax_str.'","'.$row_id.'","'.$slashes_desc.'","'.$sub_det.'");\' vt_prod_arr=\''.$prod_arr.'\' >'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "inventory_prod_po")
|
|
{
|
|
$row_id = $_REQUEST['curr_row'];
|
|
|
|
//To get all the tax types and values and pass it to product details
|
|
$tax_str = '';
|
|
$tax_details = getAllTaxes();
|
|
for($tax_count=0;$tax_count<count($tax_details);$tax_count++)
|
|
{
|
|
$tax_str .= $tax_details[$tax_count]['taxname'].'='.$tax_details[$tax_count]['percentage'].',';
|
|
}
|
|
$tax_str = trim($tax_str,',');
|
|
$rate = $user_info['conv_rate'];
|
|
|
|
if(getFieldVisibilityPermission($module,$current_user->id,'unit_price') == '0') {
|
|
$unitprice=$adb->query_result($list_result,$list_result_count,'unit_price');
|
|
if($_REQUEST['currencyid'] != null) {
|
|
$prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id), $module);
|
|
$unitprice = $prod_prices[$entity_id];
|
|
}
|
|
} else {
|
|
$unit_price = '';
|
|
}
|
|
$sub_products = '';
|
|
$sub_prod = '';
|
|
$sub_prod_query = $adb->pquery("SELECT vtiger_products.productid,vtiger_products.productname,vtiger_products.qtyinstock,vtiger_crmentity.description from vtiger_products INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_products.productid INNER JOIN vtiger_seproductsrel on vtiger_seproductsrel.crmid=vtiger_products.productid WHERE vtiger_seproductsrel.productid=? and vtiger_seproductsrel.setype='Products'",array($entity_id));
|
|
for($i=0;$i<$adb->num_rows($sub_prod_query);$i++){
|
|
//$sub_prod=array();
|
|
$id = $adb->query_result($sub_prod_query,$i,"productid");
|
|
$str_sep='';
|
|
if($i>0) $str_sep = ":";
|
|
$sub_products .= $str_sep.$id;
|
|
$sub_prod .= $str_sep." - $id.".$adb->query_result($sub_prod_query,$i,"productname");
|
|
}
|
|
|
|
$sub_det = $sub_products."::".str_replace(":","<br>",$sub_prod);
|
|
|
|
$slashes_temp_val = popup_from_html($field_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$description = popup_from_html($adb->query_result($list_result,$list_result_count,'description'));
|
|
$slashes_temp_desc = decode_html(htmlspecialchars($description,ENT_QUOTES,$default_charset));
|
|
|
|
$slashes_desc = str_replace(array("\r","\n"),array('\r','\n'), $slashes_temp_desc);
|
|
$tmp_arr = array("entityid"=>$entity_id,"prodname"=>"".stripslashes(decode_html(nl2br($slashes_temp_val)))."","unitprice" => "$unitprice", "qtyinstk"=>"$qty_stock","taxstring"=>"$tax_str","rowid"=>"$row_id","desc"=>"$slashes_desc","subprod_ids"=>"$sub_det");
|
|
require_once('include/Zend/Json.php');
|
|
$prod_arr = Zend_Json::encode($tmp_arr);
|
|
$value = '<a href="javascript:window.close();" id=\'popup_product_'.$entity_id.'\' onclick=\'set_return_inventory_po("'.$entity_id.'", "'.decode_html(nl2br($slashes_temp_val)).'", "'.$unitprice.'", "'.$tax_str.'","'.$row_id.'","'.$slashes_desc.'","'.$sub_det.'"); \' vt_prod_arr=\''.$prod_arr.'\' >'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "inventory_service")
|
|
{
|
|
$row_id = $_REQUEST['curr_row'];
|
|
|
|
//To get all the tax types and values and pass it to product details
|
|
$tax_str = '';
|
|
$tax_details = getAllTaxes();
|
|
for($tax_count=0;$tax_count<count($tax_details);$tax_count++)
|
|
{
|
|
$tax_str .= $tax_details[$tax_count]['taxname'].'='.$tax_details[$tax_count]['percentage'].',';
|
|
}
|
|
$tax_str = trim($tax_str,',');
|
|
$rate = $user_info['conv_rate'];
|
|
if(getFieldVisibilityPermission('Services',$current_user->id,'unit_price') == '0') {
|
|
$unitprice=$adb->query_result($list_result,$list_result_count,'unit_price');
|
|
if($_REQUEST['currencyid'] != null) {
|
|
$prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id), $module);
|
|
$unitprice = $prod_prices[$entity_id];
|
|
}
|
|
} else {
|
|
$unit_price = '';
|
|
}
|
|
|
|
$slashes_temp_val = popup_from_html($field_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$description = popup_from_html($adb->query_result($list_result,$list_result_count,'description'));
|
|
$slashes_temp_desc = decode_html(htmlspecialchars($description,ENT_QUOTES,$default_charset));
|
|
|
|
$slashes_desc = str_replace(array("\r","\n"),array('\r','\n'), $slashes_temp_desc);
|
|
$tmp_arr = array("entityid"=>$entity_id,"prodname"=>"".stripslashes(decode_html(nl2br($slashes_temp_val)))."","unitprice" => "$unitprice","taxstring"=>"$tax_str","rowid"=>"$row_id","desc"=>"$slashes_desc");
|
|
require_once('include/Zend/Json.php');
|
|
$prod_arr = Zend_Json::encode($tmp_arr);
|
|
|
|
$value = '<a href="javascript:window.close();" id=\'popup_product_'.$entity_id.'\' onclick=\'set_return_inventory("'.$entity_id.'", "'.decode_html(nl2br($slashes_temp_val)).'", "'.$unitprice.'", "'.$tax_str.'","'.$row_id.'","'.$slashes_desc.'");\' vt_prod_arr=\''.$prod_arr.'\' >'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "inventory_pb")
|
|
{
|
|
|
|
$prod_id = $_REQUEST['productid'];
|
|
$flname = $_REQUEST['fldname'];
|
|
$listprice=getListPrice($prod_id,$entity_id);
|
|
|
|
$temp_val = popup_from_html($temp_val);
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_inventory_pb("'.$listprice.'", "'.$flname.'"); \'>'.$temp_val.'</a>';
|
|
}
|
|
elseif($popuptype == "specific_account_address")
|
|
{
|
|
require_once('modules/Accounts/Accounts.php');
|
|
$acct_focus = new Accounts();
|
|
$acct_focus->retrieve_entity_info($entity_id,"Accounts");
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$xyz=array('bill_street','bill_city','bill_code','bill_pobox','bill_country','bill_state','ship_street','ship_city','ship_code','ship_pobox','ship_country','ship_state');
|
|
for($i=0;$i<12;$i++){
|
|
if (getFieldVisibilityPermission($module, $current_user->id,$xyz[$i]) == '0'){
|
|
$acct_focus->column_fields[$xyz[$i]] = $acct_focus->column_fields[$xyz[$i]];
|
|
}
|
|
else
|
|
$acct_focus->column_fields[$xyz[$i]] = '';
|
|
}
|
|
$bill_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['bill_street']));
|
|
$ship_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['ship_street']));
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_address("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'", "'.$bill_street.'", "'.$ship_street.'", "'.popup_decode_html($acct_focus->column_fields['bill_city']).'", "'.popup_decode_html($acct_focus->column_fields['ship_city']).'", "'.popup_decode_html($acct_focus->column_fields['bill_state']).'", "'.popup_decode_html($acct_focus->column_fields['ship_state']).'", "'.popup_decode_html($acct_focus->column_fields['bill_code']).'", "'.popup_decode_html($acct_focus->column_fields['ship_code']).'", "'.popup_decode_html($acct_focus->column_fields['bill_country']).'", "'.popup_decode_html($acct_focus->column_fields['ship_country']).'","'.popup_decode_html($acct_focus->column_fields['bill_pobox']).'", "'.popup_decode_html($acct_focus->column_fields['ship_pobox']).'");\'>'.$temp_val.'</a>';
|
|
|
|
}
|
|
elseif($popuptype == "specific_contact_account_address")
|
|
{
|
|
require_once('modules/Accounts/Accounts.php');
|
|
$acct_focus = new Accounts();
|
|
$acct_focus->retrieve_entity_info($entity_id,"Accounts");
|
|
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
$bill_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['bill_street']));
|
|
$ship_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['ship_street']));
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_contact_address("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'", "'.$bill_street.'", "'.$ship_street.'", "'.popup_decode_html($acct_focus->column_fields['bill_city']).'", "'.popup_decode_html($acct_focus->column_fields['ship_city']).'", "'.popup_decode_html($acct_focus->column_fields['bill_state']).'", "'.popup_decode_html($acct_focus->column_fields['ship_state']).'", "'.popup_decode_html($acct_focus->column_fields['bill_code']).'", "'.popup_decode_html($acct_focus->column_fields['ship_code']).'", "'.popup_decode_html($acct_focus->column_fields['bill_country']).'", "'.popup_decode_html($acct_focus->column_fields['ship_country']).'","'.popup_decode_html($acct_focus->column_fields['bill_pobox']).'", "'.popup_decode_html($acct_focus->column_fields['ship_pobox']).'");\'>'.$temp_val.'</a>';
|
|
|
|
}
|
|
elseif($popuptype == "specific_potential_account_address")
|
|
{
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
// For B2C support, Potential was enabled to be linked to Contacts also.
|
|
// Hence we need case handling for it.
|
|
$relatedid = $adb->query_result($list_result,$list_result_count,"related_to");
|
|
$relatedentity = getSalesEntityType($relatedid);
|
|
if($relatedentity == 'Accounts') {
|
|
require_once('modules/Accounts/Accounts.php');
|
|
$acct_focus = new Accounts();
|
|
$acct_focus->retrieve_entity_info($relatedid,"Accounts");
|
|
$account_name = getAccountName($relatedid);
|
|
|
|
$slashes_account_name = popup_from_html($account_name);
|
|
$slashes_account_name = htmlspecialchars($slashes_account_name,ENT_QUOTES,$default_charset);
|
|
|
|
$xyz=array('bill_street','bill_city','bill_code','bill_pobox','bill_country','bill_state','ship_street','ship_city','ship_code','ship_pobox','ship_country','ship_state');
|
|
for($i=0;$i<12;$i++){
|
|
if (getFieldVisibilityPermission('Accounts', $current_user->id,$xyz[$i]) == '0'){
|
|
$acct_focus->column_fields[$xyz[$i]] = $acct_focus->column_fields[$xyz[$i]];
|
|
}
|
|
else
|
|
$acct_focus->column_fields[$xyz[$i]] = '';
|
|
}
|
|
$bill_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['bill_street']));
|
|
$ship_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['ship_street']));
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_address("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'", "'.$relatedid.'", "'.nl2br(decode_html($slashes_account_name)).'", "'.$bill_street.'", "'.$ship_street.'", "'.popup_decode_html($acct_focus->column_fields['bill_city']).'", "'.popup_decode_html($acct_focus->column_fields['ship_city']).'", "'.popup_decode_html($acct_focus->column_fields['bill_state']).'", "'.popup_decode_html($acct_focus->column_fields['ship_state']).'", "'.popup_decode_html($acct_focus->column_fields['bill_code']).'", "'.popup_decode_html($acct_focus->column_fields['ship_code']).'", "'.popup_decode_html($acct_focus->column_fields['bill_country']).'", "'.popup_decode_html($acct_focus->column_fields['ship_country']).'","'.popup_decode_html($acct_focus->column_fields['bill_pobox']).'", "'.popup_decode_html($acct_focus->column_fields['ship_pobox']).'");\'>'.$temp_val.'</a>';
|
|
} else if($relatedentity == 'Contacts') {
|
|
|
|
require_once('modules/Contacts/Contacts.php');
|
|
$contact_name = getContactName($relatedid);
|
|
|
|
$slashes_contact_name = popup_from_html($contact_name);
|
|
$slashes_contact_name = htmlspecialchars($slashes_contact_name,ENT_QUOTES,$default_charset);
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_contact("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'", "'.$relatedid.'", "'.nl2br(decode_html($slashes_contact_name)).'");\'>'.$temp_val.'</a>';
|
|
|
|
} else {
|
|
$value = $temp_val;
|
|
}
|
|
}
|
|
//added by rdhital/Raju for better emails
|
|
elseif($popuptype == "set_return_emails")
|
|
{
|
|
if ($module=='Accounts')
|
|
{
|
|
$name = $adb->query_result($list_result,$list_result_count,'accountname');
|
|
$accid =$adb->query_result($list_result,$list_result_count,'accountid');
|
|
if(CheckFieldPermission('email1',$module) == "true")
|
|
{
|
|
$emailaddress=$adb->query_result($list_result,$list_result_count,"email1");
|
|
$email_check = 1;
|
|
}
|
|
else
|
|
$email_check = 0;
|
|
if($emailaddress == '')
|
|
{
|
|
if(CheckFieldPermission('email2',$module) == 'true')
|
|
{
|
|
$emailaddress2=$adb->query_result($list_result,$list_result_count,"email2");
|
|
$email_check = 2;
|
|
}
|
|
else
|
|
{
|
|
if($email_check == 1)
|
|
$email_check = 4;
|
|
else
|
|
$email_check = 3;
|
|
}
|
|
}
|
|
$querystr="SELECT fieldid,fieldlabel,columnname FROM vtiger_field WHERE tabid=? and uitype=13 and vtiger_field.presence in (0,2)";
|
|
$queryres = $adb->pquery($querystr, array(getTabid($module)));
|
|
//Change this index 0 - to get the vtiger_fieldid based on email1 or email2
|
|
$fieldid = $adb->query_result($queryres,0,'fieldid');
|
|
|
|
$slashes_name = popup_from_html($name);
|
|
$slashes_name = htmlspecialchars($slashes_name,ENT_QUOTES,$default_charset);
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'return set_return_emails('.$entity_id.','.$fieldid.',"'.decode_html($slashes_name).'","'.$emailaddress.'","'.$emailaddress2.'","'.$email_check.'"); \'>'.textlength_check($name).'</a>';
|
|
|
|
}elseif ($module=='Vendors')
|
|
{
|
|
$name = $adb->query_result($list_result,$list_result_count,'vendorname');
|
|
$venid =$adb->query_result($list_result,$list_result_count,'vendorid');
|
|
if(CheckFieldPermission('email',$module) == "true")
|
|
{
|
|
$emailaddress=$adb->query_result($list_result,$list_result_count,"email");
|
|
$email_check = 1;
|
|
}
|
|
else
|
|
$email_check = 0;
|
|
$querystr="SELECT fieldid,fieldlabel,columnname FROM vtiger_field WHERE tabid=? and uitype=13 and vtiger_field.presence in (0,2)";
|
|
$queryres = $adb->pquery($querystr, array(getTabid($module)));
|
|
//Change this index 0 - to get the vtiger_fieldid based on email1 or email2
|
|
$fieldid = $adb->query_result($queryres,0,'fieldid');
|
|
|
|
$slashes_name = popup_from_html($name);
|
|
$slashes_name = htmlspecialchars($slashes_name,ENT_QUOTES,$default_charset);
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'return set_return_emails('.$entity_id.','.$fieldid.',"'.decode_html($slashes_name).'","'.$emailaddress.'","'.$emailaddress2.'","'.$email_check.'"); \'>'.textlength_check($name).'</a>';
|
|
|
|
}elseif ($module=='Contacts' || $module=='Leads')
|
|
{
|
|
$name=getFullNameFromQResult($list_result,$list_result_count,$module);
|
|
if(CheckFieldPermission('email',$module) == "true")
|
|
{
|
|
$emailaddress=$adb->query_result($list_result,$list_result_count,"email");
|
|
$email_check = 1;
|
|
}
|
|
else
|
|
$email_check = 0;
|
|
if($emailaddress == '')
|
|
{
|
|
if(CheckFieldPermission('yahooid',$module) == 'true')
|
|
{
|
|
$emailaddress2=$adb->query_result($list_result,$list_result_count,"yahooid");
|
|
$email_check = 2;
|
|
}
|
|
else{
|
|
if($email_check == 1)
|
|
$email_check = 4;
|
|
else
|
|
$email_check = 3;
|
|
}
|
|
}
|
|
|
|
$querystr="SELECT fieldid,fieldlabel,columnname FROM vtiger_field WHERE tabid=? and uitype=13 and vtiger_field.presence in (0,2)";
|
|
$queryres = $adb->pquery($querystr, array(getTabid($module)));
|
|
//Change this index 0 - to get the vtiger_fieldid based on email or yahooid
|
|
$fieldid = $adb->query_result($queryres,0,'fieldid');
|
|
|
|
$slashes_name = popup_from_html($name);
|
|
$slashes_name = htmlspecialchars($slashes_name,ENT_QUOTES,$default_charset);
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'return set_return_emails('.$entity_id.','.$fieldid.',"'.decode_html($slashes_name).'","'.$emailaddress.'","'.$emailaddress2.'","'.$email_check.'"); \'>'.$name.'</a>';
|
|
|
|
}else
|
|
{
|
|
$firstname=$adb->query_result($list_result,$list_result_count,"first_name");
|
|
$lastname=$adb->query_result($list_result,$list_result_count,"last_name");
|
|
$name=$lastname.' '.$firstname;
|
|
$emailaddress=$adb->query_result($list_result,$list_result_count,"email1");
|
|
|
|
$slashes_name = popup_from_html($name);
|
|
$slashes_name = htmlspecialchars($slashes_name,ENT_QUOTES,$default_charset);
|
|
$email_check = 1;
|
|
$value = '<a href="javascript:window.close();" onclick=\'return set_return_emails('.$entity_id.',-1,"'.decode_html($slashes_name).'","'.$emailaddress.'","'.$emailaddress2.'","'.$email_check.'"); \'>'.textlength_check($name) .'</a>';
|
|
|
|
}
|
|
|
|
}
|
|
elseif($popuptype == "specific_vendor_address")
|
|
{
|
|
require_once('modules/Vendors/Vendors.php');
|
|
$acct_focus = new Vendors();
|
|
$acct_focus->retrieve_entity_info($entity_id,"Vendors");
|
|
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
$xyz=array('street','city','postalcode','pobox','country','state');
|
|
for($i=0;$i<6;$i++){
|
|
if (getFieldVisibilityPermission($module, $current_user->id,$xyz[$i]) == '0'){
|
|
$acct_focus->column_fields[$xyz[$i]] = $acct_focus->column_fields[$xyz[$i]];
|
|
}
|
|
else
|
|
$acct_focus->column_fields[$xyz[$i]] = '';
|
|
}
|
|
$bill_street = str_replace(array("\r","\n"),array('\r','\n'), popup_decode_html($acct_focus->column_fields['street']));
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_address("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'", "'.$bill_street.'", "'.popup_decode_html($acct_focus->column_fields['city']).'", "'.popup_decode_html($acct_focus->column_fields['state']).'", "'.popup_decode_html($acct_focus->column_fields['postalcode']).'", "'.popup_decode_html($acct_focus->column_fields['country']).'","'.popup_decode_html($acct_focus->column_fields['pobox']).'");\'>'.$temp_val.'</a>';
|
|
|
|
}
|
|
elseif($popuptype == "specific_campaign")
|
|
{
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_specific_campaign("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'");\'>'.$temp_val.'</a>';
|
|
}
|
|
else
|
|
{
|
|
if($colname == "lastname")
|
|
$temp_val = getFullNameFromQResult($list_result,$list_result_count,$module);
|
|
|
|
$slashes_temp_val = popup_from_html($temp_val);
|
|
$slashes_temp_val = htmlspecialchars($slashes_temp_val,ENT_QUOTES,$default_charset);
|
|
|
|
$log->debug("Exiting getValue method ...");
|
|
if($_REQUEST['maintab'] == 'Calendar')
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return_todo("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'");\'>'.$temp_val.'</a>';
|
|
else
|
|
$value = '<a href="javascript:window.close();" onclick=\'set_return("'.$entity_id.'", "'.nl2br(decode_html($slashes_temp_val)).'");\'>'.$temp_val.'</a>';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(($module == "Leads" && $colname == "lastname") || ($module == "Contacts" && $colname == "lastname"))
|
|
{
|
|
$value = '<a href="index.php?action=DetailView&module='.$module.'&record='.$entity_id.'&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
elseif($module == "Calendar")
|
|
{
|
|
$actvity_type = $adb->query_result($list_result,$list_result_count,'activitytype');
|
|
$actvity_type = ($actvity_type != '') ? $actvity_type : $adb->query_result($list_result,$list_result_count,'type');
|
|
if($actvity_type == "Task")
|
|
{
|
|
$value = '<a href="index.php?action=DetailView&module='.$module.'&record='.$entity_id.'&activity_mode=Task&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
else
|
|
{
|
|
$value = '<a href="index.php?action=DetailView&module='.$module.'&record='.$entity_id.'&activity_mode=Events&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
}
|
|
elseif($module == "Vendors")
|
|
{
|
|
|
|
$value = '<a href="index.php?action=DetailView&module=Vendors&record='.$entity_id.'&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
elseif($module == "PriceBooks")
|
|
{
|
|
|
|
$value = '<a href="index.php?action=DetailView&module=PriceBooks&record='.$entity_id.'&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
elseif($module == "SalesOrder")
|
|
{
|
|
|
|
$value = '<a href="index.php?action=DetailView&module=SalesOrder&record='.$entity_id.'&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
elseif($module == 'Emails')
|
|
{
|
|
$value = $temp_val;
|
|
}
|
|
else
|
|
{
|
|
$value = '<a href="index.php?action=DetailView&module='.$module.'&record='.$entity_id.'&parenttab='.$tabname.'">'.$temp_val.'</a>';
|
|
}
|
|
}
|
|
}
|
|
elseif($fieldname == 'expectedroi' || $fieldname == 'actualroi' || $fieldname == 'actualcost' || $fieldname == 'budgetcost' || $fieldname == 'expectedrevenue')
|
|
{
|
|
$rate = $user_info['conv_rate'];
|
|
$value = convertFromDollar($temp_val,$rate);
|
|
}
|
|
elseif(($module == 'Invoice' || $module == 'Quotes' || $module == 'PurchaseOrder' || $module == 'SalesOrder')
|
|
&& ($fieldname == 'hdnGrandTotal' || $fieldname == 'hdnSubTotal' || $fieldname == 'txtAdjustment'
|
|
|| $fieldname == 'hdnDiscountAmount' || $fieldname == 'hdnS_H_Amount'))
|
|
{
|
|
$currency_info = getInventoryCurrencyInfo($module, $entity_id);
|
|
$currency_id = $currency_info['currency_id'];
|
|
$currency_symbol = $currency_info['currency_symbol'];
|
|
$value = $currency_symbol.$temp_val;
|
|
}
|
|
else
|
|
{
|
|
$value = $temp_val;
|
|
}
|
|
}
|
|
|
|
// Mike Crowe Mod --------------------------------------------------------Make right justified and vtiger_currency value
|
|
if ( in_array($uitype,array(71,72,7,9,90)) )
|
|
{
|
|
$value = '<span align="right">'.$value.'</div>';
|
|
}
|
|
$log->debug("Exiting getValue method ...");
|
|
return $value;
|
|
}
|
|
|
|
/** Function to get the list query for a module
|
|
* @param $module -- module name:: Type string
|
|
* @param $where -- where:: Type string
|
|
* @returns $query -- query:: Type query
|
|
*/
|
|
function getListQuery($module,$where='')
|
|
{
|
|
global $log;
|
|
$log->debug("Entering getListQuery(".$module.",".$where.") method ...");
|
|
|
|
global $current_user;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
require('user_privileges/sharing_privileges_'.$current_user->id.'.php');
|
|
$tab_id = getTabid($module);
|
|
switch($module)
|
|
{
|
|
Case "HelpDesk":
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
|
|
vtiger_troubletickets.title, vtiger_troubletickets.status,
|
|
vtiger_troubletickets.priority, vtiger_troubletickets.parent_id,
|
|
vtiger_contactdetails.contactid, vtiger_contactdetails.firstname,
|
|
vtiger_contactdetails.lastname, vtiger_account.accountid,
|
|
vtiger_account.accountname, vtiger_ticketcf.*, vtiger_troubletickets.ticket_no
|
|
FROM vtiger_troubletickets
|
|
INNER JOIN vtiger_ticketcf
|
|
ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_troubletickets.parent_id = vtiger_contactdetails.contactid
|
|
LEFT JOIN vtiger_account
|
|
ON vtiger_account.accountid = vtiger_troubletickets.parent_id
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_crmentity.smownerid = vtiger_users.id
|
|
LEFT JOIN vtiger_products
|
|
ON vtiger_products.productid = vtiger_troubletickets.product_id";
|
|
$query .= ' '.getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
|
|
Case "Accounts":
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
|
|
vtiger_account.accountname, vtiger_account.email1,
|
|
vtiger_account.email2, vtiger_account.website, vtiger_account.phone,
|
|
vtiger_accountbillads.bill_city,
|
|
vtiger_accountscf.*
|
|
FROM vtiger_account
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_account.accountid
|
|
INNER JOIN vtiger_accountbillads
|
|
ON vtiger_account.accountid = vtiger_accountbillads.accountaddressid
|
|
INNER JOIN vtiger_accountshipads
|
|
ON vtiger_account.accountid = vtiger_accountshipads.accountaddressid
|
|
INNER JOIN vtiger_accountscf
|
|
ON vtiger_account.accountid = vtiger_accountscf.accountid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_account vtiger_account2
|
|
ON vtiger_account.parentid = vtiger_account2.accountid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
|
|
Case "Potentials":
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
|
|
vtiger_account.accountname,
|
|
vtiger_potential.related_to, vtiger_potential.potentialname,
|
|
vtiger_potential.sales_stage, vtiger_potential.amount,
|
|
vtiger_potential.currency, vtiger_potential.closingdate,
|
|
vtiger_potential.typeofrevenue,
|
|
vtiger_potentialscf.*
|
|
FROM vtiger_potential
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_potential.potentialid
|
|
INNER JOIN vtiger_potentialscf
|
|
ON vtiger_potentialscf.potentialid = vtiger_potential.potentialid
|
|
LEFT JOIN vtiger_account
|
|
ON vtiger_potential.related_to = vtiger_account.accountid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_potential.related_to = vtiger_contactdetails.contactid
|
|
LEFT JOIN vtiger_campaign
|
|
ON vtiger_campaign.campaignid = vtiger_potential.campaignid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
|
|
Case "Leads":
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
|
|
vtiger_leaddetails.firstname, vtiger_leaddetails.lastname,
|
|
vtiger_leaddetails.company, vtiger_leadaddress.phone,
|
|
vtiger_leadsubdetails.website, vtiger_leaddetails.email,
|
|
vtiger_leadscf.*
|
|
FROM vtiger_leaddetails
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid
|
|
INNER JOIN vtiger_leadsubdetails
|
|
ON vtiger_leadsubdetails.leadsubscriptionid = vtiger_leaddetails.leadid
|
|
INNER JOIN vtiger_leadaddress
|
|
ON vtiger_leadaddress.leadaddressid = vtiger_leadsubdetails.leadsubscriptionid
|
|
INNER JOIN vtiger_leadscf
|
|
ON vtiger_leaddetails.leadid = vtiger_leadscf.leadid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 AND vtiger_leaddetails.converted = 0 ".
|
|
$where;
|
|
break;
|
|
Case "Products":
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.description, vtiger_products.*, vtiger_productcf.*
|
|
FROM vtiger_products
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_products.productid
|
|
INNER JOIN vtiger_productcf
|
|
ON vtiger_products.productid = vtiger_productcf.productid
|
|
LEFT JOIN vtiger_vendor
|
|
ON vtiger_vendor.vendorid = vtiger_products.vendor_id
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_products.handler";
|
|
if((isset($_REQUEST["from_dashboard"]) && $_REQUEST["from_dashboard"] == true) && (isset($_REQUEST["type"]) && $_REQUEST["type"] =="dbrd"))
|
|
$query .= " INNER JOIN vtiger_inventoryproductrel on vtiger_inventoryproductrel.productid = vtiger_products.productid";
|
|
$query .= " WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Documents":
|
|
$query = "SELECT case when (vtiger_users.user_name not like '') then vtiger_users.user_name else vtiger_groups.groupname end as user_name,vtiger_crmentity.crmid, vtiger_crmentity.modifiedtime,
|
|
vtiger_crmentity.smownerid,vtiger_attachmentsfolder.*,vtiger_notes.*
|
|
FROM vtiger_notes
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_notes.notesid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_attachmentsfolder
|
|
ON vtiger_notes.folderid = vtiger_attachmentsfolder.folderid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Contacts":
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_contactdetails.firstname, vtiger_contactdetails.lastname,
|
|
vtiger_contactdetails.title, vtiger_contactdetails.accountid,
|
|
vtiger_contactdetails.email, vtiger_contactdetails.phone,
|
|
vtiger_crmentity.smownerid, vtiger_crmentity.crmid
|
|
FROM vtiger_contactdetails
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_contactdetails.contactid
|
|
INNER JOIN vtiger_contactaddress
|
|
ON vtiger_contactaddress.contactaddressid = vtiger_contactdetails.contactid
|
|
INNER JOIN vtiger_contactsubdetails
|
|
ON vtiger_contactsubdetails.contactsubscriptionid = vtiger_contactdetails.contactid
|
|
INNER JOIN vtiger_contactscf
|
|
ON vtiger_contactscf.contactid = vtiger_contactdetails.contactid
|
|
LEFT JOIN vtiger_account
|
|
ON vtiger_account.accountid = vtiger_contactdetails.accountid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_contactdetails vtiger_contactdetails2
|
|
ON vtiger_contactdetails.reportsto = vtiger_contactdetails2.contactid
|
|
LEFT JOIN vtiger_customerdetails
|
|
ON vtiger_customerdetails.customerid = vtiger_contactdetails.contactid";
|
|
if((isset($_REQUEST["from_dashboard"]) && $_REQUEST["from_dashboard"] == true) &&
|
|
(isset($_REQUEST["type"]) && $_REQUEST["type"] =="dbrd")) {
|
|
$query .= " INNER JOIN vtiger_campaigncontrel on vtiger_campaigncontrel.contactid = ".
|
|
"vtiger_contactdetails.contactid";
|
|
}
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Calendar":
|
|
|
|
$query="SELECT vtiger_activity.activityid as act_id,vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.setype,
|
|
vtiger_activity.*,
|
|
vtiger_contactdetails.lastname, vtiger_contactdetails.firstname,
|
|
vtiger_contactdetails.contactid,
|
|
vtiger_account.accountid, vtiger_account.accountname
|
|
FROM vtiger_activity
|
|
LEFT JOIN vtiger_activitycf
|
|
ON vtiger_activitycf.activityid = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_cntactivityrel
|
|
ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_contactdetails.contactid = vtiger_cntactivityrel.contactid
|
|
LEFT JOIN vtiger_seactivityrel
|
|
ON vtiger_seactivityrel.activityid = vtiger_activity.activityid
|
|
LEFT OUTER JOIN vtiger_activity_reminder
|
|
ON vtiger_activity_reminder.activity_id = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT OUTER JOIN vtiger_account
|
|
ON vtiger_account.accountid = vtiger_contactdetails.accountid
|
|
LEFT OUTER JOIN vtiger_leaddetails
|
|
ON vtiger_leaddetails.leadid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_account vtiger_account2
|
|
ON vtiger_account2.accountid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_potential
|
|
ON vtiger_potential.potentialid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_troubletickets
|
|
ON vtiger_troubletickets.ticketid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_salesorder
|
|
ON vtiger_salesorder.salesorderid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_purchaseorder
|
|
ON vtiger_purchaseorder.purchaseorderid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_quotes
|
|
ON vtiger_quotes.quoteid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_invoice
|
|
ON vtiger_invoice.invoiceid = vtiger_seactivityrel.crmid
|
|
LEFT OUTER JOIN vtiger_campaign
|
|
ON vtiger_campaign.campaignid = vtiger_seactivityrel.crmid";
|
|
|
|
//added to fix #5135
|
|
if(isset($_REQUEST['from_homepage']) && ($_REQUEST['from_homepage'] ==
|
|
"upcoming_activities" || $_REQUEST['from_homepage'] == "pending_activities")) {
|
|
$query.=" LEFT OUTER JOIN vtiger_recurringevents
|
|
ON vtiger_recurringevents.activityid=vtiger_activity.activityid";
|
|
}
|
|
//end
|
|
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query.=" WHERE vtiger_crmentity.deleted = 0 AND activitytype != 'Emails' ".$where;
|
|
break;
|
|
Case "Emails":
|
|
$query = "SELECT DISTINCT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
|
|
vtiger_activity.activityid, vtiger_activity.subject,
|
|
vtiger_activity.date_start,
|
|
vtiger_contactdetails.lastname, vtiger_contactdetails.firstname,
|
|
vtiger_contactdetails.contactid
|
|
FROM vtiger_activity
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_seactivityrel
|
|
ON vtiger_seactivityrel.activityid = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_contactdetails.contactid = vtiger_seactivityrel.crmid
|
|
LEFT JOIN vtiger_cntactivityrel
|
|
ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid
|
|
AND vtiger_cntactivityrel.contactid = vtiger_cntactivityrel.contactid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_salesmanactivityrel
|
|
ON vtiger_salesmanactivityrel.activityid = vtiger_activity.activityid
|
|
LEFT JOIN vtiger_emaildetails
|
|
ON vtiger_emaildetails.emailid = vtiger_activity.activityid
|
|
WHERE vtiger_activity.activitytype = 'Emails'";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "AND vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Faq":
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.createdtime, vtiger_crmentity.modifiedtime,
|
|
vtiger_faq.*
|
|
FROM vtiger_faq
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_faq.id
|
|
LEFT JOIN vtiger_products
|
|
ON vtiger_faq.product_id = vtiger_products.productid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
|
|
Case "Vendors":
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_vendor.*
|
|
FROM vtiger_vendor
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_vendor.vendorid
|
|
INNER JOIN vtiger_vendorcf
|
|
ON vtiger_vendor.vendorid = vtiger_vendorcf.vendorid
|
|
WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "PriceBooks":
|
|
$query = "SELECT vtiger_crmentity.crmid, vtiger_pricebook.*, vtiger_currency_info.currency_name
|
|
FROM vtiger_pricebook
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_pricebook.pricebookid
|
|
INNER JOIN vtiger_pricebookcf
|
|
ON vtiger_pricebook.pricebookid = vtiger_pricebookcf.pricebookid
|
|
LEFT JOIN vtiger_currency_info
|
|
ON vtiger_pricebook.currency_id = vtiger_currency_info.id
|
|
WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Quotes":
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.*,
|
|
vtiger_quotes.*,
|
|
vtiger_quotesbillads.*,
|
|
vtiger_quotesshipads.*,
|
|
vtiger_potential.potentialname,
|
|
vtiger_account.accountname,
|
|
vtiger_currency_info.currency_name
|
|
FROM vtiger_quotes
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_quotes.quoteid
|
|
INNER JOIN vtiger_quotesbillads
|
|
ON vtiger_quotes.quoteid = vtiger_quotesbillads.quotebilladdressid
|
|
INNER JOIN vtiger_quotesshipads
|
|
ON vtiger_quotes.quoteid = vtiger_quotesshipads.quoteshipaddressid
|
|
LEFT JOIN vtiger_quotescf
|
|
ON vtiger_quotes.quoteid = vtiger_quotescf.quoteid
|
|
LEFT JOIN vtiger_currency_info
|
|
ON vtiger_quotes.currency_id = vtiger_currency_info.id
|
|
LEFT OUTER JOIN vtiger_account
|
|
ON vtiger_account.accountid = vtiger_quotes.accountid
|
|
LEFT OUTER JOIN vtiger_potential
|
|
ON vtiger_potential.potentialid = vtiger_quotes.potentialid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_contactdetails.contactid = vtiger_quotes.contactid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users as vtiger_usersQuotes
|
|
ON vtiger_usersQuotes.id = vtiger_quotes.inventorymanager";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "PurchaseOrder":
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.*,
|
|
vtiger_purchaseorder.*,
|
|
vtiger_pobillads.*,
|
|
vtiger_poshipads.*,
|
|
vtiger_vendor.vendorname,
|
|
vtiger_currency_info.currency_name
|
|
FROM vtiger_purchaseorder
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_purchaseorder.purchaseorderid
|
|
LEFT OUTER JOIN vtiger_vendor
|
|
ON vtiger_purchaseorder.vendorid = vtiger_vendor.vendorid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_purchaseorder.contactid = vtiger_contactdetails.contactid
|
|
INNER JOIN vtiger_pobillads
|
|
ON vtiger_purchaseorder.purchaseorderid = vtiger_pobillads.pobilladdressid
|
|
INNER JOIN vtiger_poshipads
|
|
ON vtiger_purchaseorder.purchaseorderid = vtiger_poshipads.poshipaddressid
|
|
LEFT JOIN vtiger_purchaseordercf
|
|
ON vtiger_purchaseordercf.purchaseorderid = vtiger_purchaseorder.purchaseorderid
|
|
LEFT JOIN vtiger_currency_info
|
|
ON vtiger_purchaseorder.currency_id = vtiger_currency_info.id
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "SalesOrder":
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.*,
|
|
vtiger_salesorder.*,
|
|
vtiger_sobillads.*,
|
|
vtiger_soshipads.*,
|
|
vtiger_quotes.subject AS quotename,
|
|
vtiger_account.accountname,
|
|
vtiger_currency_info.currency_name
|
|
FROM vtiger_salesorder
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_salesorder.salesorderid
|
|
INNER JOIN vtiger_sobillads
|
|
ON vtiger_salesorder.salesorderid = vtiger_sobillads.sobilladdressid
|
|
INNER JOIN vtiger_soshipads
|
|
ON vtiger_salesorder.salesorderid = vtiger_soshipads.soshipaddressid
|
|
LEFT JOIN vtiger_salesordercf
|
|
ON vtiger_salesordercf.salesorderid = vtiger_salesorder.salesorderid
|
|
LEFT JOIN vtiger_currency_info
|
|
ON vtiger_salesorder.currency_id = vtiger_currency_info.id
|
|
LEFT OUTER JOIN vtiger_quotes
|
|
ON vtiger_quotes.quoteid = vtiger_salesorder.quoteid
|
|
LEFT OUTER JOIN vtiger_account
|
|
ON vtiger_account.accountid = vtiger_salesorder.accountid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_salesorder.contactid = vtiger_contactdetails.contactid
|
|
LEFT JOIN vtiger_potential
|
|
ON vtiger_potential.potentialid = vtiger_salesorder.potentialid
|
|
LEFT JOIN vtiger_invoice_recurring_info
|
|
ON vtiger_invoice_recurring_info.salesorderid = vtiger_salesorder.salesorderid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Invoice":
|
|
//Query modified to sort by assigned to
|
|
//query modified -Code contribute by Geoff(http://forums.vtiger.com/viewtopic.php?t=3376)
|
|
$query = "SELECT vtiger_crmentity.*,
|
|
vtiger_invoice.*,
|
|
vtiger_invoicebillads.*,
|
|
vtiger_invoiceshipads.*,
|
|
vtiger_salesorder.subject AS salessubject,
|
|
vtiger_account.accountname,
|
|
vtiger_currency_info.currency_name
|
|
FROM vtiger_invoice
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_invoice.invoiceid
|
|
INNER JOIN vtiger_invoicebillads
|
|
ON vtiger_invoice.invoiceid = vtiger_invoicebillads.invoicebilladdressid
|
|
INNER JOIN vtiger_invoiceshipads
|
|
ON vtiger_invoice.invoiceid = vtiger_invoiceshipads.invoiceshipaddressid
|
|
LEFT JOIN vtiger_currency_info
|
|
ON vtiger_invoice.currency_id = vtiger_currency_info.id
|
|
LEFT OUTER JOIN vtiger_salesorder
|
|
ON vtiger_salesorder.salesorderid = vtiger_invoice.salesorderid
|
|
LEFT OUTER JOIN vtiger_account
|
|
ON vtiger_account.accountid = vtiger_invoice.accountid
|
|
LEFT JOIN vtiger_contactdetails
|
|
ON vtiger_contactdetails.contactid = vtiger_invoice.contactid
|
|
INNER JOIN vtiger_invoicecf
|
|
ON vtiger_invoice.invoiceid = vtiger_invoicecf.invoiceid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Campaigns":
|
|
//Query modified to sort by assigned to
|
|
//query modified -Code contribute by Geoff(http://forums.vtiger.com/viewtopic.php?t=3376)
|
|
$query = "SELECT vtiger_crmentity.*,
|
|
vtiger_campaign.*
|
|
FROM vtiger_campaign
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_campaign.campaignid
|
|
INNER JOIN vtiger_campaignscf
|
|
ON vtiger_campaign.campaignid = vtiger_campaignscf.campaignid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_users
|
|
ON vtiger_users.id = vtiger_crmentity.smownerid
|
|
LEFT JOIN vtiger_products
|
|
ON vtiger_products.productid = vtiger_campaign.product_id";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ".$where;
|
|
break;
|
|
Case "Users":
|
|
$query = "SELECT id,user_name,first_name,last_name,email1,phone_mobile,phone_work,is_admin,status,
|
|
vtiger_user2role.roleid as roleid,vtiger_role.depth as depth
|
|
FROM vtiger_users
|
|
INNER JOIN vtiger_user2role ON vtiger_users.id = vtiger_user2role.userid
|
|
INNER JOIN vtiger_role ON vtiger_user2role.roleid = vtiger_role.roleid
|
|
WHERE deleted=0 ".$where ;
|
|
break;
|
|
default:
|
|
// vtlib customization: Include the module file
|
|
$focus = CRMEntity::getInstance($module);
|
|
$query = $focus->getListQuery($module, $where);
|
|
// END
|
|
}
|
|
|
|
if($module != 'Users') {
|
|
$query = listQueryNonAdminChange($query, $module);
|
|
}
|
|
$log->debug("Exiting getListQuery method ...");
|
|
return $query;
|
|
}
|
|
|
|
/**Function returns the list of records which an user is entiled to view
|
|
*Param $module - module name
|
|
*Returns a database query - type string
|
|
*/
|
|
|
|
function getReadEntityIds($module)
|
|
{
|
|
global $log;
|
|
$log->debug("Entering getReadEntityIds(".$module.") method ...");
|
|
global $current_user;
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
require('user_privileges/sharing_privileges_'.$current_user->id.'.php');
|
|
$tab_id = getTabid($module);
|
|
|
|
if($module == "Leads") {
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_leaddetails
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0
|
|
AND vtiger_leaddetails.converted = 0 ";
|
|
}elseif($module == "Accounts") {
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_account
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_account.accountid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif ($module == "Potentials") {
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_potential
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_potential.potentialid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif($module == "Contacts") {
|
|
//Query modified to sort by assigned to
|
|
|
|
$query="SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_contactdetails
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_contactdetails.contactid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif($module == "Products") {
|
|
$query = "SELECT DISTINCT vtiger_crmentity.crmid
|
|
FROM vtiger_products
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_products.productid
|
|
LEFT JOIN vtiger_seproductsrel
|
|
ON vtiger_seproductsrel.productid = vtiger_products.productid
|
|
WHERE vtiger_crmentity.deleted = 0
|
|
AND (vtiger_seproductsrel.crmid IS NULL
|
|
OR vtiger_seproductsrel.crmid IN (".getReadEntityIds('Leads').")
|
|
OR vtiger_seproductsrel.crmid IN (".getReadEntityIds('Accounts').")
|
|
OR vtiger_seproductsrel.crmid IN (".getReadEntityIds('Potentials').")
|
|
OR vtiger_seproductsrel.crmid IN (".getReadEntityIds('Contacts').")) ";
|
|
}elseif($module == "PurchaseOrder") {
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_purchaseorder
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_purchaseorder.purchaseorderid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif($module == "SalesOrder") {
|
|
//Query modified to sort by assigned to
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_salesorder
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_salesorder.salesorderid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif($module == "Invoice") {
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_invoice
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_invoice.invoiceid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif($module == "Quotes") {
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_quotes
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_quotes.quoteid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}elseif($module == "HelpDesk") {
|
|
$query = "SELECT vtiger_crmentity.crmid
|
|
FROM vtiger_troubletickets
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid
|
|
LEFT JOIN vtiger_groups
|
|
ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
|
|
$query .= getNonAdminAccessControlQuery($module,$current_user);
|
|
$query .= "WHERE vtiger_crmentity.deleted = 0 ";
|
|
}
|
|
|
|
$log->debug("Exiting getReadEntityIds method ...");
|
|
return $query;
|
|
|
|
}
|
|
|
|
/** Function to get alphabetical search links
|
|
*Param $module - module name
|
|
*Param $action - action
|
|
*Param $fieldname - vtiger_field name
|
|
*Param $query - query
|
|
*Param $type - search type
|
|
*Param $popuptype - popup type
|
|
*Param $recordid - record id
|
|
*Param $return_module - return module
|
|
*Param $append_url - url string to be appended
|
|
*Param $viewid - custom view id
|
|
*Param $groupid - group id
|
|
*Returns an string value
|
|
*/
|
|
function AlphabeticalSearch($module,$action,$fieldname,$query,$type,$popuptype='',$recordid='',$return_module='',$append_url='',$viewid='',$groupid='')
|
|
{
|
|
global $log;
|
|
$log->debug("Entering AlphabeticalSearch(".$module.",".$action.",".$fieldname.",".$query.",".$type.",".$popuptype.",".$recordid.",".$return_module.",".$append_url.",".$viewid.",".$groupid.") method ...");
|
|
if($type=='advanced')
|
|
$flag='&advanced=true';
|
|
|
|
if($popuptype != '')
|
|
$popuptypevalue = "&popuptype=".$popuptype;
|
|
|
|
if($recordid != '')
|
|
$returnvalue = '&recordid='.$recordid;
|
|
if($return_module != '')
|
|
$returnvalue .= '&return_module='.$return_module;
|
|
|
|
// vtlib Customization : For uitype 10 popup during paging
|
|
if($_REQUEST['form'] == 'vtlibPopupView') {
|
|
$returnvalue .= '&form=vtlibPopupView&forfield='.vtlib_purify($_REQUEST['forfield']).'&srcmodule='.vtlib_purify($_REQUEST['srcmodule']).'&forrecord='.vtlib_purify($_REQUEST['forrecord']);
|
|
}
|
|
// END
|
|
|
|
for($var='A',$i =1;$i<=26;$i++,$var++)
|
|
// Mike Crowe Mod --------------------------------------------------------added groupid to url
|
|
$list .= '<td class="searchAlph" id="alpha_'.$i.'" align="center" onClick=\'alphabetic("'.$module.'","gname='.$groupid.'&query='.$query.'&search_field='.$fieldname.'&searchtype=BasicSearch&operator=s&type=alpbt&search_text='.$var.$flag.$popuptypevalue.$returnvalue.$append_url.'","alpha_'.$i.'")\'>'.$var.'</td>';
|
|
|
|
$log->debug("Exiting AlphabeticalSearch method ...");
|
|
return $list;
|
|
}
|
|
|
|
/**Function to get parent name for a given parent id
|
|
*Param $module - module name
|
|
*Param $list_result- result set
|
|
*Param $rset - result set index
|
|
*Returns an string value
|
|
*/
|
|
function getRelatedToEntity($module,$list_result,$rset)
|
|
{
|
|
global $log;
|
|
$log->debug("Entering getRelatedToEntity(".$module.",".$list_result.",".$rset.") method ...");
|
|
|
|
global $adb;
|
|
$seid = $adb->query_result($list_result,$rset,"relatedto");
|
|
$action = "DetailView";
|
|
|
|
if(isset($seid) && $seid != '')
|
|
{
|
|
$parent_module = $parent_module = getSalesEntityType($seid);
|
|
if($parent_module == 'Accounts')
|
|
{
|
|
$numrows= $adb->num_rows($evt_result);
|
|
|
|
$parent_module = $adb->query_result($evt_result,0,'setype');
|
|
$parent_id = $adb->query_result($evt_result,0,'crmid');
|
|
|
|
if ($numrows>1){
|
|
$parent_module ='Multiple';
|
|
$parent_name=$app_strings['LBL_MULTIPLE'];
|
|
}
|
|
//Raju -- Ends
|
|
$parent_query = "SELECT accountname FROM vtiger_account WHERE accountid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = $adb->query_result($parent_result,0,"accountname");
|
|
}
|
|
if($parent_module == 'Leads')
|
|
{
|
|
$parent_query = "SELECT firstname,lastname FROM vtiger_leaddetails WHERE leadid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = getFullNameFromQResult($parent_result,0,"Leads");
|
|
}
|
|
if($parent_module == 'Potentials')
|
|
{
|
|
$parent_query = "SELECT potentialname FROM vtiger_potential WHERE potentialid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = $adb->query_result($parent_result,0,"potentialname");
|
|
}
|
|
if($parent_module == 'Products')
|
|
{
|
|
$parent_query = "SELECT productname FROM vtiger_products WHERE productid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = $adb->query_result($parent_result,0,"productname");
|
|
}
|
|
if($parent_module == 'PurchaseOrder')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_purchaseorder WHERE purchaseorderid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
if($parent_module == 'SalesOrder')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_salesorder WHERE salesorderid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
if($parent_module == 'Invoice')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_invoice WHERE invoiceid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($seid));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
|
|
$parent_value = "<a href='index.php?module=".$parent_module."&action=".$action."&record=".$seid."'>".$parent_name."</a>";
|
|
}
|
|
else
|
|
{
|
|
$parent_value = '';
|
|
}
|
|
$log->debug("Exiting getRelatedToEntity method ...");
|
|
return $parent_value;
|
|
|
|
}
|
|
|
|
/**Function to get parent name for a given parent id
|
|
*Param $module - module name
|
|
*Param $list_result- result set
|
|
*Param $rset - result set index
|
|
*Returns an string value
|
|
*/
|
|
|
|
//used in home page listTop vtiger_files
|
|
function getRelatedTo($module,$list_result,$rset)
|
|
{
|
|
global $adb,$log,$app_strings;
|
|
$tabname = getParentTab();
|
|
if($module == "Documents")
|
|
{
|
|
$notesid = $adb->query_result($list_result,$rset,"notesid");
|
|
$action = "DetailView";
|
|
$evt_query="SELECT vtiger_senotesrel.crmid, vtiger_crmentity.setype
|
|
FROM vtiger_senotesrel
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_senotesrel.crmid = vtiger_crmentity.crmid
|
|
WHERE vtiger_senotesrel.notesid = ?";
|
|
$params = array($notesid);
|
|
}else if($module == "Products")
|
|
{
|
|
$productid = $adb->query_result($list_result,$rset,"productid");
|
|
$action = "DetailView";
|
|
$evt_query="SELECT vtiger_seproductsrel.crmid, vtiger_crmentity.setype
|
|
FROM vtiger_seproductsrel
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_seproductsrel.crmid = vtiger_crmentity.crmid
|
|
WHERE vtiger_seproductsrel.productid =?";
|
|
$params = array($productid);
|
|
}else
|
|
{
|
|
$activity_id = $adb->query_result($list_result,$rset,"activityid");
|
|
$action = "DetailView";
|
|
$evt_query="SELECT vtiger_seactivityrel.crmid, vtiger_crmentity.setype
|
|
FROM vtiger_seactivityrel
|
|
INNER JOIN vtiger_crmentity
|
|
ON vtiger_seactivityrel.crmid = vtiger_crmentity.crmid
|
|
WHERE vtiger_seactivityrel.activityid=?";
|
|
$params = array($activity_id);
|
|
|
|
if($module == 'HelpDesk')
|
|
{
|
|
$activity_id = $adb->query_result($list_result,$rset,"parent_id");
|
|
if($activity_id != '') {
|
|
$evt_query = "SELECT crmid, setype FROM vtiger_crmentity WHERE crmid=?";
|
|
$params = array($activity_id);
|
|
}
|
|
}
|
|
}
|
|
//added by raju to change the related to in emails inot multiple if email is for more than one contact
|
|
$evt_result = $adb->pquery($evt_query, $params);
|
|
$numrows= $adb->num_rows($evt_result);
|
|
|
|
$parent_module = $adb->query_result($evt_result,0,'setype');
|
|
$parent_id = $adb->query_result($evt_result,0,'crmid');
|
|
|
|
|
|
|
|
if ($numrows>1){
|
|
$parent_module ='Multiple';
|
|
$parent_name=$app_strings['LBL_MULTIPLE'];
|
|
}
|
|
//Raju -- Ends
|
|
if($module == 'HelpDesk' && ($parent_module == 'Accounts' || $parent_module == 'Contacts'))
|
|
{
|
|
global $theme;
|
|
$module_icon = '<img src="themes/images/'.$parent_module.'.gif" alt="'.$app_strings[$parent_module].'" title="'.$app_strings[$parent_module].'" border=0 align=center> ';
|
|
}
|
|
|
|
$action = "DetailView";
|
|
if($parent_module == 'Accounts')
|
|
{
|
|
$parent_query = "SELECT accountname FROM vtiger_account WHERE accountid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = textlength_check($adb->query_result($parent_result,0,"accountname"));
|
|
}
|
|
if($parent_module == 'Leads')
|
|
{
|
|
$parent_query = "SELECT firstname,lastname FROM vtiger_leaddetails WHERE leadid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = getFullNameFromQResult($parent_result,0,"Leads");
|
|
}
|
|
if($parent_module == 'Potentials')
|
|
{
|
|
$parent_query = "SELECT potentialname FROM vtiger_potential WHERE potentialid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = textlength_check($adb->query_result($parent_result,0,"potentialname"));
|
|
}
|
|
if($parent_module == 'Products')
|
|
{
|
|
$parent_query = "SELECT productname FROM vtiger_products WHERE productid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"productname");
|
|
}
|
|
if($parent_module == 'Quotes')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_quotes WHERE quoteid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
if($parent_module == 'PurchaseOrder')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_purchaseorder WHERE purchaseorderid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
if($parent_module == 'Invoice')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_invoice WHERE invoiceid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
if($parent_module == 'SalesOrder')
|
|
{
|
|
$parent_query = "SELECT subject FROM vtiger_salesorder WHERE salesorderid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"subject");
|
|
}
|
|
if($parent_module == 'Contacts' && ($module == 'Emails' || $module == 'HelpDesk'))
|
|
{
|
|
$parent_query = "SELECT firstname,lastname FROM vtiger_contactdetails WHERE contactid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = getFullNameFromQResult($parent_result,0,"Contacts");
|
|
}
|
|
if($parent_module == 'Vendors' && ($module == 'Emails'))
|
|
{
|
|
$parent_query = "SELECT vendorname FROM vtiger_vendor WHERE vendorid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"vendorname");
|
|
}
|
|
if($parent_module == 'HelpDesk')
|
|
{
|
|
$parent_query = "SELECT title FROM vtiger_troubletickets WHERE ticketid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"title");
|
|
//if(strlen($parent_name) > 25)
|
|
//{
|
|
$parent_name = textlength_check($parent_name);
|
|
//}
|
|
}
|
|
if($parent_module == 'Campaigns')
|
|
{
|
|
$parent_query = "SELECT campaignname FROM vtiger_campaign WHERE campaignid=?";
|
|
$parent_result = $adb->pquery($parent_query, array($parent_id));
|
|
$parent_name = $adb->query_result($parent_result,0,"campaignname");
|
|
//if(strlen($parent_name) > 25)
|
|
//{
|
|
$parent_name = textlength_check($parent_name);
|
|
//}
|
|
}
|
|
|
|
//added by rdhital for better emails - Raju
|
|
if ($parent_module == 'Multiple')
|
|
{
|
|
$parent_value = $parent_name;
|
|
}
|
|
else
|
|
{
|
|
$parent_value = $module_icon."<a href='index.php?module=".$parent_module."&action=".$action."&record=".$parent_id."&parenttab=".$tabname."'>".textlength_check($parent_name)."</a>";
|
|
}
|
|
//code added by raju ends
|
|
$log->debug("Exiting getRelatedTo method ...");
|
|
return $parent_value;
|
|
|
|
|
|
|
|
}
|
|
|
|
/**Function to get the table headers for a listview
|
|
*Param $navigation_arrray - navigation values in array
|
|
*Param $url_qry - url string
|
|
*Param $module - module name
|
|
*Param $action- action file name
|
|
*Param $viewid - view id
|
|
*Returns an string value
|
|
*/
|
|
|
|
function getTableHeaderNavigation($navigation_array, $url_qry,$module='',$action_val='index',$viewid='')
|
|
{
|
|
global $log,$app_strings;
|
|
$log->debug("Entering getTableHeaderNavigation(".$navigation_array.",". $url_qry.",".$module.",".$action_val.",".$viewid.") method ...");
|
|
global $theme,$current_user;
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
if($module == 'Documents') {
|
|
$output = '<td class="mailSubHeader" width="100%" align="center">';
|
|
} else {
|
|
$output = '<td align="right" style="padding: 5px;">';
|
|
}
|
|
$tabname = getParentTab();
|
|
|
|
$url_string = '';
|
|
|
|
// vtlib Customization : For uitype 10 popup during paging
|
|
if($_REQUEST['form'] == 'vtlibPopupView') {
|
|
$url_string .= '&form=vtlibPopupView&forfield='.vtlib_purify($_REQUEST['forfield']).'&srcmodule='.vtlib_purify($_REQUEST['srcmodule']).'&forrecord='.vtlib_purify($_REQUEST['forrecord']);
|
|
}
|
|
// END
|
|
|
|
if($module == 'Calendar' && $action_val == 'index')
|
|
{
|
|
if($_REQUEST['view'] == ''){
|
|
if($current_user->activity_view == "This Year"){
|
|
$mysel = 'year';
|
|
}else if($current_user->activity_view == "This Month"){
|
|
$mysel = 'month';
|
|
}else if($current_user->activity_view == "This Week"){
|
|
$mysel = 'week';
|
|
}else{
|
|
$mysel = 'day';
|
|
}
|
|
}
|
|
$data_value=date('Y-m-d H:i:s');
|
|
preg_match('/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/',$data_value,$value);
|
|
$date_data = Array(
|
|
'day'=>$value[3],
|
|
'month'=>$value[2],
|
|
'year'=>$value[1],
|
|
'hour'=>$value[4],
|
|
'min'=>$value[5],
|
|
);
|
|
$tab_type = ($_REQUEST['subtab'] == '')?'event':vtlib_purify($_REQUEST['subtab']);
|
|
$url_string .= isset($_REQUEST['view'])?"&view=".vtlib_purify($_REQUEST['view']):"&view=".$mysel;
|
|
$url_string .= isset($_REQUEST['subtab'])?"&subtab=".vtlib_purify($_REQUEST['subtab']):'';
|
|
$url_string .= isset($_REQUEST['viewOption'])?"&viewOption=".vtlib_purify($_REQUEST['viewOption']):'&viewOption=listview';
|
|
$url_string .= isset($_REQUEST['day'])?"&day=".vtlib_purify($_REQUEST['day']):'&day='.$date_data['day'];
|
|
$url_string .= isset($_REQUEST['week'])?"&week=".vtlib_purify($_REQUEST['week']):'';
|
|
$url_string .= isset($_REQUEST['month'])?"&month=".vtlib_purify($_REQUEST['month']):'&month='.$date_data['month'];
|
|
$url_string .= isset($_REQUEST['year'])?"&year=".vtlib_purify($_REQUEST['year']):"&year=".$date_data['year'];
|
|
$url_string .= isset($_REQUEST['n_type'])?"&n_type=".vtlib_purify($_REQUEST['n_type']):'';
|
|
$url_string .= isset($_REQUEST['search_option'])?"&search_option=".vtlib_purify($_REQUEST['search_option']):'';
|
|
}
|
|
if($module == 'Calendar' && $action_val != 'index') //added for the All link from the homepage -- ticket 5211
|
|
$url_string .= isset($_REQUEST['from_homepage'])?"&from_homepage=".vtlib_purify($_REQUEST['from_homepage']):'';
|
|
|
|
if(($navigation_array['prev']) != 0)
|
|
{
|
|
if($module == 'Calendar' && $action_val == 'index')
|
|
{
|
|
//$output .= '<a href="index.php?module=Calendar&action=index&start=1'.$url_string.'" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="themes/images/start.gif" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start=1\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
//$output .= '<a href="index.php?module=Calendar&action=index&start='.$navigation_array['prev'].$url_string.'" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="themes/images/previous.gif" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start='.$navigation_array['prev'].'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
else if($action_val == "FindDuplicate")
|
|
{
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}elseif($action_val == 'UnifiedSearch'){
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
elseif($module == 'Documents')
|
|
{
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'&folderid='.$action_val.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
else{
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$output .= '<img src="' . vtiger_imageurl('start_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
$output .= '<img src="' . vtiger_imageurl('previous_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
}
|
|
|
|
if($module == 'Calendar' && $action_val == 'index'){
|
|
$jsNavigate = "cal_navigation('$tab_type','$url_string','&start='+this.value);";
|
|
}else if($action_val == "FindDuplicate"){
|
|
$jsNavigate = "getDuplicateListViewEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string');";
|
|
}elseif($action_val == 'UnifiedSearch'){
|
|
$jsNavigate = "getUnifiedSearchEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string');";
|
|
}elseif($module == 'Documents'){
|
|
$jsNavigate = "getListViewEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string&folderid=$action_val');";
|
|
}else{
|
|
$jsNavigate = "getListViewEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string');";
|
|
}
|
|
if($module == 'Documents'){
|
|
$url = '&folderid='.$action_val;
|
|
}else{
|
|
$url = '';
|
|
}
|
|
$jsHandler = "return VT_disableFormSubmit(event);";
|
|
$output .= "<input class='small' name='pagenum' type='text' value='{$navigation_array['current']}'
|
|
style='width: 3em;margin-right: 0.7em;' onchange=\"$jsNavigate\"
|
|
onkeypress=\"$jsHandler\">";
|
|
$output .= "<span name='".$module."_listViewCountContainerName' class='small' style='white-space: nowrap;'>";
|
|
$output .= $app_strings['LBL_LIST_OF'].' '.$navigation_array['verylast'].'</span>';
|
|
|
|
if(($navigation_array['next']) !=0)
|
|
{
|
|
if($module == 'Calendar' && $action_val == 'index')
|
|
{
|
|
//$output .= '<a href="index.php?module=Calendar&action=index&start='.$navigation_array['next'].$url_string.'" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="themes/images/next.gif" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start='.$navigation_array['next'].'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
//$output .= '<a href="index.php?module=Calendar&action=index&start='.$navigation_array['verylast'].$url_string.'" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="themes/images/end.gif" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start='.$navigation_array['verylast'].'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
else if($action_val == "FindDuplicate")
|
|
{
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}elseif($action_val == 'UnifiedSearch'){
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="themes/images/end.gif" border="0" align="absmiddle"></a> ';
|
|
}
|
|
elseif($module == 'Documents')
|
|
{
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'&folderid='.$action_val.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'&folderid='.$action_val.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
else
|
|
{
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$output .= '<img src="' . vtiger_imageurl('next_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
$output .= '<img src="' . vtiger_imageurl('end_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
}
|
|
$output .= '</td>';
|
|
$log->debug("Exiting getTableHeaderNavigation method ...");
|
|
if($navigation_array['first']=='')
|
|
return;
|
|
else
|
|
return $output;
|
|
}
|
|
|
|
function getPopupCheckquery($current_module,$relmodule,$relmod_recordid)
|
|
{
|
|
global $log,$adb;
|
|
$log->debug("Entering getPopupCheckquery(".$current_module.",".$relmodule.",".$relmod_recordid.") method ...");
|
|
if($current_module == "Contacts")
|
|
{
|
|
if($relmodule == "Accounts" && $relmod_recordid != '')
|
|
$condition = "and vtiger_account.accountid= ".$relmod_recordid;
|
|
|
|
elseif($relmodule == "Potentials")
|
|
{
|
|
$query = "select contactid from vtiger_contpotentialrel where potentialid=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$contact_id = $adb->query_result($result,0,"contactid");
|
|
if($contact_id != '' && $contact_id != 0)
|
|
$condition = "and vtiger_contactdetails.contactid= ".$contact_id;
|
|
else
|
|
{
|
|
$query = "select related_to from vtiger_potential where potentialid=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$acc_id = $adb->query_result($result,0,"related_to");
|
|
if($acc_id != ''){
|
|
$condition = "and vtiger_contactdetails.accountid= ".$acc_id;
|
|
}
|
|
}
|
|
}
|
|
elseif($relmodule == "Quotes")
|
|
{
|
|
|
|
$query = "select accountid,contactid from vtiger_quotes where quoteid=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$contactid = $adb->query_result($result,0,"contactid");
|
|
if($contactid != '' && $contactid != 0)
|
|
$condition = "and vtiger_contactdetails.contactid= ".$contactid;
|
|
else
|
|
{
|
|
$account_id = $adb->query_result($result,0,"accountid");
|
|
if($account_id != '')
|
|
$condition = "and vtiger_contactdetails.accountid= ".$account_id;
|
|
}
|
|
}
|
|
elseif($relmodule == "PurchaseOrder")
|
|
{
|
|
$query = "select contactid from vtiger_purchaseorder where purchaseorderid=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$contact_id = $adb->query_result($result,0,"contactid");
|
|
if($contact_id != '')
|
|
$condition = "and vtiger_contactdetails.contactid= ".$contact_id;
|
|
else
|
|
$condition = "and vtiger_contactdetails.contactid= 0";
|
|
}
|
|
elseif($relmodule == "SalesOrder")
|
|
{
|
|
$query = "select accountid,contactid from vtiger_salesorder where salesorderid=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$contact_id = $adb->query_result($result,0,"contactid");
|
|
if($contact_id != 0 && $contact_id != '')
|
|
$condition = "and vtiger_contactdetails.contactid=".$contact_id;
|
|
else
|
|
{
|
|
$account_id = $adb->query_result($result,0,"accountid");
|
|
if($account_id != '')
|
|
$condition = "and vtiger_contactdetails.accountid= ".$account_id;
|
|
}
|
|
}
|
|
elseif($relmodule == "Invoice")
|
|
{
|
|
$query = "select accountid,contactid from vtiger_invoice where invoiceid=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$contact_id = $adb->query_result($result,0,"contactid");
|
|
if($contact_id != '' && $contact_id != 0)
|
|
$condition = " and vtiger_contactdetails.contactid=".$contact_id;
|
|
else
|
|
{
|
|
$account_id = $adb->query_result($result,0,"accountid");
|
|
if($account_id != '')
|
|
$condition = " and vtiger_contactdetails.accountid=".$account_id;
|
|
}
|
|
}
|
|
elseif($relmodule == "Campaigns")
|
|
{
|
|
$query = "select contactid from vtiger_campaigncontrel where campaignid =?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$rows = $adb->num_rows($result);
|
|
if($rows != 0)
|
|
{
|
|
$j = 0;
|
|
$contactid_comma = "(";
|
|
for($k=0; $k < $rows; $k++)
|
|
{
|
|
$contactid = $adb->query_result($result,$k,'contactid');
|
|
$contactid_comma.=$contactid;
|
|
if($k < ($rows-1))
|
|
$contactid_comma.=', ';
|
|
}
|
|
$contactid_comma.= ")";
|
|
}
|
|
else
|
|
$contactid_comma = "(0)";
|
|
$condition = "and vtiger_contactdetails.contactid in ".$contactid_comma;
|
|
}
|
|
elseif($relmodule == "Products")
|
|
{
|
|
$query = "select crmid from vtiger_seproductsrel where productid=? and setype=?";
|
|
$result = $adb->pquery($query, array($relmod_recordid,"Contacts"));
|
|
$rows = $adb->num_rows($result);
|
|
if($rows != 0)
|
|
{
|
|
$j = 0;
|
|
$contactid_comma = "(";
|
|
for($k=0; $k < $rows; $k++)
|
|
{
|
|
$contactid = $adb->query_result($result,$k,'crmid');
|
|
$contactid_comma.=$contactid;
|
|
if($k < ($rows-1))
|
|
$contactid_comma.=', ';
|
|
}
|
|
$contactid_comma.= ")";
|
|
}
|
|
else
|
|
$contactid_comma = "(0)";
|
|
$condition = "and vtiger_contactdetails.contactid in ".$contactid_comma;
|
|
}
|
|
elseif($relmodule == "HelpDesk" || $relmodule == "Trouble Tickets")
|
|
{
|
|
$query = "select parent_id from vtiger_troubletickets where ticketid =?";
|
|
$result = $adb->pquery($query, array($relmod_recordid));
|
|
$parent_id = $adb->query_result($result,0,"parent_id");
|
|
if($parent_id != ""){
|
|
$crmquery = "select setype from vtiger_crmentity where crmid=?";
|
|
$parentmodule_id = $adb->pquery($crmquery, array($parent_id));
|
|
$parent_modname = $adb->query_result($parentmodule_id,0,"setype");
|
|
if($parent_modname == "Accounts")
|
|
$condition = "and vtiger_contactdetails.accountid= ".$parent_id;
|
|
if($parent_modname == "Contacts")
|
|
$condition = "and vtiger_contactdetails.contactid= ".$parent_id;
|
|
}
|
|
else
|
|
$condition = " and vtiger_contactdetails.contactid=0";
|
|
|
|
}
|
|
}
|
|
elseif($current_module == "Potentials")
|
|
{
|
|
if($relmodule == 'Accounts' || $relmodule == 'Contacts')
|
|
{
|
|
if($relmodule == 'Contacts') {
|
|
$pot_query = "select vtiger_crmentity.crmid,vtiger_contactdetails.contactid,vtiger_potential.potentialid from vtiger_potential inner join vtiger_contactdetails on vtiger_contactdetails.contactid=vtiger_potential.related_to inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_contactdetails.contactid where vtiger_crmentity.deleted=0 and vtiger_potential.related_to=?";
|
|
} else {
|
|
$pot_query = "select vtiger_crmentity.crmid,vtiger_account.accountid,vtiger_potential.potentialid from vtiger_potential inner join vtiger_account on vtiger_account.accountid=vtiger_potential.related_to inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_account.accountid where vtiger_crmentity.deleted=0 and vtiger_potential.related_to=?";
|
|
}
|
|
$pot_result = $result = $adb->pquery($pot_query, array($relmod_recordid));
|
|
$rows = $adb->num_rows($pot_result);
|
|
$potids_comma = "";
|
|
if($rows != 0)
|
|
{
|
|
$j = 0;
|
|
$potids_comma .= "(";
|
|
for($k=0; $k < $rows; $k++)
|
|
{
|
|
$potential_ids = $adb->query_result($pot_result,$k,'potentialid');
|
|
$potids_comma.=$potential_ids;
|
|
if($k < ($rows-1))
|
|
$potids_comma.=',';
|
|
}
|
|
$potids_comma.= ")";
|
|
}
|
|
else
|
|
$potids_comma = "(0)";
|
|
$condition ="and vtiger_potential.potentialid in ".$potids_comma;
|
|
}
|
|
|
|
}
|
|
else if($current_module == "Products")
|
|
{
|
|
if($relmodule == 'Accounts')
|
|
{
|
|
$pro_query = "select productid from vtiger_seproductsrel where setype='Accounts' and crmid=?";
|
|
$pro_result = $result = $adb->pquery($pro_query, array($relmod_recordid));
|
|
$rows = $adb->num_rows($pro_result);
|
|
if($rows != 0)
|
|
{
|
|
$proids_comma = "(";
|
|
for($k=0; $k < $rows; $k++)
|
|
{
|
|
$product_ids = $adb->query_result($pro_result,$k,'productid');
|
|
$proids_comma .= $product_ids;
|
|
if($k < ($rows-1))
|
|
$proids_comma.=',';
|
|
}
|
|
$proids_comma.= ")";
|
|
}
|
|
else
|
|
$proids_comma = "(0)";
|
|
$condition ="and vtiger_products.productid in ".$proids_comma;
|
|
}
|
|
}
|
|
else if($current_module == 'Quotes')
|
|
{
|
|
if($relmodule == 'Accounts')
|
|
{
|
|
$quote_query = "select quoteid from vtiger_quotes where accountid=?";
|
|
$quote_result = $result = $adb->pquery($quote_query, array($relmod_recordid));
|
|
$rows = $adb->num_rows($quote_result);
|
|
if($rows != 0)
|
|
{
|
|
$j = 0;
|
|
$qtids_comma = "(";
|
|
for($k=0; $k < $rows; $k++)
|
|
{
|
|
$quote_ids = $adb->query_result($quote_result,$k,'quoteid');
|
|
$qtids_comma.=$quote_ids;
|
|
if($k < ($rows-1))
|
|
$qtids_comma.=',';
|
|
}
|
|
$qtids_comma.= ")";
|
|
}
|
|
else
|
|
$qtids_comma = "(0)";
|
|
$condition ="and vtiger_quotes.quoteid in ".$qtids_comma;
|
|
}
|
|
|
|
}
|
|
else if($current_module == 'SalesOrder')
|
|
{
|
|
if($relmodule == 'Accounts')
|
|
{
|
|
$SO_query = "select salesorderid from vtiger_salesorder where accountid=?";
|
|
$SO_result = $result = $adb->pquery($SO_query, array($relmod_recordid));
|
|
$rows = $adb->num_rows($SO_result);
|
|
if($rows != 0)
|
|
{
|
|
$SOids_comma = "(";
|
|
for($k=0; $k < $rows; $k++)
|
|
{
|
|
$SO_ids = $adb->query_result($SO_result,$k,'salesorderid');
|
|
$SOids_comma.=$SO_ids;
|
|
if($k < ($rows-1))
|
|
$SOids_comma.=',';
|
|
}
|
|
$SOids_comma.= ")";
|
|
}
|
|
else
|
|
$SOids_comma = "(0)";
|
|
$condition ="and vtiger_salesorder.salesorderid in ".$SOids_comma;
|
|
}
|
|
|
|
}
|
|
else
|
|
$condition = '';
|
|
$where = $condition;
|
|
$log->debug("Exiting getPopupCheckquery method ...");
|
|
return $where;
|
|
|
|
|
|
}
|
|
|
|
/**This function return the entity ids that need to be excluded in popup listview for a given record
|
|
Param $currentmodule - modulename of the entity to be selected
|
|
Param $returnmodule - modulename for which the entity is assingned
|
|
Param $recordid - the record id for which the entity is assigned
|
|
Return type string.
|
|
*/
|
|
|
|
function getRelCheckquery($currentmodule,$returnmodule,$recordid)
|
|
{
|
|
global $log,$adb;
|
|
$log->debug("Entering getRelCheckquery(".$currentmodule.",".$returnmodule.",".$recordid.") method ...");
|
|
$skip_id = Array();
|
|
$where_relquery = "";
|
|
$params = array();
|
|
if($currentmodule=="Contacts" && $returnmodule == "Potentials")
|
|
{
|
|
$reltable = 'vtiger_contpotentialrel';
|
|
$condition = 'WHERE potentialid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'contactid';
|
|
$table = 'vtiger_contactdetails';
|
|
}
|
|
elseif($currentmodule=="Contacts" && $returnmodule == "Vendors")
|
|
{
|
|
$reltable = 'vtiger_vendorcontactrel';
|
|
$condition = 'WHERE vendorid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'contactid';
|
|
$table = 'vtiger_contactdetails';
|
|
}
|
|
elseif($currentmodule=="Contacts" && $returnmodule == "Campaigns")
|
|
{
|
|
$reltable = 'vtiger_campaigncontrel';
|
|
$condition = 'WHERE campaignid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'contactid';
|
|
$table = 'vtiger_contactdetails';
|
|
}
|
|
elseif($currentmodule=="Contacts" && $returnmodule == "Calendar")
|
|
{
|
|
$reltable = 'vtiger_cntactivityrel';
|
|
$condition = 'WHERE activityid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'contactid';
|
|
$table = 'vtiger_contactdetails';
|
|
}
|
|
elseif($currentmodule=="Leads" && $returnmodule == "Campaigns")
|
|
{
|
|
$reltable = 'vtiger_campaignleadrel';
|
|
$condition = 'WHERE campaignid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'leadid';
|
|
$table = 'vtiger_leaddetails';
|
|
}
|
|
elseif($currentmodule=="Users" && $returnmodule == "Calendar")
|
|
{
|
|
$reltable = 'vtiger_salesmanactivityrel';
|
|
$condition = 'WHERE activityid = ?';
|
|
array_push($params, $recordid);
|
|
$selectfield = 'smid';
|
|
$field = 'id';
|
|
$table = 'vtiger_users';
|
|
}
|
|
elseif($currentmodule=="Campaigns" && $returnmodule == "Leads")
|
|
{
|
|
$reltable = 'vtiger_campaignleadrel';
|
|
$condition = 'WHERE leadid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'campaignid';
|
|
$table = 'vtiger_campaign';
|
|
}
|
|
elseif($currentmodule=="Campaigns" && $returnmodule == "Contacts")
|
|
{
|
|
$reltable = 'vtiger_campaigncontrel';
|
|
$condition = 'WHERE contactid = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield = 'campaignid';
|
|
$table = 'vtiger_campaign';
|
|
}
|
|
elseif($currentmodule == "Products" && ($returnmodule == "Potentials" || $returnmodule == "Accounts" || $returnmodule == "Contacts" || $returnmodule == "Leads"))
|
|
{
|
|
$reltable = 'vtiger_seproductsrel';
|
|
$condition = 'WHERE crmid = ? and setype = ?';
|
|
array_push($params, $recordid, $returnmodule);
|
|
$field = $selectfield ='productid';
|
|
$table = 'vtiger_products';
|
|
}
|
|
elseif(($currentmodule == "Leads" || $currentmodule == "Accounts" || $currentmodule == "Potentials" || $currentmodule == "Contacts") && $returnmodule == "Products")//added to fix the issues(ticket 4001,4002 and 4003)
|
|
{
|
|
$reltable = 'vtiger_seproductsrel';
|
|
$condition = 'WHERE productid = ? and setype = ?';
|
|
array_push($params, $recordid, $currentmodule);
|
|
$selectfield ='crmid';
|
|
if($currentmodule == "Leads")
|
|
{
|
|
$field = 'leadid';
|
|
$table = 'vtiger_leaddetails';
|
|
}
|
|
elseif($currentmodule == "Accounts")
|
|
{
|
|
$field = 'accountid';
|
|
$table = 'vtiger_account';
|
|
}
|
|
elseif($currentmodule == "Contacts")
|
|
{
|
|
$field = 'contactid';
|
|
$table = 'vtiger_contactdetails';
|
|
}
|
|
elseif($currentmodule == "Potentials")
|
|
{
|
|
$field = 'potentialid';
|
|
$table = 'vtiger_potential';
|
|
}
|
|
}
|
|
elseif($currentmodule == "Products" && $returnmodule =="Vendors")
|
|
{
|
|
$reltable = 'vtiger_products';
|
|
$condition = 'WHERE vendor_id = ?';
|
|
array_push($params, $recordid);
|
|
$field = $selectfield ='productid';
|
|
$table = 'vtiger_products';
|
|
}
|
|
elseif($currentmodule == "Documents")
|
|
{
|
|
$reltable = "vtiger_senotesrel";
|
|
$selectfield = "notesid";
|
|
$condition = "where crmid = ?";
|
|
array_push($params, $recordid);
|
|
$table = "vtiger_notes";
|
|
$field = "notesid";
|
|
}
|
|
//end
|
|
if($reltable != null) {
|
|
$query = "SELECT ".$selectfield." FROM ".$reltable." ".$condition;
|
|
} elseif($currentmodule != $returnmodule && $returnmodule!="") { // If none of the above relation matches, then the relation is assumed to be stored in vtiger_crmentityrel
|
|
$query = "SELECT relcrmid AS relatedid FROM vtiger_crmentityrel WHERE crmid = ? and module = ? and relmodule = ?
|
|
UNION SELECT crmid AS relatedid FROM vtiger_crmentityrel WHERE relcrmid = ? and relmodule = ? and module = ?";
|
|
array_push($params, $recordid, $returnmodule, $currentmodule, $recordid, $returnmodule, $currentmodule);
|
|
|
|
$focus_obj = CRMEntity::getInstance($currentmodule);
|
|
$field = $focus_obj->table_index;
|
|
$table = $focus_obj->table_name;
|
|
$selectfield = 'relatedid';
|
|
}
|
|
|
|
if($query !='')
|
|
{
|
|
$result = $adb->pquery($query, $params);
|
|
if($adb->num_rows($result)!=0)
|
|
{
|
|
for($k=0;$k < $adb->num_rows($result);$k++)
|
|
{
|
|
$skip_id[]=$adb->query_result($result,$k,$selectfield);
|
|
}
|
|
$skipids = implode(",", constructList($skip_id,'INTEGER'));
|
|
if (count($skipids) > 0) {
|
|
$where_relquery = "and ".$table.".".$field." not in (". $skipids .")";
|
|
}
|
|
}
|
|
}
|
|
$log->debug("Exiting getRelCheckquery method ...");
|
|
return $where_relquery;
|
|
}
|
|
|
|
/**This function stores the variables in session sent in list view url string.
|
|
*Param $lv_array - list view session array
|
|
*Param $noofrows - no of rows
|
|
*Param $max_ent - maximum entires
|
|
*Param $module - module name
|
|
*Param $related - related module
|
|
*Return type void.
|
|
*/
|
|
|
|
function setSessionVar($lv_array,$noofrows,$max_ent,$module='',$related='')
|
|
{
|
|
$start = '';
|
|
if($noofrows>=1)
|
|
{
|
|
$lv_array['start']=1;
|
|
$start = 1;
|
|
}
|
|
elseif($related!='' && $noofrows == 0)
|
|
{
|
|
$lv_array['start']=1;
|
|
$start = 1;
|
|
}
|
|
else
|
|
{
|
|
$lv_array['start']=0;
|
|
$start = 0;
|
|
}
|
|
|
|
if(isset($_REQUEST['start']) && $_REQUEST['start'] !='')
|
|
{
|
|
$lv_array['start']=ListViewSession::getRequestStartPage();
|
|
$start = ListViewSession::getRequestStartPage();
|
|
}elseif($_SESSION['rlvs'][$module][$related]['start'] != '')
|
|
{
|
|
|
|
if($related!='')
|
|
{
|
|
$lv_array['start']=$_SESSION['rlvs'][$module][$related]['start'];
|
|
$start = $_SESSION['rlvs'][$module][$related]['start'];
|
|
}
|
|
}
|
|
if(isset($_REQUEST['viewname']) && $_REQUEST['viewname'] !='')
|
|
$lv_array['viewname']=vtlib_purify($_REQUEST['viewname']);
|
|
|
|
if($related=='')
|
|
$_SESSION['lvs'][$_REQUEST['module']]=$lv_array;
|
|
else
|
|
$_SESSION['rlvs'][$module][$related] = $lv_array;
|
|
|
|
if ($start < ceil ($noofrows / $max_ent) && $start !='')
|
|
{
|
|
$start = ceil ($noofrows / $max_ent);
|
|
if($related=='')
|
|
$_SESSION['lvs'][$currentModule]['start'] = $start;
|
|
}
|
|
}
|
|
|
|
/**Function to get the table headers for related listview
|
|
*Param $navigation_arrray - navigation values in array
|
|
*Param $url_qry - url string
|
|
*Param $module - module name
|
|
*Param $action- action file name
|
|
*Param $viewid - view id
|
|
*Returns an string value
|
|
*/
|
|
|
|
function getRelatedTableHeaderNavigation($navigation_array, $url_qry,$module,$related_module,
|
|
$recordid) {
|
|
global $log, $app_strings, $adb;
|
|
$log->debug("Entering getTableHeaderNavigation(".$navigation_array.",". $url_qry.",".$module.",".$action_val.",".$viewid.") method ...");
|
|
global $theme;
|
|
$relatedTabId = getTabid($related_module);
|
|
$tabid = getTabid($module);
|
|
|
|
$relatedListResult = $adb->pquery('SELECT * FROM vtiger_relatedlists WHERE tabid=? AND
|
|
related_tabid=?', array($tabid,$relatedTabId));
|
|
if(empty($relatedListResult)) return;
|
|
$relatedListRow = $adb->fetch_row($relatedListResult);
|
|
$header = $relatedListRow['label'];
|
|
$actions = $relatedListRow['actions'];
|
|
$functionName = $relatedListRow['name'];
|
|
|
|
$urldata = "module=$module&action={$module}Ajax&file=DetailViewAjax&record={$recordid}&".
|
|
"ajxaction=LOADRELATEDLIST&header={$header}&relation_id={$relatedListRow['relation_id']}".
|
|
"&actions={$actions}&{$url_qry}";
|
|
|
|
$formattedHeader = str_replace(' ','',$header);
|
|
$target = 'tbl_'.$module.'_'.$formattedHeader;
|
|
$imagesuffix = $module.'_'.$formattedHeader;
|
|
|
|
$output = '<td align="right" style="padding="5px;">';
|
|
if(($navigation_array['prev']) != 0) {
|
|
$output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\''. $urldata.'&start=1\',\''. $target.'\',\''. $imagesuffix.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\''. $urldata.'&start='.$navigation_array['prev'].'\',\''. $target.'\',\''. $imagesuffix.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
} else {
|
|
$output .= '<img src="' . vtiger_imageurl('start_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
$output .= '<img src="' . vtiger_imageurl('previous_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
}
|
|
|
|
$jsHandler = "return VT_disableFormSubmit(event);";
|
|
$output .= "<input class='small' name='pagenum' type='text' value='{$navigation_array['current']}'
|
|
style='width: 3em;margin-right: 0.7em;' onchange=\"loadRelatedListBlock('{$urldata}&start='+this.value+'','{$target}','{$imagesuffix}');\"
|
|
onkeypress=\"$jsHandler\">";
|
|
$output .= "<span name='listViewCountContainerName' class='small' style='white-space: nowrap;'>";
|
|
$computeCount = $_REQUEST['withCount'];
|
|
if(PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true
|
|
|| ((boolean) $computeCount) == true){
|
|
$output .= $app_strings['LBL_LIST_OF'].' '.$navigation_array['verylast'];
|
|
}else{
|
|
$output .= "<img src='".vtiger_imageurl('windowRefresh.gif',$theme)."' alt='".$app_strings['LBL_HOME_COUNT']."'
|
|
onclick=\"loadRelatedListBlock('{$urldata}&withCount=true&start={$navigation_array['current']}','{$target}','{$imagesuffix}');\"
|
|
align='absmiddle' name='".$module."_listViewCountRefreshIcon'/>
|
|
<img name='".$module."_listViewCountContainerBusy' src='".vtiger_imageurl('vtbusy.gif',$theme)."' style='display: none;'
|
|
align='absmiddle' alt='".$app_strings['LBL_LOADING']."'>";
|
|
}
|
|
$output .= '</span>';
|
|
|
|
if(($navigation_array['next']) !=0) {
|
|
$output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\''. $urldata.'&start='.$navigation_array['next'].'\',\''. $target.'\',\''. $imagesuffix.'\');"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\''. $urldata.'&start='.$navigation_array['verylast'].'\',\''. $target.'\',\''. $imagesuffix.'\');"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
} else {
|
|
$output .= '<img src="' . vtiger_imageurl('next_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
$output .= '<img src="' . vtiger_imageurl('end_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
}
|
|
$output .= '</td>';
|
|
$log->debug("Exiting getTableHeaderNavigation method ...");
|
|
if($navigation_array['first']=='')
|
|
return;
|
|
else
|
|
return $output;
|
|
}
|
|
|
|
/** Function to get the Edit link details for ListView and RelatedListView
|
|
* @param string $module - module name
|
|
* @param int $entity_id - record id
|
|
* @param string $relatedlist - string "relatedlist" or may be empty. if empty means ListView else relatedlist
|
|
* @param string $returnset - may be empty in case of ListView. For relatedlists, return_module, return_action and return_id values will be passed like &return_module=Accounts&return_action=CallRelatedList&return_id=10
|
|
* return string $edit_link - url string which cotains the editlink details (module, action, record, etc.,) like index.php?module=Accounts&action=EditView&record=10
|
|
*/
|
|
function getListViewEditLink($module,$entity_id,$relatedlist,$returnset,$result,$count)
|
|
{
|
|
global $adb;
|
|
$return_action = "index";
|
|
$edit_link = "index.php?module=$module&action=EditView&record=$entity_id";
|
|
$tabname = getParentTab();
|
|
//Added to fix 4600
|
|
$url = getBasic_Advance_SearchURL();
|
|
|
|
//This is relatedlist listview
|
|
if($relatedlist == 'relatedlist')
|
|
{
|
|
$edit_link .= $returnset;
|
|
}
|
|
else
|
|
{
|
|
if($module == 'Calendar')
|
|
{
|
|
$return_action = "ListView";
|
|
$actvity_type = $adb->query_result($result,$count,'type');
|
|
if($actvity_type == 'Task')
|
|
$edit_link .= '&activity_mode=Task';
|
|
else
|
|
$edit_link .= '&activity_mode=Events';
|
|
}
|
|
$edit_link .= "&return_module=$module&return_action=$return_action";
|
|
}
|
|
|
|
$edit_link .= "&parenttab=".$tabname.$url;
|
|
//Appending view name while editing from ListView
|
|
$edit_link .= "&return_viewname=".$_SESSION['lvs'][$module]["viewname"];
|
|
if($module == 'Emails')
|
|
$edit_link = 'javascript:;" onclick="OpenCompose(\''.$entity_id.'\',\'edit\');';
|
|
return $edit_link;
|
|
}
|
|
|
|
/** Function to get the Del link details for ListView and RelatedListView
|
|
* @param string $module - module name
|
|
* @param int $entity_id - record id
|
|
* @param string $relatedlist - string "relatedlist" or may be empty. if empty means ListView else relatedlist
|
|
* @param string $returnset - may be empty in case of ListView. For relatedlists, return_module, return_action and return_id values will be passed like &return_module=Accounts&return_action=CallRelatedList&return_id=10
|
|
* return string $del_link - url string which cotains the editlink details (module, action, record, etc.,) like index.php?module=Accounts&action=Delete&record=10
|
|
*/
|
|
function getListViewDeleteLink($module,$entity_id,$relatedlist,$returnset)
|
|
{
|
|
$tabname = getParentTab();
|
|
$current_module = vtlib_purify($_REQUEST['module']);
|
|
$viewname = $_SESSION['lvs'][$current_module]['viewname'];
|
|
|
|
//Added to fix 4600
|
|
$url = getBasic_Advance_SearchURL();
|
|
|
|
if($module == "Calendar")
|
|
$return_action = "ListView";
|
|
else
|
|
$return_action = "index";
|
|
|
|
//This is added to avoid the del link in Product related list for the following modules
|
|
$avoid_del_links = Array("PurchaseOrder","SalesOrder","Quotes","Invoice");
|
|
|
|
if(($current_module == 'Products' || $current_module == 'Services') && in_array($module,$avoid_del_links))
|
|
{
|
|
return '';
|
|
}
|
|
|
|
$del_link = "index.php?module=$module&action=Delete&record=$entity_id";
|
|
|
|
//This is added for relatedlist listview
|
|
if($relatedlist == 'relatedlist')
|
|
{
|
|
$del_link .= $returnset;
|
|
}
|
|
else
|
|
{
|
|
$del_link .= "&return_module=$module&return_action=$return_action";
|
|
}
|
|
|
|
$del_link .= "&parenttab=".$tabname."&return_viewname=".$viewname.$url;
|
|
|
|
// vtlib customization: override default delete link for custom modules
|
|
$requestModule = vtlib_purify($_REQUEST['module']);
|
|
$requestRecord = vtlib_purify($_REQUEST['record']);
|
|
$requestAction = vtlib_purify($_REQUEST['action']);
|
|
$parenttab = vtlib_purify($_REQUEST['parenttab']);
|
|
$isCustomModule = vtlib_isCustomModule($requestModule);
|
|
if($requestAction==$requestModule."Ajax"){
|
|
$requestAction=vtlib_purify($_REQUEST['file']);
|
|
}
|
|
if($isCustomModule && !in_array($requestAction, Array('index','ListView'))) {
|
|
$del_link = "index.php?module=$requestModule&action=updateRelations&parentid=$requestRecord";
|
|
$del_link .= "&destination_module=$module&idlist=$entity_id&mode=delete&parenttab=$parenttab";
|
|
}
|
|
// END
|
|
|
|
return $del_link;
|
|
}
|
|
|
|
/* Function to get the Entity Id of a given Entity Name */
|
|
function getEntityId($module, $entityName) {
|
|
global $log, $adb;
|
|
$log->info("in getEntityId ".$entityName);
|
|
|
|
$query = "select fieldname,tablename,entityidfield from vtiger_entityname where modulename = ?";
|
|
$result = $adb->pquery($query, array($module));
|
|
$fieldsname = $adb->query_result($result,0,'fieldname');
|
|
$tablename = $adb->query_result($result,0,'tablename');
|
|
$entityidfield = $adb->query_result($result,0,'entityidfield');
|
|
if(!(strpos($fieldsname,',') === false)) {
|
|
$fieldlists = explode(',',$fieldsname);
|
|
$fieldsname = "concat(";
|
|
$fieldsname = $fieldsname.implode(",' ',",$fieldlists);
|
|
$fieldsname = $fieldsname.")";
|
|
}
|
|
|
|
if($entityName != '') {
|
|
$sql = "select $entityidfield from $tablename INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = $tablename.$entityidfield " .
|
|
" WHERE vtiger_crmentity.deleted = 0 and $fieldsname=?";
|
|
$result = $adb->pquery($sql, array($entityName));
|
|
if($adb->num_rows($result) > 0) {
|
|
$entityId = $adb->query_result($result,0,$entityidfield);
|
|
}
|
|
}
|
|
if(!empty($entityId))
|
|
return $entityId;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
/** function used to get the parent id for the given input parent name --Pavani **/
|
|
function getParentId($parent_name)
|
|
{
|
|
global $adb;
|
|
if($parent_name == '' || $parent_name == NULL)
|
|
$parent_id = 0;
|
|
//For now it have conditions only for accounts and contacts, if needed can add more
|
|
$relatedTo = explode(':',$parent_name);
|
|
$parent_module = $relatedTo[0]; $parent_module = trim($parent_module," ");
|
|
$parent_name = $relatedTo[3]; $parent_name = trim($parent_name," ");
|
|
$num_rows = 0;
|
|
if($parent_module == 'Contacts')
|
|
{
|
|
$query ="select crmid from vtiger_contactdetails, vtiger_crmentity WHERE concat(lastname,' ',firstname)=? and vtiger_crmentity.crmid =vtiger_contactdetails.contactid and vtiger_crmentity.deleted=0";
|
|
$result = $adb->pquery($query, array($parent_name));
|
|
$num_rows=$adb->num_rows($result);
|
|
}
|
|
else if($parent_module == 'Accounts')
|
|
{
|
|
$query = "select crmid from vtiger_account, vtiger_crmentity WHERE accountname=? and vtiger_crmentity.crmid =vtiger_account.accountid and vtiger_crmentity.deleted=0";
|
|
$result = $adb->pquery($query, array($parent_name));
|
|
$num_rows = $adb->num_rows($result);
|
|
}
|
|
else $num_rows=0;
|
|
if($num_rows == 0) $parent_id = 0;
|
|
else $parent_id = $adb->query_result($result,0,"crmid");
|
|
return $parent_id;
|
|
}
|
|
|
|
function decode_html($str)
|
|
{
|
|
global $default_charset;
|
|
// Direct Popup action or Ajax Popup action should be treated the same.
|
|
if($_REQUEST['action'] == 'Popup' || $_REQUEST['file'] == 'Popup')
|
|
return html_entity_decode($str);
|
|
else
|
|
return html_entity_decode($str,ENT_QUOTES,$default_charset);
|
|
}
|
|
|
|
/**
|
|
* Alternative decoding function which coverts irrespective of $_REQUEST values.
|
|
* Useful incase of Popup (Listview etc...) where if decode_html will not work as expected
|
|
*/
|
|
function decode_html_force($str) {
|
|
global $default_charset;
|
|
return html_entity_decode($str,ENT_QUOTES,$default_charset);
|
|
}
|
|
|
|
function popup_decode_html($str)
|
|
{
|
|
global $default_charset;
|
|
$slashes_str = popup_from_html($str);
|
|
$slashes_str = htmlspecialchars($slashes_str,ENT_QUOTES,$default_charset);
|
|
return decode_html(br2nl($slashes_str));
|
|
}
|
|
|
|
//function added to check the text length in the listview.
|
|
function textlength_check($field_val)
|
|
{
|
|
global $listview_max_textlength, $default_charset;
|
|
if($listview_max_textlength) {
|
|
$temp_val = preg_replace("/(<\/?)(\w+)([^>]*>)/i","",$field_val);
|
|
if(function_exists('mb_strlen')){
|
|
if(mb_strlen($default_charset) > $listview_max_textlength) {
|
|
$temp_val = mb_substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i","",$field_val),0,
|
|
$listview_max_textlength,$default_charset).'...';
|
|
}
|
|
}elseif(strlen($field_val) > $listview_max_textlength) {
|
|
$temp_val = substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i","",$field_val),0,$listview_max_textlength).'...';
|
|
}
|
|
} else {
|
|
$temp_val = $field_val;
|
|
}
|
|
return $temp_val;
|
|
}
|
|
|
|
/** Function to get permitted fields of current user of a particular module to find duplicate records --Pavani*/
|
|
function getMergeFields($module,$str){
|
|
global $adb,$current_user;
|
|
$tabid = getTabid($module);
|
|
if($str == "available_fields"){
|
|
$result = getFieldsResultForMerge($tabid);
|
|
}
|
|
else { //if($str == fileds_to_merge)
|
|
$sql="select * from vtiger_user2mergefields where tabid=? and userid=? and visible=1";
|
|
$result = $adb->pquery($sql, array($tabid,$current_user->id));
|
|
}
|
|
|
|
$num_rows=$adb->num_rows($result);
|
|
|
|
$user_profileid = fetchUserProfileId($current_user->id);
|
|
$permitted_list = getProfile2FieldPermissionList($module, $user_profileid);
|
|
|
|
$sql_def_org="select fieldid from vtiger_def_org_field where tabid=? and visible=0";
|
|
$result_def_org=$adb->pquery($sql_def_org,array($tabid));
|
|
$num_rows_org=$adb->num_rows($result_def_org);
|
|
$permitted_org_list = Array();
|
|
for($i=0; $i<$num_rows_org; $i++)
|
|
$permitted_org_list[$i] = $adb->query_result($result_def_org,$i,"fieldid");
|
|
|
|
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
|
for($i=0; $i<$num_rows;$i++)
|
|
{
|
|
$field_id = $adb->query_result($result,$i,"fieldid");
|
|
foreach($permitted_list as $field=>$data)
|
|
if($data[4] == $field_id and $data[1] == 0)
|
|
{
|
|
if($is_admin == 'true' || (in_array($field_id,$permitted_org_list)))
|
|
{
|
|
$field="<option value=\"".$field_id."\">".getTranslatedString($data[0],$module)."</option>";
|
|
$fields.=$field;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return $fields;
|
|
}
|
|
|
|
|
|
/**
|
|
* this function accepts a modulename and a fieldname and returns the first related module for it
|
|
* it expects the uitype of the field to be 10
|
|
* @param string $module - the modulename
|
|
* @param string $fieldname - the field name
|
|
* @return string $data - the first related module
|
|
*/
|
|
function getFirstModule($module, $fieldname){
|
|
global $adb;
|
|
$sql = "select fieldid, uitype from vtiger_field where tabid=? and fieldname=?";
|
|
$result = $adb->pquery($sql, array(getTabid($module), $fieldname));
|
|
|
|
if($adb->num_rows($result)>0){
|
|
$uitype = $adb->query_result($result, 0, "uitype");
|
|
|
|
if($uitype == 10){
|
|
$fieldid = $adb->query_result($result, 0, "fieldid");
|
|
$sql = "select * from vtiger_fieldmodulerel where fieldid=?";
|
|
$result = $adb->pquery($sql, array($fieldid));
|
|
$count = $adb->num_rows($result);
|
|
|
|
if($count > 0){
|
|
$data = $adb->query_result($result, 0, "relmodule");
|
|
}
|
|
}
|
|
}
|
|
return $data;
|
|
}
|
|
|
|
function VT_getSimpleNavigationValues($start,$size,$total){
|
|
$prev = $start -1;
|
|
if($prev < 0){
|
|
$prev = 0;
|
|
}
|
|
if($total === null){
|
|
return array('start'=>$start,'first'=>$start,'current'=>$start,'end'=>$start,'end_val'=>$size,'allflag'=>'All',
|
|
'prev'=>$prev,'next'=>$start+1,'verylast'=>'last');
|
|
}
|
|
if(empty($total)){
|
|
$lastPage = 1;
|
|
}else{
|
|
$lastPage = ceil($total/$size);
|
|
}
|
|
|
|
$next = $start+1;
|
|
if($next > $lastPage){
|
|
$next = 0;
|
|
}
|
|
return array('start'=>$start,'first'=>$start,'current'=>$start,'end'=>$start,'end_val'=>$size,'allflag'=>'All',
|
|
'prev'=>$prev,'next'=>$next,'verylast'=>$lastPage);
|
|
}
|
|
|
|
/**Function to get the simplified table headers for a listview
|
|
*Param $navigation_arrray - navigation values in array
|
|
*Param $url_qry - url string
|
|
*Param $module - module name
|
|
*Param $action- action file name
|
|
*Param $viewid - view id
|
|
*Returns an string value
|
|
*/
|
|
|
|
function getTableHeaderSimpleNavigation($navigation_array, $url_qry,$module='',$action_val='index',$viewid=''){
|
|
global $log,$app_strings;
|
|
global $theme,$current_user;
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
if($module == 'Documents') {
|
|
$output = '<td class="mailSubHeader" width="100%" align="center">';
|
|
} else {
|
|
$output = '<td align="right" style="padding: 5px;">';
|
|
}
|
|
$tabname = getParentTab();
|
|
|
|
$url_string = '';
|
|
|
|
// vtlib Customization : For uitype 10 popup during paging
|
|
if($_REQUEST['form'] == 'vtlibPopupView') {
|
|
$url_string .= '&form=vtlibPopupView&forfield='.vtlib_purify($_REQUEST['forfield']).'&srcmodule='.vtlib_purify($_REQUEST['srcmodule']).'&forrecord='.vtlib_purify($_REQUEST['forrecord']);
|
|
}
|
|
// END
|
|
|
|
if($module == 'Calendar' && $action_val == 'index')
|
|
{
|
|
if($_REQUEST['view'] == ''){
|
|
if($current_user->activity_view == "This Year"){
|
|
$mysel = 'year';
|
|
}else if($current_user->activity_view == "This Month"){
|
|
$mysel = 'month';
|
|
}else if($current_user->activity_view == "This Week"){
|
|
$mysel = 'week';
|
|
}else{
|
|
$mysel = 'day';
|
|
}
|
|
}
|
|
$data_value=date('Y-m-d H:i:s');
|
|
preg_match('/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/',$data_value,$value);
|
|
$date_data = Array(
|
|
'day'=>$value[3],
|
|
'month'=>$value[2],
|
|
'year'=>$value[1],
|
|
'hour'=>$value[4],
|
|
'min'=>$value[5],
|
|
);
|
|
$tab_type = ($_REQUEST['subtab'] == '')?'event':vtlib_purify($_REQUEST['subtab']);
|
|
$url_string .= isset($_REQUEST['view'])?"&view=".vtlib_purify($_REQUEST['view']):"&view=".$mysel;
|
|
$url_string .= isset($_REQUEST['subtab'])?"&subtab=".vtlib_purify($_REQUEST['subtab']):'';
|
|
$url_string .= isset($_REQUEST['viewOption'])?"&viewOption=".vtlib_purify($_REQUEST['viewOption']):'&viewOption=listview';
|
|
$url_string .= isset($_REQUEST['day'])?"&day=".vtlib_purify($_REQUEST['day']):'&day='.$date_data['day'];
|
|
$url_string .= isset($_REQUEST['week'])?"&week=".vtlib_purify($_REQUEST['week']):'';
|
|
$url_string .= isset($_REQUEST['month'])?"&month=".vtlib_purify($_REQUEST['month']):'&month='.$date_data['month'];
|
|
$url_string .= isset($_REQUEST['year'])?"&year=".vtlib_purify($_REQUEST['year']):"&year=".$date_data['year'];
|
|
$url_string .= isset($_REQUEST['n_type'])?"&n_type=".vtlib_purify($_REQUEST['n_type']):'';
|
|
$url_string .= isset($_REQUEST['search_option'])?"&search_option=".vtlib_purify($_REQUEST['search_option']):'';
|
|
}
|
|
if($module == 'Calendar' && $action_val != 'index') //added for the All link from the homepage -- ticket 5211
|
|
$url_string .= isset($_REQUEST['from_homepage'])?"&from_homepage=".vtlib_purify($_REQUEST['from_homepage']):'';
|
|
|
|
if(($navigation_array['prev']) != 0){
|
|
if($module == 'Calendar' && $action_val == 'index'){
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start=1\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start='.$navigation_array['prev'].'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}else if($action_val == "FindDuplicate"){
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}elseif($action_val == 'UnifiedSearch'){
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}elseif($module == 'Documents'){
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'&folderid='.$action_val.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}else{
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start=1'.$url_string.'\');" alt="'.$app_strings['LBL_FIRST'].'" title="'.$app_strings['LBL_FIRST'].'"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['prev'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_PREVIOUS'].'"title="'.$app_strings['LNK_LIST_PREVIOUS'].'"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
}else{
|
|
$output .= '<img src="' . vtiger_imageurl('start_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
$output .= '<img src="' . vtiger_imageurl('previous_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
}
|
|
if($module == 'Calendar' && $action_val == 'index'){
|
|
$jsNavigate = "cal_navigation('$tab_type','$url_string','&start='+this.value);";
|
|
}else if($action_val == "FindDuplicate"){
|
|
$jsNavigate = "getDuplicateListViewEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string');";
|
|
}elseif($action_val == 'UnifiedSearch'){
|
|
$jsNavigate = "getUnifiedSearchEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string');";
|
|
}elseif($module == 'Documents'){
|
|
$jsNavigate = "getListViewEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string&folderid=$action_val');";
|
|
}else{
|
|
$jsNavigate = "getListViewEntries_js('$module','parenttab=$tabname&start='+this.value+'$url_string');";
|
|
}
|
|
if($module == 'Documents' && $action_val != 'UnifiedSearch'){
|
|
$url = '&folderid='.$action_val;
|
|
}else{
|
|
$url = '';
|
|
}
|
|
$jsHandler = "return VT_disableFormSubmit(event);";
|
|
$output .= "<input class='small' name='pagenum' type='text' value='{$navigation_array['current']}'
|
|
style='width: 3em;margin-right: 0.7em;' onchange=\"$jsNavigate\"
|
|
onkeypress=\"$jsHandler\">";
|
|
$output .= "<span name='".$module."_listViewCountContainerName' class='small' style='white-space: nowrap;'>";
|
|
if(PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true){
|
|
$output .= $app_strings['LBL_LIST_OF'].' '.$navigation_array['verylast'];
|
|
}else{
|
|
$output .= "<img src='".vtiger_imageurl('windowRefresh.gif',$theme)."' alt='".$app_strings['LBL_HOME_COUNT']."'
|
|
onclick='getListViewCount(\"".$module."\",this,this.parentNode,\"".$url."\")'
|
|
align='absmiddle' name='".$module."_listViewCountRefreshIcon'/>
|
|
<img name='".$module."_listViewCountContainerBusy' src='".vtiger_imageurl('vtbusy.gif',$theme)."' style='display: none;'
|
|
align='absmiddle' alt='".$app_strings['LBL_LOADING']."'>";
|
|
}
|
|
$output .='</span>';
|
|
|
|
if(($navigation_array['next']) !=0){
|
|
if($module == 'Calendar' && $action_val == 'index'){
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start='.$navigation_array['next'].'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="cal_navigation(\''.$tab_type.'\',\''.$url_string.'\',\'&start='.$navigation_array['verylast'].'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}else if($action_val == "FindDuplicate"){
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getDuplicateListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}elseif($action_val == 'UnifiedSearch'){
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getUnifiedSearchEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="themes/images/end.gif" border="0" align="absmiddle"></a> ';
|
|
}elseif($module == 'Documents'){
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'&folderid='.$action_val.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'&folderid='.$action_val.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}else{
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['next'].$url_string.'\');" alt="'.$app_strings['LNK_LIST_NEXT'].'" title="'.$app_strings['LNK_LIST_NEXT'].'"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
$output .= '<a href="javascript:;" onClick="getListViewEntries_js(\''.$module.'\',\'parenttab='.$tabname.'&start='.$navigation_array['verylast'].$url_string.'\');" alt="'.$app_strings['LBL_LAST'].'" title="'.$app_strings['LBL_LAST'].'"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a> ';
|
|
}
|
|
}else{
|
|
$output .= '<img src="' . vtiger_imageurl('next_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
$output .= '<img src="' . vtiger_imageurl('end_disabled.gif', $theme) . '" border="0" align="absmiddle"> ';
|
|
}
|
|
$output .= '</td>';
|
|
if($navigation_array['first']=='')
|
|
return;
|
|
else
|
|
return $output;
|
|
}
|
|
|
|
function getRecordRangeMessage($listResult, $limitStartRecord,$totalRows='') {
|
|
global $adb, $app_strings;
|
|
$numRows = $adb->num_rows($listResult);
|
|
$recordListRangeMsg = '';
|
|
if ($numRows > 0) {
|
|
$recordListRangeMsg = $app_strings['LBL_SHOWING'].' '.$app_strings['LBL_RECORDS'].
|
|
' '.($limitStartRecord+1).' - '.($limitStartRecord+$numRows);
|
|
if(PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true){
|
|
$recordListRangeMsg .= ' '.$app_strings['LBL_LIST_OF']." $totalRows";
|
|
}
|
|
}
|
|
return $recordListRangeMsg;
|
|
}
|
|
|
|
function listQueryNonAdminChange($query, $module, $scope='') {
|
|
$instance = CRMEntity::getInstance($module);
|
|
return $instance->listQueryNonAdminChange($query, $scope);
|
|
}
|
|
|
|
?>
|