You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1174 lines
40 KiB

<?php
/*********************************************************************************
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*
********************************************************************************/
global $calpath;
global $app_strings,$mod_strings;
global $app_list_strings;
global $theme;
$theme_path="themes/".$theme."/";
$image_path=$theme_path."images/";
require_once('include/database/PearDatabase.php');
require_once ($theme_path."layout_utils.php");
require_once('data/CRMEntity.php');
require_once('include/utils.php');
global $adv_filter_options;
$adv_filter_options = array("e"=>"equals",
"n"=>"not equal to",
"s"=>"starts with",
"c"=>"contains",
"k"=>"does not contain",
"l"=>"less than",
"g"=>"greater than",
"m"=>"less or equal",
"h"=>"greater or equal"
);
class CustomView extends CRMEntity{
var $module_list = Array("Leads"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"Contacts"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"Accounts"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"Potentials"=>Array("Information"=>1,"Description"=>2,"Custom Information"=>5),
"Activities"=>Array("Information"=>1,"Description"=>2),
"Products"=>Array("Information"=>1,"Description"=>2,"Custom Information"=>5),
"Vendor"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"PriceBook"=>Array("Information"=>1,"Description"=>2,"Custom Information"=>5),
"Notes"=>Array("Information"=>1,"Description"=>3),
"Emails"=>Array("Information"=>'1,2',"Description"=>4),
"HelpDesk"=>Array("Information"=>'1,2',"Description"=>3,"Custom Information"=>5),
"Quotes"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"Orders"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"SalesOrder"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5),
"Invoice"=>Array("Information"=>1,"Address"=>2,"Description"=>3,"Custom Information"=>5)
);
var $customviewmodule;
var $list_fields;
var $list_fields_name;
var $setdefaultviewid;
var $escapemodule;
var $mandatoryvalues;
var $showvalues;
function CustomView($module="")
{
$this->customviewmodule = $module;
$this->escapemodule[] = $module."_";
$this->escapemodule[] = "_";
}
// to get the available customviews for a module
// return type array
function getCustomViewByCvid($cvid)
{
global $adb;
$tabid = getTabid($this->customviewmodule);
$ssql = "select customview.* from customview inner join tab on tab.name = customview.entitytype";
$ssql .= " where customview.cvid=".$cvid;
$result = $adb->query($ssql);
while($cvrow=$adb->fetch_array($result))
{
$customviewlist["viewname"] = $cvrow["viewname"];
$customviewlist["setdefault"] = $cvrow["setdefault"];
$customviewlist["setmetrics"] = $cvrow["setmetrics"];
}
return $customviewlist;
}
function getCustomViewCombo()
{
global $adb;
$tabid = getTabid($this->customviewmodule);
$ssql = "select customview.* from customview inner join tab on tab.name = customview.entitytype";
$ssql .= " where tab.tabid=".$tabid;
//echo $ssql;
$result = $adb->query($ssql);
while($cvrow=$adb->fetch_array($result))
{
if($cvrow['setdefault'] == 1)
{
$shtml .= "<option selected value=\"".$cvrow['cvid']."\">".$cvrow['viewname']."</option>";
$this->setdefaultviewid = $cvrow['cvid'];
}
else
{
$shtml .= "<option value=\"".$cvrow['cvid']."\">".$cvrow['viewname']."</option>";
}
}
//echo $shtml;
return $shtml;
}
function getColumnsListbyBlock($module,$block)
{
global $adb;
$tabid = getTabid($module);
global $profile_id;
$sql = "select * from field inner join profile2field on profile2field.fieldid=field.fieldid";
$sql.= " where field.tabid=".$tabid." and field.block in (".$block.") and";
$sql.= " field.displaytype in (1,2) and profile2field.visible=0";
$sql.= " and profile2field.profileid=".$profile_id." order by sequence";
$result = $adb->query($sql);
$noofrows = $adb->num_rows($result);
for($i=0; $i<$noofrows; $i++)
{
$fieldtablename = $adb->query_result($result,$i,"tablename");
$fieldcolname = $adb->query_result($result,$i,"columnname");
$fieldname = $adb->query_result($result,$i,"fieldname");
$fieldtype = $adb->query_result($result,$i,"typeofdata");
$fieldtype = explode("~",$fieldtype);
$fieldtypeofdata = $fieldtype[0];
/*if($fieldcolname == "crmid" || $fieldcolname == "parent_id")
{
$fieldtablename = "crmentity";
$fieldcolname = "setype";
}*/
$fieldlabel = $adb->query_result($result,$i,"fieldlabel");
if($fieldlabel == "Related To")
{
$fieldlabel = "Related to";
}
$fieldlabel1 = str_replace(" ","_",$fieldlabel);
$optionvalue = $fieldtablename.":".$fieldcolname.":".$fieldname.":".$module."_".$fieldlabel1.":".$fieldtypeofdata;
$module_columnlist[$optionvalue] = $fieldlabel;
if($fieldtype[1] == "M")
{
$this->mandatoryvalues[] = "'".$optionvalue."'";
$this->showvalues[] = $fieldlabel;
}
}
return $module_columnlist;
}
function getModuleColumnsList($module)
{
foreach($this->module_list[$module] as $key=>$value)
{
$columnlist = $this->getColumnsListbyBlock($module,$value);
if(isset($columnlist))
{
$ret_module_list[$module][$key] = $columnlist;
}
}
return $ret_module_list;
}
function getColumnsListByCvid($cvid)
{
global $adb;
$sSQL = "select cvcolumnlist.* from cvcolumnlist";
$sSQL .= " inner join customview on customview.cvid = cvcolumnlist.cvid";
$sSQL .= " where customview.cvid =".$cvid." order by cvcolumnlist.columnindex";
//echo $sSQL;
$result = $adb->query($sSQL);
while($columnrow = $adb->fetch_array($result))
{
$columnlist[$columnrow['columnindex']] = $columnrow['columnname'];
}
return $columnlist;
}
function getStdCriteriaByModule($module)
{
global $adb;
$tabid = getTabid($module);
global $profile_id;
foreach($this->module_list[$module] as $key=>$blockid)
{
$blockids[] = $blockid;
}
$blockids = implode(",",$blockids);
$sql = "select * from field inner join tab on tab.tabid = field.tabid
inner join profile2field on profile2field.fieldid=field.fieldid
where field.tabid=".$tabid." and field.block in (".$blockids.")
and (field.uitype =5 or field.displaytype=2)
and profile2field.visible=0 and profile2field.profileid=".$profile_id." order by field.sequence";
$result = $adb->query($sql);
while($criteriatyperow = $adb->fetch_array($result))
{
$fieldtablename = $criteriatyperow["tablename"];
$fieldcolname = $criteriatyperow["columnname"];
$fieldlabel = $criteriatyperow["fieldlabel"];
$fieldname = $criteriatyperow["fieldname"];
/*if($fieldtablename == "crmentity")
{
$fieldtablename = $fieldtablename.$module;
}*/
$fieldlabel1 = str_replace(" ","_",$fieldlabel);
$optionvalue = $fieldtablename.":".$fieldcolname.":".$fieldname.":".$module."_".$fieldlabel1;
$stdcriteria_list[$optionvalue] = $fieldlabel;
}
return $stdcriteria_list;
}
function getStdFilterCriteria($selcriteria = "")
{
$stdfilter = Array("custom"=>"Custom",
"prevfy"=>"Previous FY",
"thisfy"=>"Current FY",
"nextfy"=>"Next FY",
"prevfq"=>"Previous FQ",
"thisfq"=>"Current FQ",
"nextfq"=>"Next FQ",
"yesterday"=>"Yesterday",
"today"=>"Today",
"tomorrow"=>"Tomorrow",
"lastweek"=>"Last Week",
"thisweek"=>"Current Week",
"nextweek"=>"Next Week",
"lastmonth"=>"Last Month",
"thismonth"=>"Current Month",
"nextmonth"=>"Next Month",
"last7days"=>"Last 7 Days",
"last30days"=>"Last 30 Days",
"last60days"=>"Last 60 Days",
"last90days"=>"Last 90 Days",
"last120days"=>"Last 120 Days",
"next30days"=>"Next 30 Days",
"next60days"=>"Next 60 Days",
"next90days"=>"Next 90 Days",
"next120days"=>"Next 120 Days"
);
foreach($stdfilter as $FilterKey=>$FilterValue)
{
if($FilterKey == $selcriteria)
{
$shtml .= "<option selected value='".$FilterKey."'>".$FilterValue."</option>";
}else
{
$shtml .= "<option value='".$FilterKey."'>".$FilterValue."</option>";
}
}
return $shtml;
}
function getCriteriaJS()
{
$today = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d"), date("Y")));
$tomorrow = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+1, date("Y")));
$yesterday = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-1, date("Y")));
$currentmonth0 = date("Y-m-d",mktime(0, 0, 0, date("m"), "01", date("Y")));
$currentmonth1 = date("Y-m-t");
$lastmonth0 = date("Y-m-d",mktime(0, 0, 0, date("m")-1, "01", date("Y")));
$lastmonth1 = date("Y-m-t", strtotime("-1 Month"));
$nextmonth0 = date("Y-m-d",mktime(0, 0, 0, date("m")+1, "01", date("Y")));
$nextmonth1 = date("Y-m-t", strtotime("+1 Month"));
$lastweek0 = date("Y-m-d",strtotime("-2 week Sunday"));
$lastweek1 = date("Y-m-d",strtotime("-1 week Saturday"));
$thisweek0 = date("Y-m-d",strtotime("-1 week Sunday"));
$thisweek1 = date("Y-m-d",strtotime("this Saturday"));
$nextweek0 = date("Y-m-d",strtotime("this Sunday"));
$nextweek1 = date("Y-m-d",strtotime("+1 week Saturday"));
$next7days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+6, date("Y")));
$next30days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+29, date("Y")));
$next60days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+59, date("Y")));
$next90days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+89, date("Y")));
$next120days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+119, date("Y")));
$last7days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-6, date("Y")));
$last30days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-29, date("Y")));
$last60days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-59, date("Y")));
$last90days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-89, date("Y")));
$last120days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-119, date("Y")));
$currentFY0 = date("Y-m-d",mktime(0, 0, 0, "01", "01", date("Y")));
$currentFY1 = date("Y-m-t",mktime(0, 0, 0, "12", date("d"), date("Y")));
$lastFY0 = date("Y-m-d",mktime(0, 0, 0, "01", "01", date("Y")-1));
$lastFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y")-1));
$nextFY0 = date("Y-m-d",mktime(0, 0, 0, "01", "01", date("Y")+1));
$nextFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y")+1));
$sjsStr = '<script language="JavaScript" type="text/javaScript">
function showDateRange( type )
{
if (type!="custom")
{
document.CustomView.startdate.readOnly=true
document.CustomView.enddate.readOnly=true
getObj("jscal_trigger_date_start").style.visibility="hidden"
getObj("jscal_trigger_date_end").style.visibility="hidden"
}
else
{
document.CustomView.startdate.readOnly=false
document.CustomView.enddate.readOnly=false
getObj("jscal_trigger_date_start").style.visibility="visible"
getObj("jscal_trigger_date_end").style.visibility="visible"
}
if( type == "today" )
{
document.CustomView.startdate.value = "'.$today.'";
document.CustomView.enddate.value = "'.$today.'";
}
else if( type == "yesterday" )
{
document.CustomView.startdate.value = "'.$yesterday.'";
document.CustomView.enddate.value = "'.$yesterday.'";
}
else if( type == "tomorrow" )
{
document.CustomView.startdate.value = "'.$tomorrow.'";
document.CustomView.enddate.value = "'.$tomorrow.'";
}
else if( type == "thisweek" )
{
document.CustomView.startdate.value = "'.$thisweek0.'";
document.CustomView.enddate.value = "'.$thisweek1.'";
}
else if( type == "lastweek" )
{
document.CustomView.startdate.value = "'.$lastweek0.'";
document.CustomView.enddate.value = "'.$lastweek1.'";
}
else if( type == "nextweek" )
{
document.CustomView.startdate.value = "'.$nextweek0.'";
document.CustomView.enddate.value = "'.$nextweek1.'";
}
else if( type == "thismonth" )
{
document.CustomView.startdate.value = "'.$currentmonth0.'";
document.CustomView.enddate.value = "'.$currentmonth1.'";
}
else if( type == "lastmonth" )
{
document.CustomView.startdate.value = "'.$lastmonth0.'";
document.CustomView.enddate.value = "'.$lastmonth1.'";
}
else if( type == "nextmonth" )
{
document.CustomView.startdate.value = "'.$nextmonth0.'";
document.CustomView.enddate.value = "'.$nextmonth1.'";
}
else if( type == "next7days" )
{
document.CustomView.startdate.value = "'.$today.'";
document.CustomView.enddate.value = "'.$next7days.'";
}
else if( type == "next30days" )
{
document.CustomView.startdate.value = "'.$today.'";
document.CustomView.enddate.value = "'.$next30days.'";
}
else if( type == "next60days" )
{
document.CustomView.startdate.value = "'.$today.'";
document.CustomView.enddate.value = "'.$next60days.'";
}
else if( type == "next90days" )
{
document.CustomView.startdate.value = "'.$today.'";
document.CustomView.enddate.value = "'.$next90days.'";
}
else if( type == "next120days" )
{
document.CustomView.startdate.value = "'.$today.'";
document.CustomView.enddate.value = "'.$next120days.'";
}
else if( type == "last7days" )
{
document.CustomView.startdate.value = "'.$last7days.'";
document.CustomView.enddate.value = "'.$today.'";
}
else if( type == "last30days" )
{
document.CustomView.startdate.value = "'.$last30days.'";
document.CustomView.enddate.value = "'.$today.'";
}
else if( type == "last60days" )
{
document.CustomView.startdate.value = "'.$last60days.'";
document.CustomView.enddate.value = "'.$today.'";
}
else if( type == "last90days" )
{
document.CustomView.startdate.value = "'.$last90days.'";
document.CustomView.enddate.value = "'.$today.'";
}
else if( type == "last120days" )
{
document.CustomView.startdate.value = "'.$last120days.'";
document.CustomView.enddate.value = "'.$today.'";
}
else if( type == "thisfy" )
{
document.CustomView.startdate.value = "'.$currentFY0.'";
document.CustomView.enddate.value = "'.$currentFY1.'";
}
else if( type == "prevfy" )
{
document.CustomView.startdate.value = "'.$lastFY0.'";
document.CustomView.enddate.value = "'.$lastFY1.'";
}
else if( type == "nextfy" )
{
document.CustomView.startdate.value = "'.$nextFY0.'";
document.CustomView.enddate.value = "'.$nextFY1.'";
}
else if( type == "nextfq" )
{
document.CustomView.startdate.value = "2005-07-01";
document.CustomView.enddate.value = "2005-09-30";
}
else if( type == "prevfq" )
{
document.CustomView.startdate.value = "2005-01-01";
document.CustomView.enddate.value = "2005-03-31";
}
else if( type == "thisfq" )
{
document.CustomView.startdate.value = "2005-04-01";
document.CustomView.enddate.value = "2005-06-30";
}
else
{
document.CustomView.startdate.value = "";
document.CustomView.enddate.value = "";
}
}
</script>';
return $sjsStr;
}
function getStdFilterByCvid($cvid)
{
global $adb;
$sSQL = "select cvstdfilter.* from cvstdfilter inner join customview on customview.cvid = cvstdfilter.cvid";
$sSQL .= " where cvstdfilter.cvid=".$cvid;
$result = $adb->query($sSQL);
$stdfilterrow = $adb->fetch_array($result);
$stdfilterlist["columnname"] = $stdfilterrow["columnname"];
$stdfilterlist["stdfilter"] = $stdfilterrow["stdfilter"];
if($stdfilterrow["stdfilter"] == "custom")
{
if($stdfilterrow["startdate"] != "0000-00-00")
{
$stdfilterlist["startdate"] = $stdfilterrow["startdate"];
}
if($stdfilterrow["enddate"] != "0000-00-00")
{
$stdfilterlist["enddate"] = $stdfilterrow["enddate"];
}
}
return $stdfilterlist;
}
//<<<<<<<<advanced filter>>>>>>>>>>>>>>
function getAdvFilterByCvid($cvid)
{
global $adb;
global $modules;
$sSQL = "select cvadvfilter.* from cvadvfilter inner join customview on cvadvfilter.cvid = customview.cvid";
$sSQL .= " where cvadvfilter.cvid=".$cvid;
//echo $sSQL;
$result = $adb->query($sSQL);
while($advfilterrow = $adb->fetch_array($result))
{
$advft["columnname"] = $advfilterrow["columnname"];
$advft["comparator"] = $advfilterrow["comparator"];
$advft["value"] = $advfilterrow["value"];
$advfilterlist[] = $advft;
}
return $advfilterlist;
}
//<<<<<<<<advanced filter>>>>>>>>>>>>>>
function getCvColumnListSQL($cvid)
{
$columnslist = $this->getColumnsListByCvid($cvid);
//print_r($columnslist);
if(isset($columnslist))
{
foreach($columnslist as $columnname=>$value)
{
$tablefield = "";
if($value != "")
{
$list = explode(":",$value);
$sqllist[] = $list[0].".".$list[1];
$tablefield[$list[0]] = $list[1];
$fieldlabel = trim(str_replace($this->escapemodule," ",$list[3]));
$this->list_fields[$fieldlabel] = $tablefield;
$this->list_fields_name[$fieldlabel] = $list[2];
}
}
$returnsql = implode(",",$sqllist);
}
return $returnsql;
}
function getCVStdFilterSQL($cvid)
{
global $adb;
$stdfilterlist = $this->getStdFilterByCvid($cvid);
//print_r($stdfilterlist);
if(isset($stdfilterlist))
{
foreach($stdfilterlist as $columnname=>$value)
{
if($columnname == "columnname")
{
$filtercolumn = $value;
}elseif($columnname = "stdfilter")
{
$filtertype = $value;
}elseif($columnname = "startdate")
{
$startdate = $value;
}elseif($columnname = "enddate")
{
$enddate = $value;
}
}
if($filtertype != "custom")
{
$datearray = $this->getDateforStdFilterBytype($filtertype);
$startdate = $datearray[0];
$enddate = $datearray[1];
}
if($startdate != "" && $enddate != "")
{
$columns = explode(":",$filtercolumn);
$stdfiltersql = $columns[0].".".$columns[1]." between '".$startdate." 00:00:00' and '".$enddate." 23:59:00'";
}
}
//echo $stdfiltersql;
return $stdfiltersql;
}
function getCVAdvFilterSQL($cvid)
{
$advfilter = $this->getAdvFilterByCvid($cvid);
if(isset($advfilter))
{
foreach($advfilter as $key=>$advfltrow)
{
if(isset($advfltrow))
{
//echo $advfltrow["columnname"];
$columns = explode(":",$advfltrow["columnname"]);
if($advfltrow["columnname"] != "" && $advfltrow["comparator"] != "" && $advfltrow["value"] != "")
{
$valuearray = explode(",",trim($advfltrow["value"]));
if(isset($valuearray) && count($valuearray) > 1)
{
$advorsql = "";
for($n=0;$n<count($valuearray);$n++)
{
$advorsql[] = $this->getRealValues($columns[0],$columns[1],$advfltrow["comparator"],trim($valuearray[$n]));
}
$advorsqls = implode(" or ",$advorsql);
$advfiltersql[] = " (".$advorsqls.") ";
}else
{
$advfiltersql[] = $this->getRealValues($columns[0],$columns[1],$advfltrow["comparator"],trim($advfltrow["value"]));
}
}
}
}
}
if(isset($advfiltersql))
{
$advfsql = implode(" and ",$advfiltersql);
}
return $advfsql;
}
function getRealValues($tablename,$fieldname,$comparator,$value)
{
if($fieldname == "smownerid" || $fieldname == "inventorymanager")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,getUserId_Ol($value));
}else if($fieldname == "parentid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getAccountId($value));
}else if($fieldname == "accountid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getAccountId($value));
}else if($fieldname == "contactid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getContactId($value));
}else if($fieldname == "vendor_id" || $fieldname == "vendorid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getVendorId($value));
}else if($fieldname == "potentialid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getPotentialId($value));
}else if($fieldname == "quoteid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getQuoteId($value));
}
else if($fieldname == "product_id")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getProductId($value));
}
else if($fieldname == "salesorderid")
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$this->getSoId($value));
}
else if($fieldname == "crmid" || $fieldname == "parent_id")
{
$value = $tablename.".".$fieldname." in (".$this->getSalesEntityId($value).") ";
}
else
{
$value = $tablename.".".$fieldname.$this->getAdvComparator($comparator,$value);
}
return $value;
}
function getSalesEntityId($setype)
{
global $vtlog;
$vtlog->logthis("in getSalesEntityId ".$setype,'info');
global $adb;
$sql = "select crmid from crmentity where setype='".$setype."' and deleted = 0";
$result = $adb->query($sql);
while($row = $adb->fetch_array($result))
{
$parent_id[] = $row["crmid"];
}
if(isset($parent_id))
{
$parent_id = implode(",",$parent_id);
}else
{
$parent_id = 0;
}
return $parent_id;
}
function getSoId($so_name)
{
global $vtlog;
$vtlog->logthis("in getSoId ".$so_name,'info');
global $adb;
if($so_name != '')
{
$sql = "select salesorderid from salesorder where subject='".$so_name."'";
$result = $adb->query($sql);
$so_id = $adb->query_result($result,0,"salesorderid");
}
return $so_id;
}
function getProductId($product_name)
{
global $vtlog;
$vtlog->logthis("in getProductId ".$product_name,'info');
global $adb;
if($product_name != '')
{
$sql = "select productid from products where productname='".$product_name."'";
$result = $adb->query($sql);
$productid = $adb->query_result($result,0,"productid");
}
return $productid;
}
function getQuoteId($quote_name)
{
global $vtlog;
$vtlog->logthis("in getQuoteId ".$quote_name,'info');
global $adb;
if($quote_name != '')
{
$sql = "select quoteid from quotes where subject='".$quote_name."'";
$result = $adb->query($sql);
$quote_id = $adb->query_result($result,0,"quoteid");
}
return $quote_id;
}
function getPotentialId($pot_name)
{
global $vtlog;
$vtlog->logthis("in getPotentialId ".$pot_name,'info');
global $adb;
if($pot_name != '')
{
$sql = "select potentialid from potential where potentialname='".$pot_name."'";
$result = $adb->query($sql);
$potentialid = $adb->query_result($result,0,"potentialid");
}
return $potentialid;
}
function getVendorId($vendor_name)
{
global $vtlog;
$vtlog->logthis("in getVendorId ".$vendor_name,'info');
global $adb;
if($vendor_name != '')
{
$sql = "select vendorid from vendor where vendorname='".$vendor_name."'";
$result = $adb->query($sql);
$vendor_id = $adb->query_result($result,0,"vendorid");
}
return $vendor_id;
}
function getContactId($contact_name)
{
global $vtlog;
$vtlog->logthis("in getContactId ".$contact_name,'info');
global $adb;
if($contact_name != '')
{
$sql = "select contactid from contactdetails where lastname='".$contact_name."'";
$result = $adb->query($sql);
$contact_id = $adb->query_result($result,0,"contactid");
}
return $contact_id;
}
function getAccountId($account_name)
{
global $vtlog;
$vtlog->logthis("in getAccountId ".$account_name,'info');
global $adb;
if($account_name != '')
{
$sql = "select accountid from account where accountname='".$account_name."'";
$result = $adb->query($sql);
$accountid = $adb->query_result($result,0,"accountid");
}
return $accountid;
}
function getAdvComparator($comparator,$value)
{
/* fLabels['e'] = 'equals';
fLabels['n'] = 'not equal to';
fLabels['s'] = 'starts with';
fLabels['c'] = 'contains';
fLabels['k'] = 'does not contain';
fLabels['l'] = 'less than';
fLabels['g'] = 'greater than';
fLabels['m'] = 'less or equal';
fLabels['h'] = 'greater or equal';*/
//require_once('include/database/PearDatabase.php');
if($comparator == "e")
{
if(trim($value) != "")
{
$rtvalue = " = ".PearDatabase::quote($value);
}else
{
$rtvalue = " is NULL";
}
}
if($comparator == "n")
{
if(trim($value) != "")
{
$rtvalue = " <> ".PearDatabase::quote($value);
}else
{
$rtvalue = "is NOT NULL";
}
}
if($comparator == "s")
{
$rtvalue = " like ".PearDatabase::quote($value."%");
}
if($comparator == "c")
{
$rtvalue = " like ".PearDatabase::quote("%".$value."%");
}
if($comparator == "k")
{
$rtvalue = " not like ".PearDatabase::quote("%".$value."%");
}
if($comparator == "l")
{
$rtvalue = " < ".PearDatabase::quote($value);
}
if($comparator == "g")
{
$rtvalue = " > ".PearDatabase::quote($value);
}
if($comparator == "m")
{
$rtvalue = " <= ".PearDatabase::quote($value);
}
if($comparator == "h")
{
$rtvalue = " >= ".PearDatabase::quote($value);
}
return $rtvalue;
}
function getDateforStdFilterBytype($type)
{
$today = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d"), date("Y")));
$tomorrow = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+1, date("Y")));
$yesterday = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-1, date("Y")));
$currentmonth0 = date("Y-m-d",mktime(0, 0, 0, date("m"), "01", date("Y")));
$currentmonth1 = date("Y-m-t");
$lastmonth0 = date("Y-m-d",mktime(0, 0, 0, date("m")-1, "01", date("Y")));
$lastmonth1 = date("Y-m-t", strtotime("-1 Month"));
$nextmonth0 = date("Y-m-d",mktime(0, 0, 0, date("m")+1, "01", date("Y")));
$nextmonth1 = date("Y-m-t", strtotime("+1 Month"));
$lastweek0 = date("Y-m-d",strtotime("-2 week Sunday"));
$lastweek1 = date("Y-m-d",strtotime("-1 week Saturday"));
$thisweek0 = date("Y-m-d",strtotime("-1 week Sunday"));
$thisweek1 = date("Y-m-d",strtotime("this Saturday"));
$nextweek0 = date("Y-m-d",strtotime("this Sunday"));
$nextweek1 = date("Y-m-d",strtotime("+1 week Saturday"));
$next7days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+6, date("Y")));
$next30days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+29, date("Y")));
$next60days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+59, date("Y")));
$next90days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+89, date("Y")));
$next120days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")+119, date("Y")));
$last7days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-6, date("Y")));
$last30days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-29, date("Y")));
$last60days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-59, date("Y")));
$last90days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-89, date("Y")));
$last120days = date("Y-m-d",mktime(0, 0, 0, date("m") , date("d")-119, date("Y")));
$currentFY0 = date("Y-m-d",mktime(0, 0, 0, "01", "01", date("Y")));
$currentFY1 = date("Y-m-t",mktime(0, 0, 0, "12", date("d"), date("Y")));
$lastFY0 = date("Y-m-d",mktime(0, 0, 0, "01", "01", date("Y")-1));
$lastFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y")-1));
$nextFY0 = date("Y-m-d",mktime(0, 0, 0, "01", "01", date("Y")+1));
$nextFY1 = date("Y-m-t", mktime(0, 0, 0, "12", date("d"), date("Y")+1));
if($type == "today" )
{
$datevalue[0] = $today;
$datevalue[1] = $today;
}
elseif($type == "yesterday" )
{
$datevalue[0] = $yesterday;
$datevalue[1] = $yesterday;
}
elseif($type == "tomorrow" )
{
$datevalue[0] = $tomorrow;
$datevalue[1] = $tomorrow;
}
elseif($type == "thisweek" )
{
$datevalue[0] = $thisweek0;
$datevalue[1] = $thisweek1;
}
elseif($type == "lastweek" )
{
$datevalue[0] = $lastweek0;
$datevalue[1] = $lastweek1;
}
elseif($type == "nextweek" )
{
$datevalue[0] = $nextweek0;
$datevalue[1] = $nextweek1;
}
elseif($type == "thismonth" )
{
$datevalue[0] =$currentmonth0;
$datevalue[1] = $currentmonth1;
}
elseif($type == "lastmonth" )
{
$datevalue[0] = $lastmonth0;
$datevalue[1] = $lastmonth1;
}
elseif($type == "nextmonth" )
{
$datevalue[0] = $nextmonth0;
$datevalue[1] = $nextmonth1;
}
elseif($type == "next7days" )
{
$datevalue[0] = $today;
$datevalue[1] = $next7days;
}
elseif($type == "next30days" )
{
$datevalue[0] =$today;
$datevalue[1] =$next30days;
}
elseif($type == "next60days" )
{
$datevalue[0] = $today;
$datevalue[1] = $next60days;
}
elseif($type == "next90days" )
{
$datevalue[0] = $today;
$datevalue[1] = $next90days;
}
elseif($type == "next120days" )
{
$datevalue[0] = $today;
$datevalue[1] = $next120days;
}
elseif($type == "last7days" )
{
$datevalue[0] = $last7days;
$datevalue[1] = $today;
}
elseif($type == "last30days" )
{
$datevalue[0] = $last30days;
$datevalue[1] = $today;
}
elseif($type == "last60days" )
{
$datevalue[0] = $last60days;
$datevalue[1] = $today;
}
else if($type == "last90days" )
{
$datevalue[0] = $last90days;
$datevalue[1] = $today;
}
elseif($type == "last120days" )
{
$datevalue[0] = $last120days;
$datevalue[1] = $today;
}
elseif($type == "thisfy" )
{
$datevalue[0] = $currentFY0;
$datevalue[1] = $currentFY1;
}
elseif($type == "prevfy" )
{
$datevalue[0] = $lastFY0;
$datevalue[1] = $lastFY1;
}
elseif($type == "nextfy" )
{
$datevalue[0] = $nextFY0;
$datevalue[1] = $nextFY1;
}
elseif($type == "nextfq" )
{
$datevalue[0] = "2005-07-01";
$datevalue[1] = "2005-09-30";
}
elseif($type == "prevfq" )
{
$datevalue[0] = "2005-01-01";
$datevalue[1] = "2005-03-31";
}
elseif($type == "thisfq" )
{
$datevalue[0] = "2005-04-01";
$datevalue[1] = "2005-06-30";
}
else
{
$datevalue[0] = "";
$datevalue[1] = "";
}
return $datevalue;
}
function getModifiedCvListQuery($viewid,$listquery,$module)
{
if($viewid != "" && $listquery != "")
{
$listviewquery = substr($listquery, strpos($listquery,'from'),strlen($listquery));
//$listviewquery = substr($listviewquery,strpos($listviewquery,'from'),strpos($listviewquery,'where'));
//$wherequery = substr($listquery, strpos($listquery,'where'),strlen($listquery));
//echo $listviewquery." ".$wherequery;
if($module == "Activities" || $module == "Emails")
{
$query = "select ".$this->getCvColumnListSQL($viewid)." ,crmentity.crmid,activity.* ".$listviewquery;
}else if($module == "Notes")
{
$query = "select ".$this->getCvColumnListSQL($viewid)." ,crmentity.crmid,notes.* ".$listviewquery;
}
else if($module == "Products")
{
$query = "select ".$this->getCvColumnListSQL($viewid)." ,crmentity.crmid,products.* ".$listviewquery;
}else
{
$query = "select ".$this->getCvColumnListSQL($viewid)." ,crmentity.crmid ".$listviewquery;
}
$stdfiltersql = $this->getCVStdFilterSQL($viewid);
$advfiltersql = $this->getCVAdvFilterSQL($viewid);
if(isset($stdfiltersql) && $stdfiltersql != '')
{
$query .= ' and '.$stdfiltersql;
}
if(isset($advfiltersql) && $advfiltersql != '')
{
$query .= ' and '.$advfiltersql;
}
}
//echo $query;
return $query;
}
function getMetricsCvListQuery($viewid,$listquery,$module)
{
if($viewid != "" && $listquery != "")
{
$listviewquery = substr($listquery, strpos($listquery,'from'),strlen($listquery));
$query = "select count(*) count ".$listviewquery;
$stdfiltersql = $this->getCVStdFilterSQL($viewid);
$advfiltersql = $this->getCVAdvFilterSQL($viewid);
if(isset($stdfiltersql) && $stdfiltersql != '')
{
$query .= ' and '.$stdfiltersql;
}
if(isset($advfiltersql) && $advfiltersql != '')
{
$query .= ' and '.$advfiltersql;
}
}
return $query;
}
/*function getMetricsCustomView($viewnames)
{
global $adb;
$tabid = getTabid($this->customviewmodule);
$ssql = "select customview.* from customview inner join tab on tab.name = customview.entitytype";
$ssql .= " where ;
//echo $ssql;
$result = $adb->query($ssql);
while($cvrow=$adb->fetch_array($result))
{
if($cvrow['setdefault'] == 1)
{
$shtml .= "<option selected value=\"".$cvrow['cvid']."\">".$cvrow['viewname']."</option>";
$this->setdefaultviewid = $cvrow['cvid'];
}
else
{
$shtml .= "<option value=\"".$cvrow['cvid']."\">".$cvrow['viewname']."</option>";
}
}
//echo $shtml;
return $shtml;
}*/
function getCustomActionDetails($cvid)
{
global $adb;
$sSQL = "select customaction.* from customaction inner join customview on customaction.cvid = customview.cvid";
$sSQL .= " where customaction.cvid=".$cvid;
//echo $sSQL;
$result = $adb->query($sSQL);
while($carow = $adb->fetch_array($result))
{
$calist["subject"] = $carow["subject"];
$calist["module"] = $carow["module"];
$calist["content"] = $carow["content"];
$calist["cvid"] = $carow["cvid"];
}
return $calist;
}
function getParentId($fields,$values)
{
global $adb;
if($fields = 'crmentity.smownerid')
{
$sSQL = " left join users on users".$value;
$result = $adb->query($sSQL);
}
}
}
?>