⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chart_pipeline_by_lead_source.php

📁 SugarCRM5.1 开源PHP客户关系管理系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:
			$GLOBALS['log']->debug("cache_file_name is: $cache_file_name");			$opp = new Opportunity;			//Now do the db queries			//query for opportunity data that matches $legends and $user			$where="";			//build the where clause for the query that matches $user			$count = count($user_id);			$id = array();			if ($count > 0 && !empty($user_id)) {				foreach ($user_id as $the_id) {					$id[] = "'".$the_id."'";				}				$ids = join(",",$id);				$where .= "opportunities.assigned_user_id IN ($ids) ";			}			if(!empty($where)) $where .= 'AND';			//build the where clause for the query that matches $datax			$count = count($legends);			$legendItem = array();			if ($count > 0 && !empty($legends)) {				foreach ($legends as $key=>$value) {					$legendItem[] = "'".$key."'";				}				$legendItems = join(",",$legendItem);				$where .= " opportunities.lead_source IN	($legendItems) ";			}			$query = "SELECT lead_source,sum(amount_usdollar/1000) as total,count(*) as opp_count FROM opportunities ";			$query .= "WHERE ".$where." AND opportunities.deleted=0 ";			$query .= "GROUP BY lead_source ORDER BY total DESC";						//build pipeline by lead source data			$total = 0;			$div = 1;			global $sugar_config;			$symbol = $sugar_config['default_currency_symbol'];			global $current_user;			if($current_user->getPreference('currency') ) {				$currency = new Currency();				$currency->retrieve($current_user->getPreference('currency'));				$div = $currency->conversion_rate;				$symbol = $currency->symbol;			}			$subtitle = $current_module_strings['LBL_OPP_SIZE'].' '.$symbol.'1'.$current_module_strings['LBL_OPP_THOUSANDS'];			$fileContents = '';			$fileContents .= '     <pie defaultAltText="'.$current_module_strings['LBL_ROLLOVER_WEDGE_DETAILS'].'" legendStatus="on">'."\n";			$result = $opp->db->query($query)			or sugar_die("Error selecting sugarbean: ".mysql_error());			$leadSourceArr =  array();			while($row = $opp->db->fetchByAssoc($result, -1, false))			{				if($row['lead_source'] == ''){					$leadSource = $current_module_strings['NTC_NO_LEGENDS'];				} else {					$leadSource = $row['lead_source'];				}				if($row['total']*$div<=100){					$sum = round($row['total']*$div, 2);				} else {					$sum = round($row['total']*$div);				}				$leadSourceArr[$leadSource]['opp_count'] = $row['opp_count'];				$leadSourceArr[$leadSource]['sum'] = $sum;			}			$i=0;			foreach ($legends as $lead_source_key=>$translation) {				if ($lead_source_key == '') {					$lead_source_key = $current_module_strings['NTC_NO_LEGENDS'];					$translation = $current_module_strings['NTC_NO_LEGENDS'];				}				if(!isset($leadSourceArr[$lead_source_key])) {					$leadSourceArr[$lead_source_key] = $lead_source_key;					$leadSourceArr[$lead_source_key]['sum'] = 0;				}				$color = generate_graphcolor($lead_source_key,$i);				$fileContents .= '          <wedge title="'.$translation.'" kDelim="'.$kDelim.'" value="'.$leadSourceArr[$lead_source_key]['sum'].'" color="'.$color.'" labelText="'.currency_format_number($leadSourceArr[$lead_source_key]['sum'], array('currency_symbol' => true)).'" url="index.php?module=Opportunities&action=index&lead_source='.urlencode($lead_source_key).'&query=true&searchFormTab=advanced_search" altText="'.format_number($leadSourceArr[$lead_source_key]['opp_count'], 0, 0).' '.$current_module_strings['LBL_OPPS_IN_LEAD_SOURCE'].' '.$translation.'"/>'."\n";				if(isset($leadSourceArr[$lead_source_key])){$total += $leadSourceArr[$lead_source_key]['sum'];}				$i++;			}			$fileContents .= '     </pie>'."\n";			$fileContents .= '     <graphInfo>'."\n";			$fileContents .= '          <![CDATA[]]>'."\n";			$fileContents .= '     </graphInfo>'."\n";			$fileContents .= '     <chartColors ';			foreach ($pieChartColors as $key => $value) {				$fileContents .= ' '.$key.'='.'"'.$value.'" ';			}			$fileContents .= ' />'."\n";			$fileContents .= '</graphData>'."\n";			$total = round($total, 2);			$title = $current_module_strings['LBL_TOTAL_PIPELINE'].currency_format_number($total, array('currency_symbol' => true)).$app_strings['LBL_THOUSANDS_SYMBOL'];			$fileContents = '<graphData title="'.$title.'" subtitle="'.$subtitle.'">'."\n" . $fileContents;			$GLOBALS['log']->debug("total is: $total");			if ($total == 0) {				return ($current_module_strings['ERR_NO_OPPS']);			}			save_xml_file($cache_file_name, $fileContents);		}		$return = create_chart('pieF',$cache_file_name);		return $return;	}		function constructQuery(){		global $current_user;		global $app_list_strings;				$tempx = array();		$datax = array();		$selected_datax = array();		//get list of sales stage keys to display		global $current_user;		$user_tempx = $current_user->getPreference('pbls_lead_sources');		if (!empty($user_tempx) && count($user_tempx) > 0 && !isset($_REQUEST['pbls_lead_sources'])) {			$tempx = $user_tempx;			$GLOBALS['log']->debug("USER PREFERENCES['pbls_lead_sources'] is:");			$GLOBALS['log']->debug($user_tempx);		}		elseif (isset($_REQUEST['pbls_lead_sources']) && count($_REQUEST['pbls_lead_sources']) > 0) {			$tempx = $_REQUEST['pbls_lead_sources'];			$current_user->setPreference('pbls_lead_sources', $_REQUEST['pbls_lead_sources']);			$GLOBALS['log']->debug("_REQUEST['pbls_lead_sources'] is:");			$GLOBALS['log']->debug($_REQUEST['pbls_lead_sources']);			$GLOBALS['log']->debug("USER PREFERENCES['pbls_lead_sources'] is:");			$GLOBALS['log']->debug($current_user->getPreference('pbls_lead_sources'));		}				//set $datax using selected sales stage keys		if (count($tempx) > 0) {			foreach ($tempx as $key) {				$datax[$key] = $app_list_strings['lead_source_dom'][$key];				array_push($selected_datax,$key);			}		}		else {			$datax = $app_list_strings['lead_source_dom'];			$selected_datax = array_keys($app_list_strings['lead_source_dom']);		}						$legends = $datax;				$ids = array();		$user_ids = $current_user->getPreference('pbls_ids');		//get list of user ids for which to display data		if (!empty($user_ids) && count($user_ids) != 0 && !isset($_REQUEST['pbls_ids'])) {			if(isset($_SESSION['pbls_ids'])) {$ids = $_SESSION['pbls_ids'];}			$GLOBALS['log']->debug("USER PREFERENCES['pbls_ids'] is:");			$GLOBALS['log']->debug($user_ids);		}		elseif (isset($_REQUEST['pbls_ids']) && count($_REQUEST['pbls_ids']) > 0) {			$ids = $_REQUEST['pbls_ids'];			$current_user->setPreference('pbls_ids', $ids);			$GLOBALS['log']->debug("_REQUEST['pbls_ids'] is:");			$GLOBALS['log']->debug($_REQUEST['pbls_ids']);			$GLOBALS['log']->debug("USER PREFERENCES['pbls_ids'] is:");			$GLOBALS['log']->debug($current_user->getPreference('pbls_ids'));		}		else {			$ids = get_user_array(false);			$ids = array_keys($ids);		}				$user_id = $ids;					$opp = new Opportunity;		//Now do the db queries		//query for opportunity data that matches $legends and $user		$where="";		//build the where clause for the query that matches $user		$count = count($user_id);		$id = array();		if ($count > 0 && !empty($user_id)) {			foreach ($user_id as $the_id) {				$id[] = "'".$the_id."'";			}			$ids = join(",",$id);			$where .= "opportunities.assigned_user_id IN ($ids) ";		}		if(!empty($where)) $where .= 'AND';		//build the where clause for the query that matches $datax		$count = count($legends);		$legendItem = array();		if ($count > 0 && !empty($legends)) {			foreach ($legends as $key=>$value) {				$legendItem[] = "'".$key."'";			}			$legendItems = join(",",$legendItem);			$where .= " opportunities.lead_source IN	($legendItems) ";		}		$query = "SELECT lead_source,sum(amount_usdollar/1000) as total,count(*) as opp_count FROM opportunities ";		$query .= "WHERE ".$where." AND opportunities.deleted=0 ";		$query .= "GROUP BY lead_source ORDER BY total DESC";		return $query;	}		function constructGroupBy(){		return array( 'lead_source', );	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -