/trunk/rucrm/modules/Reports/ReportRun.php
PHP | 2982 lines | 2517 code | 261 blank | 204 comment | 924 complexity | a5bd9e1add0aaf621ac1d8d072e6e847 MD5 | raw file
Possible License(s): LGPL-2.1, MPL-2.0-no-copyleft-exception, GPL-2.0, LGPL-3.0
Large files files are truncated, but you can click here to view the full file
- <?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 $theme;
- global $log;
- $theme_path="themes/".$theme."/";
- $image_path=$theme_path."images/";
- require_once('include/database/PearDatabase.php');
- require_once('data/CRMEntity.php');
- require_once("modules/Reports/Reports.php");
- class ReportRun extends CRMEntity
- {
- var $primarymodule;
- var $secondarymodule;
- var $orderbylistsql;
- var $orderbylistcolumns;
- var $selectcolumns;
- var $groupbylist;
- var $reporttype;
- var $reportname;
- var $totallist;
-
- var $_groupinglist = false;
- var $_columnslist = false;
- var $_stdfilterlist = false;
- var $_columnstotallist = false;
- var $_advfiltersql = false;
-
- var $convert_currency = array('Potentials_Amount', 'Accounts_Annual_Revenue', 'Leads_Annual_Revenue', 'Campaigns_Budget_Cost',
- 'Campaigns_Actual_Cost', 'Campaigns_Expected_Revenue', 'Campaigns_Actual_ROI', 'Campaigns_Expected_ROI');
- //var $add_currency_sym_in_headers = array('Amount', 'Unit_Price', 'Total', 'Sub_Total', 'S&H_Amount', 'Discount_Amount', 'Adjustment');
- var $append_currency_symbol_to_value = array('Products_Unit_Price','Services_Price',
- 'Invoice_Total', 'Invoice_Sub_Total', 'Invoice_S&H_Amount', 'Invoice_Discount_Amount', 'Invoice_Adjustment',
- 'Quotes_Total', 'Quotes_Sub_Total', 'Quotes_S&H_Amount', 'Quotes_Discount_Amount', 'Quotes_Adjustment',
- 'SalesOrder_Total', 'SalesOrder_Sub_Total', 'SalesOrder_S&H_Amount', 'SalesOrder_Discount_Amount', 'SalesOrder_Adjustment',
- 'PurchaseOrder_Total', 'PurchaseOrder_Sub_Total', 'PurchaseOrder_S&H_Amount', 'PurchaseOrder_Discount_Amount', 'PurchaseOrder_Adjustment'
- );
- var $ui10_fields = array();
-
- /** Function to set reportid,primarymodule,secondarymodule,reporttype,reportname, for given reportid
- * This function accepts the $reportid as argument
- * It sets reportid,primarymodule,secondarymodule,reporttype,reportname for the given reportid
- */
- function ReportRun($reportid)
- {
- $oReport = new Reports($reportid);
- $this->reportid = $reportid;
- $this->primarymodule = $oReport->primodule;
- $this->secondarymodule = $oReport->secmodule;
- $this->reporttype = $oReport->reporttype;
- $this->reportname = $oReport->reportname;
- }
- /** Function to get the columns for the reportid
- * This function accepts the $reportid and $outputformat (optional)
- * This function returns $columnslist Array($tablename:$columnname:$fieldlabel:$fieldname:$typeofdata=>$tablename.$columnname As Header value,
- * $tablename1:$columnname1:$fieldlabel1:$fieldname1:$typeofdata1=>$tablename1.$columnname1 As Header value,
- * |
- * $tablenamen:$columnnamen:$fieldlabeln:$fieldnamen:$typeofdatan=>$tablenamen.$columnnamen As Header value
- * )
- *
- */
- function getQueryColumnsList($reportid,$outputformat='')
- {
- // Have we initialized information already?
- if($this->_columnslist !== false) {
- return $this->_columnslist;
- }
-
- global $adb;
- global $modules;
- global $log,$current_user,$current_language;
- $ssql = "select vtiger_selectcolumn.* from vtiger_report inner join vtiger_selectquery on vtiger_selectquery.queryid = vtiger_report.queryid";
- $ssql .= " left join vtiger_selectcolumn on vtiger_selectcolumn.queryid = vtiger_selectquery.queryid";
- $ssql .= " where vtiger_report.reportid = ?";
- $ssql .= " order by vtiger_selectcolumn.columnindex";
- $result = $adb->pquery($ssql, array($reportid));
- $permitted_fields = Array();
- while($columnslistrow = $adb->fetch_array($result))
- {
- $fieldname ="";
- $fieldcolname = $columnslistrow["columnname"];
- list($tablename,$colname,$module_field,$fieldname,$single) = split(":",$fieldcolname);
- list($module,$field) = split("_",$module_field);
- $inventory_fields = array('quantity','listprice','serviceid','productid','discount','comment');
- $inventory_modules = array('SalesOrder','Quotes','PurchaseOrder','Invoice');
- require('user_privileges/user_privileges_'.$current_user->id.'.php');
- if(sizeof($permitted_fields) == 0 && $is_admin == false && $profileGlobalPermission[1] == 1 && $profileGlobalPermission[2] == 1)
- {
- list($module,$field) = split("_",$module_field);
- $permitted_fields = $this->getaccesfield($module);
- }
- if(in_array($module,$inventory_modules)){
- $permitted_fields = array_merge($permitted_fields,$inventory_fields);
- }
- $selectedfields = explode(":",$fieldcolname);
- $querycolumns = $this->getEscapedColumns($selectedfields);
-
- $mod_strings = return_module_language($current_language,$module);
- $fieldlabel = trim(str_replace($module," ",$selectedfields[2]));
- $mod_arr=explode('_',$fieldlabel);
- $mod = ($mod_arr[0] == '')?$module:$mod_arr[0];
- $fieldlabel = trim(str_replace("_"," ",$fieldlabel));
- //modified code to support i18n issue
- $fld_arr = explode(" ",$fieldlabel);
- $mod_lbl = getTranslatedString($fld_arr[0],$module); //module
- array_shift($fld_arr);
- $fld_lbl_str = implode(" ",$fld_arr);
- $fld_lbl = getTranslatedString($fld_lbl_str,$module); //fieldlabel
- $fieldlabel = $mod_lbl." ".$fld_lbl;
- if((CheckFieldPermission($fieldname,$mod) != 'true' && $colname!="crmid" && (!in_array($fieldname,$inventory_fields) && in_array($module,$inventory_modules))) || empty($fieldname))
- {
- continue;
- }
- else
- {
- $header_label = $selectedfields[2]; // Header label to be displayed in the reports table
- // To check if the field in the report is a custom field
- // and if yes, get the label of this custom field freshly from the vtiger_field as it would have been changed.
- // Asha - Reference ticket : #4906
-
- if($querycolumns == "")
- {
- if($selectedfields[4] == 'C')
- {
- $field_label_data = split("_",$selectedfields[2]);
- $module= $field_label_data[0];
- if($module!=$this->primarymodule)
- $columnslist[$fieldcolname] = "case when (".$selectedfields[0].".".$selectedfields[1]."='1')then 'yes' else case when (vtiger_crmentity$module.crmid !='') then 'no' else '-' end end as '$selectedfields[2]'";
- else
- $columnslist[$fieldcolname] = "case when (".$selectedfields[0].".".$selectedfields[1]."='1')then 'yes' else case when (vtiger_crmentity.crmid !='') then 'no' else '-' end end as '$selectedfields[2]'";
- }
- elseif($selectedfields[0] == 'vtiger_activity' && $selectedfields[1] == 'status')
- {
- $columnslist[$fieldcolname] = " case when (vtiger_activity.status not like '') then vtiger_activity.status else vtiger_activity.eventstatus end as Calendar_Status";
- }
- elseif($selectedfields[0] == 'vtiger_activity' && $selectedfields[1] == 'date_start')
- {
- $columnslist[$fieldcolname] = "cast(concat(vtiger_activity.date_start,' ',vtiger_activity.time_start) as DATETIME) as Calendar_Start_Date_and_Time";
- }
- elseif(stristr($selectedfields[0],"vtiger_users") && ($selectedfields[1] == 'user_name') && $module_field != 'Products_Handler' && $module_field!='Services_Owner')
- {
- $temp_module_from_tablename = str_replace("vtiger_users","",$selectedfields[0]);
- if($module!=$this->primarymodule){
- $condition = "and vtiger_crmentity".$module.".crmid!=''";
- } else {
- $condition = "and vtiger_crmentity.crmid!=''";
- }
- if($temp_module_from_tablename == $module)
- $columnslist[$fieldcolname] = " case when (".$selectedfields[0].".user_name not like '' $condition) then ".$selectedfields[0].".user_name else vtiger_groups".$module.".groupname end as '".$module."_Assigned_To'";
- else//Some Fields can't assigned to groups so case avoided (fields like inventory manager)
- $columnslist[$fieldcolname] = $selectedfields[0].".user_name as '".$header_label."'";
-
- }
- elseif(stristr($selectedfields[0],"vtiger_users") && ($selectedfields[1] == 'user_name') && $module_field == 'Products_Handler')//Products cannot be assiged to group only to handler so group is not included
- {
- $columnslist[$fieldcolname] = $selectedfields[0].".user_name as ".$module."_Handler";
- }
- elseif($selectedfields[0] == "vtiger_crmentity".$this->primarymodule)
- {
- $columnslist[$fieldcolname] = "vtiger_crmentity.".$selectedfields[1]." AS '".$header_label."'";
- }
- elseif($selectedfields[0] == 'vtiger_invoice' && $selectedfields[1] == 'salesorderid')//handled for salesorder fields in Invoice Module Reports
- {
- $columnslist[$fieldcolname] = "vtiger_salesorderInvoice.subject AS '".$selectedfields[2]."'";
- }
- elseif($selectedfields[0] == 'vtiger_campaign' && $selectedfields[1] == 'product_id')//handled for product fields in Campaigns Module Reports
- {
- $columnslist[$fieldcolname] = "vtiger_productsCampaigns.productname AS '".$header_label."'";
- }
- elseif($selectedfields[0] == 'vtiger_products' && $selectedfields[1] == 'unit_price')//handled for product fields in Campaigns Module Reports
- {
- $columnslist[$fieldcolname] = "concat(".$selectedfields[0].".currency_id,'::',innerProduct.actual_unit_price) as '". $header_label ."'";
- }
- elseif(in_array($selectedfields[2], $this->append_currency_symbol_to_value)) {
- $columnslist[$fieldcolname] = "concat(".$selectedfields[0].".currency_id,'::',".$selectedfields[0].".".$selectedfields[1].") as '" . $header_label ."'";
- }
- elseif($selectedfields[0] == 'vtiger_notes' && ($selectedfields[1] == 'filelocationtype' || $selectedfields[1] == 'filesize' || $selectedfields[1] == 'folderid' || $selectedfields[1]=='filestatus'))//handled for product fields in Campaigns Module Reports
- {
- if($selectedfields[1] == 'filelocationtype'){
- $columnslist[$fieldcolname] = "case ".$selectedfields[0].".".$selectedfields[1]." when 'I' then 'Internal' when 'E' then 'External' else '-' end as '$selectedfields[2]'";
- } else if($selectedfields[1] == 'folderid'){
- $columnslist[$fieldcolname] = "vtiger_attachmentsfolder.foldername as '$selectedfields[2]'";
- } elseif($selectedfields[1] == 'filestatus'){
- $columnslist[$fieldcolname] = "case ".$selectedfields[0].".".$selectedfields[1]." when '1' then 'yes' when '0' then 'no' else '-' end as '$selectedfields[2]'";
- } elseif($selectedfields[1] == 'filesize'){
- $columnslist[$fieldcolname] = "case ".$selectedfields[0].".".$selectedfields[1]." when '' then '-' else concat(".$selectedfields[0].".".$selectedfields[1]."/1024,' ','KB') end as '$selectedfields[2]'";
- }
- }
- elseif($selectedfields[0] == 'vtiger_inventoryproductrel')//handled for product fields in Campaigns Module Reports
- {
- if($selectedfields[1] == 'discount'){
- $columnslist[$fieldcolname] = " case when (vtiger_inventoryproductrel{$module}.discount_amount != '') then vtiger_inventoryproductrel{$module}.discount_amount else ROUND((vtiger_inventoryproductrel{$module}.listprice * vtiger_inventoryproductrel{$module}.quantity * (vtiger_inventoryproductrel{$module}.discount_percent/100)),3) end as '" . $header_label ."'";
- } else if($selectedfields[1] == 'productid'){
- $columnslist[$fieldcolname] = "vtiger_products{$module}.productname as '" . $header_label ."'";
- } else if($selectedfields[1] == 'serviceid'){
- $columnslist[$fieldcolname] = "vtiger_service{$module}.servicename as '" . $header_label ."'";
- } else {
- $columnslist[$fieldcolname] = $selectedfields[0].$module.".".$selectedfields[1]." as '".$header_label."'";
- }
- }
- elseif(stristr($selectedfields[1],'cf_')==true && stripos($selectedfields[1],'cf_')==0)
- {
- $columnslist[$fieldcolname] = $selectedfields[0].".".$selectedfields[1]." AS '".$adb->sql_escape_string(decode_html($header_label))."'";
- }
- else
- {
- $columnslist[$fieldcolname] = $selectedfields[0].".".$selectedfields[1]." AS '".$header_label."'";
- }
- }
- else
- {
- $columnslist[$fieldcolname] = $querycolumns;
- }
- }
- }
- if ($outputformat == "HTML") $columnslist['vtiger_crmentity:crmid:LBL_ACTION:crmid:I'] = 'vtiger_crmentity.crmid AS "LBL_ACTION"' ;
- // Save the information
- $this->_columnslist = $columnslist;
-
- $log->info("ReportRun :: Successfully returned getQueryColumnsList".$reportid);
- return $columnslist;
- }
-
- /** Function to get field columns based on profile
- * @ param $module : Type string
- * returns permitted fields in array format
- */
- function getaccesfield($module)
- {
- global $current_user;
- global $adb;
- $access_fields = Array();
-
- $profileList = getCurrentUserProfileList();
- $query = "select vtiger_field.fieldname from vtiger_field inner join vtiger_profile2field on vtiger_profile2field.fieldid=vtiger_field.fieldid inner join vtiger_def_org_field on vtiger_def_org_field.fieldid=vtiger_field.fieldid where";
- $params = array();
- if($module == "Calendar")
- {
- if (count($profileList) > 0) {
- $query .= " vtiger_field.tabid in (9,16) and vtiger_field.displaytype in (1,2,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_profile2field.profileid in (". generateQuestionMarks($profileList) .") group by vtiger_field.fieldid order by block,sequence";
- array_push($params, $profileList);
- } else {
- $query .= " vtiger_field.tabid in (9,16) and vtiger_field.displaytype in (1,2,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 group by vtiger_field.fieldid order by block,sequence";
- }
- }
- else
- {
- array_push($params, $this->primarymodule, $this->secondarymodule);
- if (count($profileList) > 0) {
- $query .= " vtiger_field.tabid in (select tabid from vtiger_tab where vtiger_tab.name in (?,?)) and vtiger_field.displaytype in (1,2,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_profile2field.profileid in (". generateQuestionMarks($profileList) .") group by vtiger_field.fieldid order by block,sequence";
- array_push($params, $profileList);
- } else {
- $query .= " vtiger_field.tabid in (select tabid from vtiger_tab where vtiger_tab.name in (?,?)) and vtiger_field.displaytype in (1,2,3) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 group by vtiger_field.fieldid order by block,sequence";
- }
- }
- $result = $adb->pquery($query, $params);
-
- while($collistrow = $adb->fetch_array($result))
- {
- $access_fields[] = $collistrow["fieldname"];
- }
- //added to include ticketid for Reports module in select columnlist for all users
- if($module == "HelpDesk")
- $access_fields[] = "ticketid";
- return $access_fields;
- }
-
- /** Function to get Escapedcolumns for the field in case of multiple parents
- * @ param $selectedfields : Type Array
- * returns the case query for the escaped columns
- */
- function getEscapedColumns($selectedfields)
- {
- global $current_user,$adb;
- $fieldname = $selectedfields[3];
- $tmp = split("_",$selectedfields[2]);
- $module = $tmp[0];
-
- if($fieldname == "parent_id" && ($module == "HelpDesk" || $module == "Calendar"))
- {
- if($module == "HelpDesk" && $selectedfields[0] == "vtiger_crmentityRelHelpDesk")
- {
- $querycolumn = "case vtiger_crmentityRelHelpDesk.setype when 'Accounts' then vtiger_accountRelHelpDesk.accountname when 'Contacts' then concat(vtiger_contactdetailsRelHelpDesk.lastname,' ',vtiger_contactdetailsRelHelpDesk.firstname) End"." '".$selectedfields[2]."', vtiger_crmentityRelHelpDesk.setype 'Entity_type'";
- return $querycolumn;
- }
- if($module == "Calendar") {
- $querycolumn = "case vtiger_crmentityRelCalendar.setype when 'Accounts' then vtiger_accountRelCalendar.accountname when 'Leads' then concat(vtiger_leaddetailsRelCalendar.lastname,' ',vtiger_leaddetailsRelCalendar.firstname) when 'Potentials' then vtiger_potentialRelCalendar.potentialname when 'Quotes' then vtiger_quotesRelCalendar.subject when 'PurchaseOrder' then vtiger_purchaseorderRelCalendar.subject when 'Invoice' then vtiger_invoiceRelCalendar.subject when 'SalesOrder' then vtiger_salesorderRelCalendar.subject when 'HelpDesk' then vtiger_troubleticketsRelCalendar.title when 'Campaigns' then vtiger_campaignRelCalendar.campaignname End"." '".$selectedfields[2]."', vtiger_crmentityRelCalendar.setype 'Entity_type'";
- }
- } elseif($fieldname == "contact_id" && strpos($selectedfields[2],"Contact_Name")) {
- if(($this->primarymodule == 'PurchaseOrder' || $this->primarymodule == 'SalesOrder' || $this->primarymodule == 'Quotes' || $this->primarymodule == 'Invoice' || $this->primarymodule == 'Calendar') && $module==$this->primarymodule) {
- if (getFieldVisibilityPermission("Contacts", $current_user->id, "firstname") == '0')
- $querycolumn = " case when vtiger_crmentity.crmid!='' then concat(vtiger_contactdetails".$this->primarymodule.".lastname,' ',vtiger_contactdetails".$this->primarymodule.".firstname) else '-' end as ".$selectedfields[2];
- else
- $querycolumn = " case when vtiger_crmentity.crmid!='' then vtiger_contactdetails".$this->primarymodule.".lastname else '-' end as ".$selectedfields[2];
- }
- if(stristr($this->secondarymodule,$module) && ($module== 'Quotes' || $module== 'SalesOrder' || $module== 'PurchaseOrder' ||$module== 'Calendar' || $module == 'Invoice')) {
- if (getFieldVisibilityPermission("Contacts", $current_user->id, "firstname") == '0')
- $querycolumn = " case when vtiger_crmentity".$module.".crmid!='' then concat(vtiger_contactdetails".$module.".lastname,' ',vtiger_contactdetails".$module.".firstname) else '-' end as ".$selectedfields[2];
- else
- $querycolumn = " case when vtiger_crmentity".$module.".crmid!='' then vtiger_contactdetails".$module.".lastname else '-' end as ".$selectedfields[2];
- }
- }
- else{
- if(stristr($selectedfields[0],"vtiger_crmentityRel")){
- $module = str_replace("vtiger_crmentityRel","",$selectedfields[0]);
- $fields_query = $adb->pquery("SELECT vtiger_field.fieldname,vtiger_field.tablename,vtiger_field.fieldid from vtiger_field INNER JOIN vtiger_tab on vtiger_tab.name = ? WHERE vtiger_tab.tabid=vtiger_field.tabid and vtiger_field.fieldname=?",array($module,$selectedfields[3]));
-
- if($adb->num_rows($fields_query)>0){
- for($i=0;$i<$adb->num_rows($fields_query);$i++){
- $field_name = $selectedfields[3];
- $field_id = $adb->query_result($fields_query,$i,'fieldid');
- $tab_name = $selectedfields[1];
- $ui10_modules_query = $adb->pquery("SELECT relmodule FROM vtiger_fieldmodulerel WHERE fieldid=?",array($field_id));
-
- if($adb->num_rows($ui10_modules_query)>0){
- $querycolumn = " case vtiger_crmentityRel$module$field_id.setype";
- for($j=0;$j<$adb->num_rows($ui10_modules_query);$j++){
- $rel_mod = $adb->query_result($ui10_modules_query,$j,'relmodule');
- $rel_obj = CRMEntity::getInstance($rel_mod);
- vtlib_setup_modulevars($rel_mod, $rel_obj);
-
- $rel_tab_name = $rel_obj->table_name;
- $link_field = $rel_tab_name."Rel".$module.".".$rel_obj->list_link_field;
-
- if($rel_mod=="Contacts" || $rel_mod=="Leads"){
- if(getFieldVisibilityPermission($rel_mod,$current_user->id,'firstname')==0){
- $link_field = "concat($link_field,' ',".$rel_tab_name."Rel$module"."_via_field".$field_id.".firstname)";
- }
- }
- $querycolumn.= " when '$rel_mod' then $link_field ";
- }
- $querycolumn .= "end as '".$selectedfields[2]."', vtiger_crmentityRel$module$field_id.setype as 'Entity_type'" ;
- }
- }
- }
-
- }
- if($fieldname == 'creator'){
- $querycolumn .= "case when (vtiger_usersModComments.user_name not like '' and vtiger_crmentity.crmid!='') then vtiger_usersModComments.user_name end as 'ModComments_Creator'";
- }
- }
- return $querycolumn;
- }
- /** Function to get selectedcolumns for the given reportid
- * @ param $reportid : Type Integer
- * returns the query of columnlist for the selected columns
- */
- function getSelectedColumnsList($reportid)
- {
- global $adb;
- global $modules;
- global $log;
- $ssql = "select vtiger_selectcolumn.* from vtiger_report inner join vtiger_selectquery on vtiger_selectquery.queryid = vtiger_report.queryid";
- $ssql .= " left join vtiger_selectcolumn on vtiger_selectcolumn.queryid = vtiger_selectquery.queryid where vtiger_report.reportid = ? ";
- $ssql .= " order by vtiger_selectcolumn.columnindex";
- $result = $adb->pquery($ssql, array($reportid));
- $noofrows = $adb->num_rows($result);
- if ($this->orderbylistsql != "")
- {
- $sSQL .= $this->orderbylistsql.", ";
- }
- for($i=0; $i<$noofrows; $i++)
- {
- $fieldcolname = $adb->query_result($result,$i,"columnname");
- $ordercolumnsequal = true;
- if($fieldcolname != "")
- {
- for($j=0;$j<count($this->orderbylistcolumns);$j++)
- {
- if($this->orderbylistcolumns[$j] == $fieldcolname)
- {
- $ordercolumnsequal = false;
- break;
- }else
- {
- $ordercolumnsequal = true;
- }
- }
- if($ordercolumnsequal)
- {
- $selectedfields = explode(":",$fieldcolname);
- if($selectedfields[0] == "vtiger_crmentity".$this->primarymodule)
- $selectedfields[0] = "vtiger_crmentity";
- $sSQLList[] = $selectedfields[0].".".$selectedfields[1]." '".$selectedfields[2]."'";
- }
- }
- }
- $sSQL .= implode(",",$sSQLList);
- $log->info("ReportRun :: Successfully returned getSelectedColumnsList".$reportid);
- return $sSQL;
- }
- /** Function to get advanced comparator in query form for the given Comparator and value
- * @ param $comparator : Type String
- * @ param $value : Type String
- * returns the check query for the comparator
- */
- function getAdvComparator($comparator,$value,$datatype="")
- {
- global $log,$adb,$default_charset,$ogReport;
- $value=html_entity_decode(trim($value),ENT_QUOTES,$default_charset);
- $value_len = strlen($value);
- $is_field = false;
- if($value[0]=='$' && $value[$value_len-1]=='$'){
- $temp = str_replace('$','',$value);
- $is_field = true;
- }
- if($datatype=='C'){
- $value = str_replace("yes","1",str_replace("no","0",$value));
- }
- if($is_field==true){
- $value = $this->getFilterComparedField($temp);
- }
- if($comparator == "e")
- {
- if(trim($value) == "NULL")
- {
- $rtvalue = " is NULL";
- }elseif(trim($value) != "")
- {
- $rtvalue = " = ".$adb->quote($value);
- }elseif(trim($value) == "" && $datatype == "V")
- {
- $rtvalue = " = ".$adb->quote($value);
- }else
- {
- $rtvalue = " is NULL";
- }
- }
- if($comparator == "n")
- {
- if(trim($value) == "NULL")
- {
- $rtvalue = " is NOT NULL";
- }elseif(trim($value) != "")
- {
- $rtvalue = " <> ".$adb->quote($value);
- }elseif(trim($value) == "" && $datatype == "V")
- {
- $rtvalue = " <> ".$adb->quote($value);
- }else
- {
- $rtvalue = " is NOT NULL";
- }
- }
- if($comparator == "s")
- {
- $rtvalue = " like '". formatForSqlLike($value, 2,$is_field) ."'";
- }
- if($comparator == "ew")
- {
- $rtvalue = " like '". formatForSqlLike($value, 1,$is_field) ."'";
- }
- if($comparator == "c")
- {
- $rtvalue = " like '". formatForSqlLike($value,0,$is_field) ."'";
- }
- if($comparator == "k")
- {
- $rtvalue = " not like '". formatForSqlLike($value,0,$is_field) ."'";
- }
- if($comparator == "l")
- {
- $rtvalue = " < ".$adb->quote($value);
- }
- if($comparator == "g")
- {
- $rtvalue = " > ".$adb->quote($value);
- }
- if($comparator == "m")
- {
- $rtvalue = " <= ".$adb->quote($value);
- }
- if($comparator == "h")
- {
- $rtvalue = " >= ".$adb->quote($value);
- }
- if($comparator == "b") {
- $rtvalue = " < ".$adb->quote($value);
- }
- if($comparator == "a") {
- $rtvalue = " > ".$adb->quote($value);
- }
- if($is_field==true){
- $rtvalue = str_replace("'","",$rtvalue);
- $rtvalue = str_replace("\\","",$rtvalue);
- }
- $log->info("ReportRun :: Successfully returned getAdvComparator");
- return $rtvalue;
- }
- /** Function to get field that is to be compared in query form for the given Comparator and field
- * @ param $field : field
- * returns the value for the comparator
- */
- function getFilterComparedField($field){
- global $adb,$ogReport;
- $field = split('#',$field);
- $module = $field[0];
- $fieldname = trim($field[1]);
- $tabid = getTabId($module);
- $field_query = $adb->pquery("SELECT tablename,columnname,typeofdata,fieldname,uitype FROM vtiger_field WHERE tabid = ? AND fieldname= ?",array($tabid,$fieldname));
- $fieldtablename = $adb->query_result($field_query,0,'tablename');
- $fieldcolname = $adb->query_result($field_query,0,'columnname');
- $typeofdata = $adb->query_result($field_query,0,'typeofdata');
- $fieldtypeofdata=ChangeTypeOfData_Filter($fieldtablename,$fieldcolname,$typeofdata[0]);
- $uitype = $adb->query_result($field_query,0,'uitype');
- /*if($tr[0]==$ogReport->primodule)
- $value = $adb->query_result($field_query,0,'tablename').".".$adb->query_result($field_query,0,'columnname');
- else
- $value = $adb->query_result($field_query,0,'tablename').$tr[0].".".$adb->query_result($field_query,0,'columnname');
- */
- if($uitype == 68 || $uitype == 59)
- {
- $fieldtypeofdata = 'V';
- }
- if($fieldtablename == "vtiger_crmentity")
- {
- $fieldtablename = $fieldtablename.$module;
- }
- if($fieldname == "assigned_user_id")
- {
- $fieldtablename = "vtiger_users".$module;
- $fieldcolname = "user_name";
- }
- if($fieldname == "account_id")
- {
- $fieldtablename = "vtiger_account".$module;
- $fieldcolname = "accountname";
- }
- if($fieldname == "contact_id")
- {
- $fieldtablename = "vtiger_contactdetails".$module;
- $fieldcolname = "lastname";
- }
- if($fieldname == "parent_id")
- {
- $fieldtablename = "vtiger_crmentityRel".$module;
- $fieldcolname = "setype";
- }
- if($fieldname == "vendor_id")
- {
- $fieldtablename = "vtiger_vendorRel".$module;
- $fieldcolname = "vendorname";
- }
- if($fieldname == "potential_id")
- {
- $fieldtablename = "vtiger_potentialRel".$module;
- $fieldcolname = "potentialname";
- }
- if($fieldname == "assigned_user_id1")
- {
- $fieldtablename = "vtiger_usersRel1";
- $fieldcolname = "user_name";
- }
- if($fieldname == 'quote_id')
- {
- $fieldtablename = "vtiger_quotes".$module;
- $fieldcolname = "subject";
- }
- if($fieldname == 'product_id' && $fieldtablename == 'vtiger_troubletickets')
- {
- $fieldtablename = "vtiger_productsRel";
- $fieldcolname = "productname";
- }
- if($fieldname == 'product_id' && $fieldtablename == 'vtiger_campaign')
- {
- $fieldtablename = "vtiger_productsCampaigns";
- $fieldcolname = "productname";
- }
- if($fieldname == 'product_id' && $fieldtablename == 'vtiger_products')
- {
- $fieldtablename = "vtiger_productsProducts";
- $fieldcolname = "productname";
- }
- if($fieldname == 'campaignid' && $module=='Potentials')
- {
- $fieldtablename = "vtiger_campaign".$module;
- $fieldcolname = "campaignname";
- }
- $value = $fieldtablename.".".$fieldcolname;
- return $value;
- }
- /** Function to get the advanced filter columns for the reportid
- * This function accepts the $reportid
- * This function returns $columnslist Array($columnname => $tablename:$columnname:$fieldlabel:$fieldname:$typeofdata=>$tablename.$columnname filtercriteria,
- * $tablename1:$columnname1:$fieldlabel1:$fieldname1:$typeofdata1=>$tablename1.$columnname1 filtercriteria,
- * |
- * $tablenamen:$columnnamen:$fieldlabeln:$fieldnamen:$typeofdatan=>$tablenamen.$columnnamen filtercriteria
- * )
- *
- */
- function getAdvFilterSql($reportid)
- {
- // Have we initialized information already?
- if($this->_advfiltersql !== false) {
- return $this->_advfiltersql;
- }
-
- global $adb;
- global $modules;
- global $log;
- $advfiltersql = "";
-
- $advfiltergroupssql = "SELECT * FROM vtiger_relcriteria_grouping WHERE queryid = ? ORDER BY groupid";
- $advfiltergroups = $adb->pquery($advfiltergroupssql, array($reportid));
- $numgrouprows = $adb->num_rows($advfiltergroups);
- $groupctr =0;
- while($advfiltergroup = $adb->fetch_array($advfiltergroups)) {
- $groupctr++;
- $groupid = $advfiltergroup["groupid"];
- $groupcondition = $advfiltergroup["group_condition"];
-
- $advfiltercolumnssql = "select vtiger_relcriteria.* from vtiger_report";
- $advfiltercolumnssql .= " inner join vtiger_selectquery on vtiger_selectquery.queryid = vtiger_report.queryid";
- $advfiltercolumnssql .= " left join vtiger_relcriteria on vtiger_relcriteria.queryid = vtiger_selectquery.queryid";
- $advfiltercolumnssql .= " where vtiger_report.reportid = ? AND vtiger_relcriteria.groupid = ?";
- $advfiltercolumnssql .= " order by vtiger_relcriteria.columnindex";
-
- $result = $adb->pquery($advfiltercolumnssql, array($reportid, $groupid));
- $noofrows = $adb->num_rows($result);
-
- if($noofrows > 0) {
-
- $advfiltergroupsql = "";
- $columnctr = 0;
- while($advfilterrow = $adb->fetch_array($result)) {
- $columnctr++;
- $fieldcolname = $advfilterrow["columnname"];
- $comparator = $advfilterrow["comparator"];
- $value = $advfilterrow["value"];
- $columncondition = $advfilterrow["column_condition"];
-
- if($fieldcolname != "" && $comparator != "") {
- $selectedfields = explode(":",$fieldcolname);
- //Added to handle yes or no for checkbox field in reports advance filters. -shahul
- if($selectedfields[4] == 'C') {
- if(strcasecmp(trim($value),"yes")==0)
- $value="1";
- if(strcasecmp(trim($value),"no")==0)
- $value="0";
- }
- $valuearray = explode(",",trim($value));
- $datatype = (isset($selectedfields[4])) ? $selectedfields[4] : "";
- if(isset($valuearray) && count($valuearray) > 1 && $comparator != 'bw') {
-
- $advcolumnsql = "";
- for($n=0;$n<count($valuearray);$n++) {
-
- if($selectedfields[0] == 'vtiger_crmentityRelHelpDesk' && $selectedfields[1]=='setype') {
- $advcolsql[] = "(case vtiger_crmentityRelHelpDesk.setype when 'Accounts' then vtiger_accountRelHelpDesk.accountname else concat(vtiger_contactdetailsRelHelpDesk.lastname,' ',vtiger_contactdetailsRelHelpDesk.firstname) end) ". $this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- } elseif($selectedfields[0] == 'vtiger_crmentityRelCalendar' && $selectedfields[1]=='setype') {
- $advcolsql[] = "(case vtiger_crmentityRelHelpDesk.setype when 'Accounts' then vtiger_accountRelHelpDesk.accountname else concat(vtiger_contactdetailsRelHelpDesk.lastname,' ',vtiger_contactdetailsRelHelpDesk.firstname) end) ". $this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- } elseif(($selectedfields[0] == "vtiger_users".$this->primarymodule || $selectedfields[0] == "vtiger_users".$this->secondarymodule) && $selectedfields[1] == 'user_name') {
- $module_from_tablename = str_replace("vtiger_users","",$selectedfields[0]);
- if($this->primarymodule == 'Products') {
- $advcolsql[] = ($selectedfields[0].".user_name ".$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype));
- } else {
- $advcolsql[] = " ".$selectedfields[0].".user_name".$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype)." or vtiger_groups".$module_from_tablename.".groupname ".$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- }
- } elseif($selectedfields[1] == 'status') {//when you use comma seperated values.
- if($selectedfields[2] == 'Calendar_Status')
- $advcolsql[] = "(case when (vtiger_activity.status not like '') then vtiger_activity.status else vtiger_activity.eventstatus end)".$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- elseif($selectedfields[2] == 'HelpDesk_Status')
- $advcolsql[] = "vtiger_troubletickets.status".$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- } elseif($selectedfields[1] == 'description') {//when you use comma seperated values.
- if($selectedfields[0]=='vtiger_crmentity'.$this->primarymodule)
- $advcolsql[] = "vtiger_crmentity.description".$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- else
- $advcolsql[] = $selectedfields[0].".".$selectedfields[1].$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- } else {
- $advcolsql[] = $selectedfields[0].".".$selectedfields[1].$this->getAdvComparator($comparator,trim($valuearray[$n]),$datatype);
- }
- }
- //If negative logic filter ('not equal to', 'does not contain') is used, 'and' condition should be applied instead of 'or'
- if($comparator == 'n' || $comparator == 'k')
- $advcolumnsql = implode(" and ",$advcolsql);
- else
- $advcolumnsql = implode(" or ",$advcolsql);
- $fieldvalue = " (".$advcolumnsql.") ";
- } elseif(($selectedfields[0] == "vtiger_users".$this->primarymodule || $selectedfields[0] == "vtiger_users".$this->secondarymodule) && $selectedfields[1] == 'user_name') {
- $module_from_tablename = str_replace("vtiger_users","",$selectedfields[0]);
- if($this->primarymodule == 'Products') {
- $fieldvalue = ($selectedfields[0].".user_name ".$this->getAdvComparator($comparator,trim($value),$datatype));
- } else {
- $fieldvalue = " case when (".$selectedfields[0].".user_name not like '') then ".$selectedfields[0].".user_name else vtiger_groups".$module_from_tablename.".groupname end ".$this->getAdvComparator($comparator,trim($value),$datatype);
- }
- } elseif($selectedfields[0] == "vtiger_crmentity".$this->primarymodule) {
- $fieldvalue = "vtiger_crmentity.".$selectedfields[1]." ".$this->getAdvComparator($comparator,trim($value),$datatype);
- } elseif($selectedfields[0] == 'vtiger_crmentityRelHelpDesk' && $selectedfields[1]=='setype') {
- $fieldvalue = "(vtiger_accountRelHelpDesk.accountname ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_contactdetailsRelHelpDesk.lastname ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_contactdetailsRelHelpDesk.firstname ".$this->getAdvComparator($comparator,trim($value),$datatype).")";
- } elseif($selectedfields[0] == 'vtiger_crmentityRelCalendar' && $selectedfields[1]=='setype') {
- $fieldvalue = "(vtiger_accountRelCalendar.accountname ".$this->getAdvComparator($comparator,trim($value),$datatype)." or concat(vtiger_leaddetailsRelCalendar.lastname,' ',vtiger_leaddetailsRelCalendar.firstname) ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_potentialRelCalendar.potentialname ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_invoiceRelCalendar.subject ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_quotesRelCalendar.subject ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_purchaseorderRelCalendar.subject ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_salesorderRelCalendar.subject ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_troubleticketsRelCalendar.title ".$this->getAdvComparator($comparator,trim($value),$datatype)." or vtiger_campaignRelCalendar.campaignname ".$this->getAdvComparator($comparator,trim($value),$datatype).")";
- } elseif($selectedfields[0] == "vtiger_activity" && $selectedfields[1] == 'status') {
- $fieldvalue = "(case when (vtiger_activity.status not like '') then vtiger_activity.status else vtiger_activity.eventstatus end)".$this->getAdvComparator($comparator,trim($value),$datatype);
- } elseif($selectedfields[3] == "contact_id" && strpos($selectedfields[2],"Contact_Name")) {
- if($this->primarymodule == 'PurchaseOrder' || $this->primarymodule == 'SalesOrder' || $this->primarymodule == 'Quotes' || $this->primarymodule == 'Invoice' || $this->primarymodule == 'Calendar')
- $fieldvalue = "concat(vtiger_contactdetails". $this->primarymodule .".lastname,' ',vtiger_contactdetails". $this->primarymodule .".firstname)".$this->getAdvComparator($comparator,trim($value),$datatype);
- if($this->secondarymodule == 'Quotes' || $this->secondarymodule == 'Invoice')
- $fieldvalue = "concat(vtiger_contactdetails". $this->secondarymodule .".lastname,' ',vtiger_contactdetails". $this->secondarymodule .".firstname)".$this->getAdvComparator($comparator,trim($value),$datatype);
- } elseif($comparator == 'e' && (trim($value) == "NULL" || trim($value) == '')) {
- $fieldvalue = "(".$selectedfields[0].".".$selectedfields[1]." IS NULL OR ".$selectedfields[0].".".$selectedfields[1]." = '')";
- } elseif($comparator == 'bw' && count($valuearray) == 2) {
- $fieldvalue = "(".$selectedfields[0].".".$selectedfields[1]." between '".trim($valuearray[0])."' and '".trim($valuearray[1])."')";
- } else {
- $fieldvalue = $selectedfields[0].".".$selectedfields[1].$this->getAdvComparator($comparator,trim($value),$datatype);
- }
-
- $advfiltergroupsql .= $fieldvalue;
- if($columncondition != NULL && $columncondition != '' && $noofrows > $columnctr ) {
- $advfiltergroupsql .= ' '.$columncondition.' ';
- }
- }
-
- }
-
- if (trim($advfiltergroupsql) != "") {
- $advfiltergroupsql = "( $advfiltergroupsql ) ";
- if($groupcondition != NULL && $groupcondition != '' && $numgrouprows > $groupctr) {
- $advfiltergroupsql .= ' '. $groupcondition . ' ';
- }
-
- $advfiltersql .= $advfiltergroupsql;
- }
- }
- }
- if (trim($advfiltersql) != "") $advfiltersql = '('.$advfiltersql.')';
- // Save the information
- $this->_advfiltersql = $advfiltersql;
-
- $log->info("ReportRun :: Successfully returned getAdvFilterSql".$reportid);
- return $advfiltersql;
- }
- /** Function to get the Standard filter columns for the reportid
- * This function accepts the $reportid datatype Integer
- * This function returns $stdfilterlist Array($columnname => $tablename:$columnname:$fieldlabel:$fieldname:$typeofdata=>$tablename.$columnname filtercriteria,
- * $tablename1:$columnname1:$fieldlabel1:$fieldname1:$typeofdata1=>$tablename1.$columnname1 filtercriteria,
- * )
- *
- */
- function getStdFilterList($reportid)
- {
- // Have we initialized information already?
- if($this->_stdfilterlist !== false) {
- return $this->_stdfilterlist;
- }
-
- global $adb;
- global $modules;
- global $log;
- $stdfiltersql = "select vtiger_reportdatefilter.* from vtiger_report";
- $stdfiltersql .= " inner join vtiger_reportdatefilter on vtiger_report.reportid = vtiger_reportdatefilter.datefilterid";
- $stdfiltersql .= " where vtiger_report.reportid = ?";
- $result = $adb->pquery($stdfiltersql, array($reportid));
- $stdfilterrow = $adb->fetch_array($result);
- if(isset($stdfilterrow))
- {
- $fieldcolname = $stdfilterrow["datecolumnname"];
- $datefilter = $stdfilterrow["datefilter"];
- $startdate = $stdfilterrow["startdate"];
- $enddate = $stdfilterrow["enddate"];
- if($fieldcolname != "none")
- {
- $selectedfields = explode(":",$fieldcolname);
- if($selectedfields[0] == "vtiger_crmentity".$this->primarymodule)
- $selectedfields[0] = "vtiger_crmentity";
- if($datefilter == "custom")
- {
- if($startdate != "0000-00-00" && $enddate != "0000-00-00" && $selectedfields[0] != "" && $selectedfields[1] != "")
- {
- $stdfilterlist[$fieldcolname] = $selectedfields[0].".".$selectedfields[1]." between '".$startdate." 00:00:00' and '".$enddate." 23:59:59'";
- }
- }else
- {
- $startenddate = $this->getStandarFiltersStartAndEndDate($datefilter);
- if($startenddate[0] != "" && $startenddate[1] != "" && $selectedfields[0] != "" && $selectedfields[1] != "")
- {
- $stdfilterlist[$fieldcolname] = $selectedfields[0].".".$selectedfields[1]." between '".$startenddate[0]." 00:00:00' and '".$startenddate[1]." 23:59:59'";
- }
- }
- }
- }
- // Save the information
- $this->_stdfilterlist = $stdfilterlist;
-
- $log->info("ReportRun :: Successfully returned getStdFilterList".$reportid);
- return $stdfilterlist;
- }
- /** Function to get the RunTime filter columns for the given $filtercolumn,$filter,$startdate,$enddate
- * @ param $filtercolumn : Type String
- * @ param $filter : Type String
- * @ param $startdate: Type String
- * @ param $enddate : Type String
- * This function returns $stdfilterlist Array($columnname => $tablename:$columnname:$fieldlabel=>$tablename.$columnname 'between' $startdate 'and' $enddate)
- *
- */
- function RunTimeFilter($filtercolumn,$filter,$startdate,$enddate)
- {
- if($filtercolumn != "none")
- {
- $selectedfields = explode(":",$filtercolumn);
- if($selectedfields[0] == "vtiger_crmentity".$this->primarymodule)
- $selectedfields[0] = "vtiger_crmentity";
- if($filter == "custom")
- {
- if($startdate != "" && $enddate != "" && $selectedfields[0] != "" && $selectedfields[1] != "")
- {
- $stdfilterlist[$filtercolumn] = $selectedfields[0].".".$selectedfields[1]." between '".$startdate." 00:00:00' and '".$enddate." 23:59:00'";
- }
- }else
- {
- if($startdate != "" && $enddate != "")
- {
- $startenddate = $this->getStandarFiltersStartAndEndDate($filter);
- if($startenddate[0] != "" && $startenddate[1] != "" && $selectedfields[0] != "" && $selectedfields[1] != "")
- {
- $stdfilterlist[$filtercolumn] = $selectedfields[0].".".$selectedfields[1]." between '".$startenddate[0]." 00:00:00' and '".$startenddate[1]." 23:59:00'";
- }
- }
- }
- }
- return $stdfilterlist;
- }
- /** Function to get standardfilter for the given reportid
- * @ param $reportid : Type Integer
- * returns the query of columnlist for the selected columns
- */
- function getStandardCriterialSql($reportid)
- {
- global $adb;
- global $modules;
- global $log;
- $sreportstdfiltersql = "select vtiger_reportdatefilter.* from vtiger_report";
- $sreportstdfiltersql .= " inner join vtiger_reportdatefilter on vtiger_report.reportid = vtiger_reportdatefilter.datefilterid";
- $sreportstdfiltersql .= " where vtiger_report.reportid = ?";
- $result = $adb->pquery($sreportstdfiltersql, array($reportid));
- $noofrows = $adb->num_rows($result);
- for($i=0; $i<$noofrows; $i++)
- {
- $fieldcolname = $adb->query_result($result,$i,"datecolumnname");
- $datefilter = $adb->query_result($result,$i,"datefilter");
- $startdate = $adb->query_result($result,$i,"startdate");
- $enddate = $adb->query_result($result,$i,"enddate");
- if($fieldcolname != "none")
- {
- $selectedfields = explode(":",$fieldcolname);
- if($selectedfields[0] == "vtiger_crmentity".$this->primarymodule)
- $selectedfields[0] = "vtiger_crmentity";
- if($datefilter == "custom")
- {
- if($startdate != "0000-00-00" && $enddate != "0000-00-00" && $selectedfields[0] != "" && $selectedfields[1] != "")
- {
- $sSQL .= $selectedfields[0].".".$selectedfields[1]." between '".$startdate."' and '".$enddate."'";
- }
- }else
- {
- $startenddate = $this->getStandarFiltersStartAndEndDate($datefilter);
- if($startenddate[0] != "" && $startenddate[1] != "" && $selectedfields[0] != "" && $selectedfields[1] != "")
- {
- $sSQL .= $selectedfields[0].".".$selectedfields[1]." between '".$startenddate[0]."' and '".$startenddate[1]."'";
- }
- }
- }
- }
- $log->info("ReportRun :: Successfully returned getStandardCriterialSql".$reportid);
- return $sSQL;
- }
- /** Function to get standardfilter startdate and enddate for the given type
- * @ param $type : Type String
- * returns the $datevalue Array in the given format
- * $datevalue = Array(0=>$startdate,1=>$enddate)
- */
- function getStandarFiltersStartAndEndDate($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(date("m") <= 3)
- {
- $cFq = date("Y-m-d",mktime(0, 0, 0, "01","01",date("Y")));
- $cFq1 = date("Y-m-d",mktime(0, 0, 0, "03","31",date("Y")));
- $nFq = date("Y-m-d",mktime(0, 0, 0, "04","01",date("Y")));
- $nFq1 = date("Y-m-d",mktime(0, 0, 0, "06","30",date("Y")));
- $pFq = date("Y-m-d",mktime(0, 0, 0, "10","01",date("Y")-1));
- $pFq1 = date("Y-m-d",mktime(0, 0, 0, "12","31",date("Y")-1));
- }else if(date("m") > 3 and date("m") <= 6)
- {
- $pFq = date("Y-m-d",mktime(0, 0, 0, "01","01",date("Y")));
- $pFq1 = date("Y-m-d",mktime(0, 0, 0, "03","31",date("Y")));
- $cFq = date("Y-m-d",mktime(0, 0, 0, "04","01",date("Y")));
- $cFq1 = date("Y-m-d",mktime(0, 0, 0, "06","30",date("Y")));
- $nFq = date("Y-m-d",mktime(0, 0, 0, "07","01",date("Y")));
- $nFq1 = date("Y-m-d",mktime(0, 0, 0, "09","30",date("Y")));
- }else if(date("m") > 6 and date("m") <= 9)
- {
- $nFq = date("Y-m-d",mktime(0, 0, 0, "10","01",date("Y")));
- $nFq1 = date("Y-m-d",mktime(0, 0, 0, "12","31",date("Y")));
- $pFq = date("Y-m-d",mktime(0, 0, 0, "04","01",date("Y")));
- $pFq1 = date("Y-m-d",mktime(0, 0, 0, "06","30",date("Y")));
- $cFq = date("Y-m-d",mktime(0, 0, 0, "07","01",date("Y")));
- $cFq1 = date("Y-m-d",mktime(0, 0, 0, "09","30",date("Y")));
- }
- else if(date("m") > 9 and date("m") <= 12)
- {
- $nFq = date("Y-m-d",mktime(0, 0, 0, "01","01",date("Y")+1));
- $nFq1 = date("Y-m-d",mktime(0, 0, 0, "03","31",date("Y")+1));
- $pFq = date("Y-m-d",mktime(0, 0, 0, "07","01",date("Y")));
- $pFq1 = date("Y-m-d",mktime(0, 0, 0, "09","30",date("Y")));
- $cFq = date("Y-m-d",mktime(0, 0, 0, "10","01",date("Y")));
- $cFq1 = date("Y-m-d",mktime(0, 0, 0, "12","31",date("Y")));
- }
- 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($…
Large files files are truncated, but you can click here to view the full file