更新到 5.2 正式版后第一次 SVN 提交。
yuchenghu@hawebs.net git-svn-id: https://svn.code.sf.net/p/hawebs/svn@596 a2543c7e-f6e9-4f8a-8bff-1ffc34733512
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
<?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$
|
||||
* Description: returns HTML for client-side image map.
|
||||
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
||||
* All Rights Reserved.
|
||||
* Contributor(s): ______________________________________..
|
||||
********************************************************************************/
|
||||
|
||||
require_once('include/utils/utils.php');
|
||||
require_once('include/logging.php');
|
||||
require_once("modules/Potentials/Charts.php");
|
||||
global $current_language, $tmp_dir, $currentModule, $action;
|
||||
$current_module_strings = return_module_language($current_language, 'Dashboard');
|
||||
require('user_privileges/sharing_privileges_'.$current_user->id.'.php');
|
||||
require('user_privileges/user_privileges_'.$current_user->id.'.php');
|
||||
|
||||
// Get _dom arrays from Database
|
||||
$comboFieldNames = Array('leadsource'=>'lead_source_dom');
|
||||
$comboFieldArray = getComboArray($comboFieldNames);
|
||||
|
||||
$log = LoggerManager::getLogger('lead_source_by_outcome');
|
||||
|
||||
if (isset($_REQUEST['lsbo_refresh'])) { $refresh = $_REQUEST['lsbo_refresh']; }
|
||||
else { $refresh = false; }
|
||||
|
||||
// added for auto refresh
|
||||
$refresh = true;
|
||||
//
|
||||
|
||||
$tempx = array();
|
||||
$datax = array();
|
||||
//get list of sales stage keys to display
|
||||
if (isset($_SESSION['lsbo_lead_sources']) && count($_SESSION['lsbo_lead_sources']) > 0 && !isset($_REQUEST['lsbo_lead_sources'])) {
|
||||
$tempx = $_SESSION['lsbo_lead_sources'];
|
||||
$log->debug("_SESSION['lsbo_lead_sources'] is:");
|
||||
$log->debug($_SESSION['lsbo_lead_sources']);
|
||||
}
|
||||
elseif (isset($_REQUEST['lsbo_lead_sources']) && count($_REQUEST['lsbo_lead_sources']) > 0) {
|
||||
$tempx = $_REQUEST['lsbo_lead_sources'];
|
||||
$current_user->setPreference('lsbo_lead_sources', $_REQUEST['lsbo_lead_sources']);
|
||||
$log->debug("_REQUEST['lsbo_lead_sources'] is:");
|
||||
$log->debug($_REQUEST['lsbo_lead_sources']);
|
||||
$log->debug("_SESSION['lsbo_lead_sources'] is:");
|
||||
$log->debug($_SESSION['lsbo_lead_sources']);
|
||||
}
|
||||
|
||||
//set $datax using selected sales stage keys
|
||||
if (count($tempx) > 0) {
|
||||
foreach ($tempx as $key) {
|
||||
$datax[$key] = $comboFieldArray['lead_source_dom'][$key];
|
||||
}
|
||||
}
|
||||
else {
|
||||
$datax = $comboFieldArray['lead_source_dom'];
|
||||
}
|
||||
$log->debug("datax is:");
|
||||
$log->debug($datax);
|
||||
|
||||
$ids = array();
|
||||
//get list of user ids for which to display data
|
||||
if (isset($_SESSION['lsbo_ids']) && count($_SESSION['lsbo_ids']) != 0 && !isset($_REQUEST['lsbo_ids'])) {
|
||||
$ids = $_SESSION['lsbo_ids'];
|
||||
$log->debug("_SESSION['lsbo_ids'] is:");
|
||||
$log->debug($_SESSION['lsbo_ids']);
|
||||
}
|
||||
elseif (isset($_REQUEST['lsbo_ids']) && count($_REQUEST['lsbo_ids']) > 0) {
|
||||
$ids = $_REQUEST['lsbo_ids'];
|
||||
$current_user->setPreference('lsbo_ids', $_REQUEST['lsbo_ids']);
|
||||
$log->debug("_REQUEST['lsbo_ids'] is:");
|
||||
$log->debug($_REQUEST['lsbo_ids']);
|
||||
$log->debug("_SESSION['lsbo_ids'] is:");
|
||||
$log->debug($_SESSION['lsbo_ids']);
|
||||
}
|
||||
else {
|
||||
$ids = get_user_array(false);
|
||||
$ids = array_keys($ids);
|
||||
}
|
||||
|
||||
//create unique prefix based on selected vtiger_users for image vtiger_files
|
||||
$id_hash = '';
|
||||
if (isset($ids)) {
|
||||
sort($ids);
|
||||
$id_hash = crc32(implode('',$ids));
|
||||
}
|
||||
$log->debug("ids is:");
|
||||
$log->debug($ids);
|
||||
|
||||
$cache_file_name = $id_hash."_lead_source_by_outcome_".$current_language."_".crc32(implode('',$datax)).".png";
|
||||
$log->debug("cache file name is: $cache_file_name");
|
||||
|
||||
if(isPermitted('Potentials','index')=="yes")
|
||||
{
|
||||
$draw_this = new jpgraph();
|
||||
$width = 850;
|
||||
$height = 500;
|
||||
if(isset($_REQUEST['display_view']) && $_REQUEST['display_view'] == 'MATRIX')
|
||||
{
|
||||
$width = 350;
|
||||
$height = 250;
|
||||
}
|
||||
|
||||
echo $draw_this->lead_source_by_outcome($datax, $ids, $tmp_dir.$cache_file_name, $refresh,$width,$height);
|
||||
echo "<P><font size='1'><em>".$current_module_strings['LBL_LEAD_SOURCE_BY_OUTCOME_DESC']."</em></font></P>";
|
||||
if (isset($_REQUEST['lsbo_edit']) && $_REQUEST['lsbo_edit'] == 'true') {
|
||||
?>
|
||||
<form action="index.php" method="post" >
|
||||
<input type="hidden" name="module" value="<?php echo $currentModule;?>">
|
||||
<input type="hidden" name="action" value="<?php echo $action;?>">
|
||||
<input type="hidden" name="display_view" value="<?php echo vtlib_purify($_REQUEST['display_view'])?>">
|
||||
<input type="hidden" name="lsbo_refresh" value="true">
|
||||
<table cellpadding="2" border="0"><tbody>
|
||||
<tr>
|
||||
<td valign='top' nowrap><?php echo $current_module_strings['LBL_LEAD_SOURCES'];?></strong></td>
|
||||
<td valign='top'><select name="lsbo_lead_sources[]" multiple size='3'><?php echo get_select_options_with_id($comboFieldArray['lead_source_dom'],$_SESSION['lsbo_lead_sources']); ?></select></td>
|
||||
</tr><tr>
|
||||
<td valign='top' nowrap><?php echo $current_module_strings['LBL_USERS'];?></td>
|
||||
<?php if($is_admin==false && $profileGlobalPermission[2] == 1 && ($defaultOrgSharingPermission[getTabid('Potentials')] == 3 or $defaultOrgSharingPermission[getTabid('Potentials')] == 0)) { ?>
|
||||
<td valign='top'><select name="lsbo_ids[]" multiple size='3'><?php echo get_select_options_with_id(get_user_array(FALSE, "Active", $current_user->id,'private'),$_SESSION['lsbo_ids']); ?></select></td>
|
||||
<?php } else { ?>
|
||||
<td valign='top' ><select name="lsbo_ids[]" multiple size='3'><?php echo get_select_options_with_id(get_user_array(FALSE, "Active",$current_user->id),$_SESSION['lsbo_ids']); ?></select></td>
|
||||
<?php } ?>
|
||||
</tr><tr>
|
||||
<td align="right"><br /> <input class="button" type="submit" title="<?php echo $app_strings['LBL_SELECT_BUTTON_TITLE']; ?>" accessKey="<?php echo $app_strings['LBL_SELECT_BUTTON_KEY']; ?>" value="<?php echo $app_strings['LBL_SELECT_BUTTON_LABEL']?>" /></td>
|
||||
</tr></table>
|
||||
</form>
|
||||
<?php }
|
||||
else {
|
||||
if (file_exists($tmp_dir.$cache_file_name)) {
|
||||
$file_date = getDisplayDate(date('Y-m-d H:i', filemtime($tmp_dir.$cache_file_name)));
|
||||
}
|
||||
else {
|
||||
$file_date = '';
|
||||
}
|
||||
?>
|
||||
<div align=right><FONT size='1'>
|
||||
<em><?php echo $current_module_strings['LBL_CREATED_ON'].' '.$file_date; ?>
|
||||
</em>[<a href="javascript:;" onClick="changeView('<?php echo vtlib_purify($_REQUEST['display_view']);?>');"><?php echo $current_module_strings['LBL_REFRESH'];?></a>]
|
||||
[<a href="index.php?module=<?php echo $currentModule;?>&action=index&lsbo_edit=true&display_view=<?php echo vtlib_purify($_REQUEST['display_view']);?>"><?php echo $current_module_strings['LBL_EDIT'];?></a>]
|
||||
</FONT></div>
|
||||
<?php }
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $mod_strings['LBL_NO_PERMISSION'];
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,184 @@
|
||||
<?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$
|
||||
* Description: returns HTML for client-side image map.
|
||||
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
||||
* All Rights Reserved.
|
||||
* Contributor(s): ______________________________________..
|
||||
********************************************************************************/
|
||||
|
||||
require_once('include/utils/utils.php');
|
||||
require_once('include/logging.php');
|
||||
require_once("modules/Potentials/Charts.php");
|
||||
require_once("modules/Dashboard/Forms.php");
|
||||
global $app_list_strings, $current_language, $tmp_dir, $currentModule, $action, $current_user, $theme;
|
||||
$current_module_strings = return_module_language($current_language, 'Dashboard');
|
||||
|
||||
$log = LoggerManager::getLogger('my_pipeline_by_sales_stage');
|
||||
|
||||
if (isset($_REQUEST['mypbss_refresh'])) { $refresh = $_REQUEST['mypbss_refresh']; }
|
||||
else { $refresh = false; }
|
||||
|
||||
// added for auto refresh
|
||||
$refresh = true;
|
||||
//
|
||||
|
||||
// Get _dom Arrays from Database
|
||||
$comboFieldNames = Array('sales_stage'=>'sales_stage_dom');
|
||||
$comboFieldArray = getComboArray($comboFieldNames);
|
||||
|
||||
//get the dates to display
|
||||
if (isset($_SESSION['mypbss_date_start']) && $_SESSION['mypbss_date_start'] != '' && !isset($_REQUEST['mypbss_date_start'])) {
|
||||
$date_start = $_SESSION['mypbss_date_start'];
|
||||
$log->debug("_SESSION['mypbss_date_start'] is:");
|
||||
$log->debug($_SESSION['mypbss_date_start']);
|
||||
}
|
||||
elseif (isset($_REQUEST['mypbss_date_start']) && $_REQUEST['mypbss_date_start'] != '') {
|
||||
$date_start = $_REQUEST['mypbss_date_start'];
|
||||
$current_user->setPreference('mypbss_date_start', $_REQUEST['mypbss_date_start']);
|
||||
$log->debug("_REQUEST['mypbss_date_start'] is:");
|
||||
$log->debug($_REQUEST['mypbss_date_start']);
|
||||
$log->debug("_SESSION['mypbss_date_start'] is:");
|
||||
$log->debug($_SESSION['mypbss_date_start']);
|
||||
}
|
||||
else {
|
||||
$date_start = date("Y-m-d", time());
|
||||
}
|
||||
|
||||
if (isset($_SESSION['mypbss_date_end']) && $_SESSION['mypbss_date_end'] != '' && !isset($_REQUEST['mypbss_date_end'])) {
|
||||
$date_end = $_SESSION['mypbss_date_end'];
|
||||
$log->debug("_SESSION['mypbss_date_end'] is:");
|
||||
$log->debug($_SESSION['mypbss_date_end']);
|
||||
}
|
||||
elseif (isset($_REQUEST['mypbss_date_end']) && $_REQUEST['mypbss_date_end'] != '') {
|
||||
$date_end = $_REQUEST['mypbss_date_end'];
|
||||
$current_user->setPreference('mypbss_date_end', $_REQUEST['mypbss_date_end']);
|
||||
$log->debug("_REQUEST['mypbss_date_end'] is:");
|
||||
$log->debug($_REQUEST['mypbss_date_end']);
|
||||
$log->debug("_SESSION['mypbss_date_end'] is:");
|
||||
$log->debug($_SESSION['mypbss_date_end']);
|
||||
}
|
||||
else {
|
||||
$date_end = '2100-01-01';
|
||||
}
|
||||
|
||||
$tempx = array();
|
||||
$datax = array();
|
||||
//get list of sales stage keys to display
|
||||
if (isset($_SESSION['mypbss_sales_stages']) && count($_SESSION['mypbss_sales_stages']) > 0 && !isset($_REQUEST['mypbss_sales_stages'])) {
|
||||
$tempx = $_SESSION['mypbss_sales_stages'];
|
||||
$log->debug("_SESSION['mypbss_sales_stages'] is:");
|
||||
$log->debug($_SESSION['mypbss_sales_stages']);
|
||||
}
|
||||
elseif (isset($_REQUEST['mypbss_sales_stages']) && count($_REQUEST['mypbss_sales_stages']) > 0) {
|
||||
$tempx = $_REQUEST['mypbss_sales_stages'];
|
||||
$current_user->setPreference('mypbss_sales_stages', $_REQUEST['mypbss_sales_stages']);
|
||||
$log->debug("_REQUEST['mypbss_sales_stages'] is:");
|
||||
$log->debug($_REQUEST['mypbss_sales_stages']);
|
||||
$log->debug("_SESSION['mypbss_sales_stages'] is:");
|
||||
$log->debug($_SESSION['mypbss_sales_stages']);
|
||||
}
|
||||
|
||||
//set $datax using selected sales stage keys
|
||||
if (count($tempx) > 0) {
|
||||
foreach ($tempx as $key) {
|
||||
$datax[$key] = $comboFieldArray['sales_stage_dom'][$key];//$app_list_strings['sales_stage_dom'][$key];
|
||||
}
|
||||
}
|
||||
else {
|
||||
$datax = $comboFieldArray['sales_stage_dom'];//app_list_strings['sales_stage_dom'];
|
||||
}
|
||||
$log->debug("datax is:");
|
||||
$log->debug($datax);
|
||||
|
||||
$ids = array($current_user->id);
|
||||
//create unique prefix based on selected vtiger_users for image vtiger_files
|
||||
$id_hash = '';
|
||||
if (isset($ids)) {
|
||||
sort($ids);
|
||||
$id_hash = crc32(implode('',$ids));
|
||||
}
|
||||
$log->debug("ids is:");
|
||||
$log->debug($ids);
|
||||
|
||||
$cache_file_name = $id_hash."_pipeline_".$current_language."_".crc32(implode('',$datax)).$date_start.$date_end.".png";
|
||||
$log->debug("cache file name is: $cache_file_name");
|
||||
|
||||
if (substr(phpversion(), 0, 1) == "5") { // php5 }
|
||||
echo "<em>Charts not supported in PHP 5.</em>";
|
||||
}
|
||||
else {
|
||||
$draw_this = new jpgraph();
|
||||
echo $draw_this->pipeline_by_sales_stage($datax, $date_start, $date_end, $ids, $tmp_dir.$cache_file_name, $refresh);
|
||||
echo "<P><font size='1'><em>".$current_module_strings['LBL_PIPELINE_FORM_TITLE_DESC']."</em></font></P>";
|
||||
if (isset($_REQUEST['mypbss_edit']) && $_REQUEST['mypbss_edit'] == 'true') {
|
||||
$cal_lang = "en";
|
||||
$cal_dateformat = parse_calendardate($app_strings['NTC_DATE_FORMAT']);
|
||||
$cal_dateformat = '%Y-%m-%d'; // fix providedd by Jlee for date bug in Dashboard
|
||||
|
||||
|
||||
?>
|
||||
<link rel="stylesheet" type="text/css" media="all" href="jscalendar/calendar-win2k-cold-1.css">
|
||||
<script type="text/javascript" src="jscalendar/calendar.js"></script>
|
||||
<script type="text/javascript" src="jscalendar/lang/calendar-<?php echo $cal_lang ?>.js"></script>
|
||||
<script type="text/javascript" src="jscalendar/calendar-setup.js"></script>
|
||||
<form name='my_pipeline' action="index.php" method="post" >
|
||||
<input type="hidden" name="module" value="<?php echo $currentModule;?>">
|
||||
<input type="hidden" name="action" value="<?php echo $action;?>">
|
||||
<input type="hidden" name="mypbss_refresh" value="true">
|
||||
<table cellpadding="2" border="0"><tbody>
|
||||
<tr>
|
||||
<td valign='top' nowrap><?php echo $current_module_strings['LBL_DATE_START']?> <br><em><?php echo $app_strings['NTC_DATE_FORMAT']?></em></td>
|
||||
<td valign='top' ><input class="text" name="mypbss_date_start" size='12' maxlength='10' id='date_start' value='<?php if (isset($_SESSION['mypbss_date_start'])) echo $_SESSION['mypbss_date_start']?>'> <img src="<?php echo vtiger_imageurl('calendar.gif', $theme) ?>" id="date_start_trigger"> </td>
|
||||
</tr><tr>
|
||||
<tr>
|
||||
<td valign='top' nowrap><?php echo $current_module_strings['LBL_DATE_END'];?><br><em><?php echo $app_strings['NTC_DATE_FORMAT']?></em></td>
|
||||
<td valign='top' ><input class="text" name="mypbss_date_end" size='12' maxlength='10' id='date_end' value='<?php if (isset($_SESSION['mypbss_date_end'])) echo $_SESSION['mypbss_date_end']?>'> <img src="<?php echo vtiger_imageurl('calendar.gif', $theme) ?>" id="date_end_trigger"> </td>
|
||||
</tr><tr>
|
||||
|
||||
<td valign='top' nowrap><?php echo $current_module_strings['LBL_SALES_STAGES'];?></td>
|
||||
<td valign='top' ><select name="mypbss_sales_stages[]" multiple size='5'><?php echo get_select_options_with_id($comboFieldArray['sales_stage_dom'],$_SESSION['mypbss_sales_stages']); ?></select></td>
|
||||
</tr><tr>
|
||||
<td align="right"><br /> <input class="button" onclick="return verify_chart_data(my_pipeline);" type="submit" title="<?php echo $app_strings['LBL_SELECT_BUTTON_TITLE']; ?>" accessKey="<?php echo $app_strings['LBL_SELECT_BUTTON_KEY']; ?>" value="<?php echo $app_strings['LBL_SELECT_BUTTON_LABEL']?>" /></td>
|
||||
</tr></table>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
Calendar.setup ({
|
||||
inputField : "date_start", ifFormat : "<?php echo $cal_dateformat ?>", showsTime : false, button : "date_start_trigger", singleClick : true, step : 1
|
||||
});
|
||||
Calendar.setup ({
|
||||
inputField : "date_end", ifFormat : "<?php echo $cal_dateformat ?>", showsTime : false, button : "date_end_trigger", singleClick : true, step : 1
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php }
|
||||
else {
|
||||
if (file_exists($tmp_dir.$cache_file_name)) {
|
||||
$file_date = getDisplayDate(date('Y-m-d H:i', filemtime($tmp_dir.$cache_file_name)));
|
||||
}
|
||||
else {
|
||||
$file_date = '';
|
||||
}
|
||||
?>
|
||||
<div align=right><FONT size='1'>
|
||||
<em><?php echo $current_module_strings['LBL_CREATED_ON'].' '.$file_date; ?>
|
||||
</em>[<a href="index.php?module=<?php echo $currentModule;?>&action=<?php echo $action;?>&mypbss_refresh=true"><?php echo $current_module_strings['LBL_REFRESH'];?></a>]
|
||||
[<a href="index.php?module=<?php echo $currentModule;?>&action=<?php echo $action;?>&mypbss_edit=true"><?php echo $current_module_strings['LBL_EDIT'];?></a>]
|
||||
</FONT></div>
|
||||
<?php }
|
||||
echo get_validate_chart_js();
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,88 @@
|
||||
<?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.
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
include ("../../jpgraph/src/jpgraph.php");
|
||||
include ("../../jpgraph/src/jpgraph_bar.php");
|
||||
|
||||
$refer_code=(isset($_REQUEST['width']))?$_REQUEST['refer_code']:"0,0";
|
||||
$referdata=(isset($_REQUEST['referdata']))?$_REQUEST['referdata']:"null"; //The Status Name
|
||||
$datavalue=(isset($_REQUEST['datavalue']))?$_REQUEST['datavalue']:"0,K,0";
|
||||
$width=(isset($_REQUEST['width']))?$_REQUEST['width']:410;
|
||||
$height=(isset($_REQUEST['height']))?$_REQUEST['height']:270;
|
||||
$left=(isset($_REQUEST['left']))?$_REQUEST['left']:110;
|
||||
$right=(isset($_REQUEST['right']))?$_REQUEST['right']:20;
|
||||
$top=(isset($_REQUEST['top']))?$_REQUEST['top']:40;
|
||||
$bottom=(isset($_REQUEST['bottom']))?$_REQUEST['bottom']:50;
|
||||
$title=(isset($_REQUEST['title']))?$_REQUEST['title']:"Horizontal graph";
|
||||
$target_val=(isset($_REQUEST['test']))?$_REQUEST['test']:"";
|
||||
//Exploding the data values
|
||||
$datavalue=explode("K",$datavalue);
|
||||
$name_value=explode(",",$referdata);
|
||||
$datax=explode(",",$refer_code); //The values to the XAxis
|
||||
$target_val=urldecode($target_val);
|
||||
$target_val=explode("K",$target_val);
|
||||
|
||||
|
||||
|
||||
$color_array=array("#FFD0C7","#C9F7C9","#C2C3EF","#F7F7C1","#28D6D7","#E7BCE7","#DFD8C3","lightpink","burlywood2","cadetblu
|
||||
e");
|
||||
#$color_array=array("#FF8B8B","#8BFF8B","#A8A8FF","#FFFF6E","#C5FFFF","#FFA8FF","#FFE28B","lightpink","burlywood2","cadetblue");
|
||||
|
||||
// Create the graph. These two calls are always required
|
||||
$graph = new Graph($width,$height,"auto");
|
||||
$graph->SetScale("textlin");
|
||||
|
||||
$graph->SetShadow();
|
||||
|
||||
|
||||
// Create the lines of the Graph
|
||||
for($i=0;$i<count($datavalue);$i++)
|
||||
{
|
||||
$data=$datavalue[$i];
|
||||
$target=$target_val[$i];
|
||||
$graph_data=explode(",",$data);
|
||||
$data[$i]=$data;
|
||||
$bplot[$i] = new BarPlot($graph_data);
|
||||
$bplot[$i]->SetFillColor($color_array[$i]);
|
||||
$bplot[$i]->SetWidth(10);
|
||||
|
||||
$bplot[$i]->value->Show();
|
||||
$bplot[$i]->value->SetFont(FF_FONT1,FS_NORMAL,8);
|
||||
$bplot[$i]->value->SetColor("black");
|
||||
$bplot[$i]->value->SetFormat('%d');
|
||||
$bplot[$i]->SetValuePos('max');
|
||||
|
||||
}
|
||||
|
||||
$gbplot = new AccBarPlot($bplot);
|
||||
$gbplot->SetWidth(0.7);
|
||||
|
||||
// Add the bar to the graph
|
||||
$graph->Add($gbplot);
|
||||
|
||||
$graph->xaxis->SetTickLabels($datax);
|
||||
|
||||
$graph->title->Set($title);
|
||||
|
||||
$graph->Set90AndMargin($left,$right,$top,$bottom);
|
||||
//$graph->SetFrame(false);
|
||||
$graph->title->SetFont(FF_FONT1,FS_BOLD);
|
||||
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
|
||||
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
|
||||
|
||||
$graph->SetColor("#7D9CB8");
|
||||
$graph->SetMarginColor("#3D6A93");
|
||||
|
||||
// Display the graph
|
||||
$graph->Stroke();
|
||||
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
<?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: /advent/projects/wesat/vtiger_crm/sugarcrm/modules/Dashboard/language/en_us.lang.php,v 1.4 2005/01/25 06:01:38 jack Exp $
|
||||
* Description: Defines the English language pack for the Account module.
|
||||
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
||||
* All Rights Reserved.
|
||||
* Contributor(s): ______________________________________..
|
||||
********************************************************************************/
|
||||
|
||||
$mod_strings = Array(
|
||||
'LBL_SALES_STAGE_FORM_TITLE'=>'Pipeline By Sales Stage',
|
||||
'LBL_SALES_STAGE_FORM_DESC'=>'Shows cumulative opportunity amounts by selected sales stages for selected users where the expected closed date is within the specificed date range.',
|
||||
'LBL_MONTH_BY_OUTCOME'=>'Pipeline By Month By Outcome',
|
||||
'LBL_MONTH_BY_OUTCOME_DESC'=>'Shows cumulative opportunity amounts by month by outcome for selected users where the expected closed date is within the specificed date range. Outcome is based on whether the sales stage is Closed Won, Closed Lost or any other value.',
|
||||
'LBL_LEAD_SOURCE_FORM_TITLE'=>'All Opportunities By Lead Source',
|
||||
'LBL_LEAD_SOURCE_FORM_DESC'=>'Shows cumulative opportunity amounts by selected lead source for selected users.',
|
||||
'LBL_LEAD_SOURCE_BY_OUTCOME'=>'All Opportunities By Lead Source By Outcome',
|
||||
'LBL_LEAD_SOURCE_BY_OUTCOME_DESC'=>'Shows cumulative opportunity amounts by selected lead source by outcome for selected users where the expected closed date is within the specificed date range. Outcome is based on whether the sales stage is Closed Won, Closed Lost or any other value.',
|
||||
'LBL_PIPELINE_FORM_TITLE_DESC'=>'Shows cumulative amounts by selected sales stages for your opportunities where the expected closed date is within the specificed date range.',
|
||||
'LBL_DATE_RANGE'=>'Date range is',
|
||||
'LBL_DATE_RANGE_TO'=>'to',
|
||||
'ERR_NO_OPPS'=>'Please create some Opportunities to see Opportunity graphs.',
|
||||
'LBL_TOTAL_PIPELINE'=>'Pipeline total is ',
|
||||
'LBL_ALL_OPPORTUNITIES'=>'Total amount of all opportunities is ',
|
||||
'LBL_OPP_SIZE'=>'Opportunity size in ',
|
||||
'LBL_OPP_SIZE_VALUE'=>'1K',
|
||||
'NTC_NO_LEGENDS'=>'None',
|
||||
'LBL_LEAD_SOURCE_OTHER'=>'Other',
|
||||
'LBL_EDIT'=>'Edit',
|
||||
'LBL_REFRESH'=>'Refresh',
|
||||
'LBL_CREATED_ON'=>'Last run on ',
|
||||
'LBL_OPPS_IN_STAGE'=>'opportunities where sales stage is',
|
||||
'LBL_OPPS_IN_LEAD_SOURCE'=>'opportunities where lead source is',
|
||||
'LBL_OPPS_OUTCOME'=>'opportunities where outcome is',
|
||||
'LBL_USERS'=>'Users:',
|
||||
'LBL_SALES_STAGES'=>'Sales Stages:',
|
||||
'LBL_LEAD_SOURCES'=>'Lead Sources:',
|
||||
'LBL_DATE_START'=>'Begin Date:',
|
||||
'LBL_DATE_END'=>'End Date:',
|
||||
//Added for 5.0
|
||||
'LBL_NO_PERMISSION'=>'Sorry, you don\'t have access to view the Graph for this module',
|
||||
'LBL_NO_PERMISSION_FIELD'=>'Sorry, you don\'t have access to view the Graph for this module or for the Field',
|
||||
|
||||
"leadsource" => "Leads By Source",
|
||||
"leadstatus" => "Leads By Status",
|
||||
"leadindustry" => "Leads By Industry",
|
||||
"salesbyleadsource" => "Sales by LeadSource",
|
||||
"salesbyaccount" => "Sales by Accounts",
|
||||
"salesbyuser" => "Sales by User",
|
||||
"salesbyteam"=>"Sales by Team",
|
||||
"accountindustry" => "Account By Industry",
|
||||
"productcategory" => "Products by Category",
|
||||
"productbyqtyinstock" => "Products by Quantity in stock",
|
||||
"productbypo" => "Products by PurchaseOrder",
|
||||
"productbyquotes" => "Products by Quotes",
|
||||
"productbyinvoice" => "Products by Invoice",
|
||||
"sobyaccounts" => "Sales Order by Accounts",
|
||||
"sobystatus" => "Sales Order by Status",
|
||||
"pobystatus" => "Purchase Order by Status",
|
||||
"quotesbyaccounts" => "Quotes by Accounts",
|
||||
"quotesbystage" => "Quotes by Stage",
|
||||
"invoicebyacnts" => "Invoices by Accounts",
|
||||
"invoicebystatus" => "Invoices by Status",
|
||||
"ticketsbystatus" => "Tickets by Status",
|
||||
"ticketsbypriority" => "Tickets by Priority",
|
||||
"ticketsbycategory" => "Tickets by Category",
|
||||
"ticketsbyuser"=>"Tickets by User",
|
||||
"ticketsbyteam"=>"Tickets by Team",
|
||||
"ticketsbyproduct"=>"Tickets by Product",
|
||||
"contactbycampaign"=>"Contacts by Campaign",
|
||||
"ticketsbyaccount"=>"Tickets by Account",
|
||||
"ticketsbycontact"=>"Tickets by Contact",
|
||||
|
||||
'LBL_DASHBRD_HOME'=>'Dashboard Home',
|
||||
'LBL_HORZ_BAR_CHART'=>'Horizontal Bar Chart',
|
||||
'LBL_VERT_BAR_CHART'=>'Vertical Bar Chart',
|
||||
'LBL_PIE_CHART'=>'Pie Chart',
|
||||
'LBL_NO_DATA'=>'No data available',
|
||||
'DashboardHome'=>'Dashboard Home',
|
||||
'GRIDVIEW'=>'Grid view',
|
||||
'NORMALVIEW'=>'Normal view',
|
||||
'VIEWCHART'=>'View Chart',
|
||||
'LBL_DASHBOARD'=>'Dashboard',
|
||||
|
||||
// Added/Updated for vtiger CRM 5.0.4
|
||||
"Approved"=>"Approved",
|
||||
"Created"=>"Created",
|
||||
"Cancelled"=>"Cancelled",
|
||||
"Delivered"=>"Delivered",
|
||||
"Received Shipment"=>"Received Shipments",
|
||||
"Sent"=>"Sent",
|
||||
"Credit Invoice"=>"Credit Invoice",
|
||||
"Paid"=>"Paid",
|
||||
"Un Assigned"=>"Un Assigned",
|
||||
"Cold Call"=>"Cold Call",
|
||||
"Existing Customer"=>"Existing Customer",
|
||||
"Self Generated"=>"Self Generated",
|
||||
"Employee"=>"Employee",
|
||||
"Partner"=>"Partner",
|
||||
"Public Relations"=>"Public Relations",
|
||||
"Direct Mail"=>"Direct Mail",
|
||||
"Conference"=>"Conference",
|
||||
"Trade Show"=>"Trade Show",
|
||||
"Web Site"=>"Web Site",
|
||||
"Word of mouth"=>"Word of mouth",
|
||||
"Other"=>"Other",
|
||||
"--None--"=>"None",
|
||||
"Attempted to Contact"=>"Attempted to Contact",
|
||||
"Cold"=>"Cold",
|
||||
"Contact in Future"=>"Contact in Future",
|
||||
"Contacted"=>"Contacted",
|
||||
"Hot"=>"Hot",
|
||||
"Junk Lead"=>"Junk Lead",
|
||||
"Lost Lead"=>"Lost Lead",
|
||||
"Not Contacted"=>"Not Contacted",
|
||||
"Pre Qualified"=>"Pre Qualified",
|
||||
"Qualified"=>"Qualified",
|
||||
"Warm"=>"Warm",
|
||||
"Apparel"=>"Apparel",
|
||||
"Banking"=>"Banking",
|
||||
"Biotechnology"=>"Biotechnology",
|
||||
"Chemicals"=>"Chemicals",
|
||||
"Communications"=>"Communications",
|
||||
"Construction"=>"Constructions",
|
||||
"Consulting"=>"Consulting",
|
||||
"Education"=>"Education",
|
||||
"Electronics"=>"Electronics",
|
||||
"Energy"=>"Energy",
|
||||
"Engineering"=>"Engineering",
|
||||
"Entertainment"=>"Entertainment",
|
||||
"Environmental"=>"Environmental",
|
||||
"Finance"=>"Finance",
|
||||
"Food & Beverage"=>"Food & Beverage",
|
||||
"Government"=>"Government",
|
||||
"Healthcare"=>"Healthcare",
|
||||
"Hospitality"=>"Hospitality",
|
||||
"Insurance"=>"Insurance",
|
||||
"Machinery"=>"Machinery",
|
||||
"Manufacturing"=>"Manufacturing",
|
||||
"Media"=>"Media",
|
||||
"Not For Profit"=>"Not For Profit",
|
||||
"Recreation"=>"Recreation",
|
||||
"Retail"=>"Retail",
|
||||
"Shipping"=>"Shipping",
|
||||
"Technology"=>"Technology",
|
||||
"Telecommunications"=>"Telecommunications",
|
||||
"Transportation"=>"Transportation",
|
||||
"Utilities"=>"Utilities",
|
||||
"Hardware"=>"Hardware",
|
||||
"Software"=>"Software",
|
||||
"CRM Applications"=>"CRM Applications",
|
||||
"Open"=>"Open",
|
||||
"In Progress"=>"In Progress",
|
||||
"Wait For Response"=>"Wait For Response",
|
||||
"Closed"=>"Closed",
|
||||
"Low"=>"Low",
|
||||
"Normal"=>"Normal",
|
||||
"High"=>"High",
|
||||
"Urgent"=>"Urgent",
|
||||
"Big Problem"=>"Big Problem",
|
||||
"Small Problem"=>"Small Problem",
|
||||
"Other Problem"=>"Other Problem",
|
||||
"Accepted"=>"Accepted",
|
||||
"Rejected"=>"Rejected",
|
||||
"Prospecting"=>"Prospecting",
|
||||
"Qualification"=>"Qualifications",
|
||||
"Needs Analysis"=>"Needs Analysis",
|
||||
"Value Proposition"=>"Value Propositions",
|
||||
"Id. Decision Makers"=>"Id. Decision Makers",
|
||||
"Perception Analysis"=>"Perception Analysis",
|
||||
"Proposal/Price Quote"=>"Proposal/Price Quotes",
|
||||
"Negotiation/Review"=>"Negotiation/Review",
|
||||
"Closed Won"=>"Closed Won",
|
||||
"Closed Lost"=>"Closed Lost",
|
||||
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,192 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2006-2010 YUCHENG HU
|
||||
*
|
||||
* ---------------------------------------------
|
||||
* HA WEBSYSTEMS
|
||||
* http://www.hawebs.net
|
||||
* https://www.hawebs.org/forums/computer/
|
||||
*
|
||||
* CONTACT
|
||||
* huyuchengus@gmail.com / yuchenghu@hawebs.net
|
||||
*
|
||||
* ---------------------------------------------
|
||||
* [A] GNU GENERAL PUBLIC LICENSE GNU/LGPL
|
||||
* [B] Apache License, Version 2.0
|
||||
*
|
||||
* ---------------------------------------------
|
||||
* NOTE
|
||||
* 1. 所有的语言配置文件请采用 UTF-8 编码
|
||||
*
|
||||
* ---------------------------------------------
|
||||
*/
|
||||
$mod_strings = Array(
|
||||
'LBL_SALES_STAGE_FORM_TITLE' => '销售策略统计',
|
||||
'LBL_SALES_STAGE_FORM_DESC' =>'显示选择的客服策略、使用者累计客服数量在指定期间内预期要结案.',
|
||||
'LBL_MONTH_BY_OUTCOME'=>'月客服统计',
|
||||
'LBL_MONTH_BY_OUTCOME_DESC' => '显示选取使用者于指定期间的对外按月累计潜在案件,对外指的是根据客服策略判断优劣.',
|
||||
'LBL_LEAD_SOURCE_FORM_TITLE' => '经由接触来源的潜在案件',
|
||||
'LBL_LEAD_SOURCE_FORM_DESC' => '显示选取使用者潜在客户来源的累计潜在案件数量.',
|
||||
'LBL_LEAD_SOURCE_BY_OUTCOME' => '由潜在客户来源显示所有对外潜在案件',
|
||||
'LBL_LEAD_SOURCE_BY_OUTCOME_DESC' => '显示选取潜在客户来源于指定期间的对外按月累计潜在案件,对外指的是根据销售策略判断优劣.',
|
||||
'LBL_PIPELINE_FORM_TITLE_DESC' => '显示预期在指定期间结案的销售策略潜在案件数量.',
|
||||
'LBL_DATE_RANGE' => '日期范围从',
|
||||
'LBL_DATE_RANGE_TO' => '到',
|
||||
'ERR_NO_OPPS' => '请新增潜在案件,然后才能看见潜在案件图.',
|
||||
'LBL_TOTAL_PIPELINE' => '总处理数 ',
|
||||
'LBL_ALL_OPPORTUNITIES' => '潜在案件总数',
|
||||
'LBL_OPP_SIZE' => '预算在1万元以下的潜在案件',
|
||||
'LBL_OPP_SIZE_VALUE' => '1K',
|
||||
'NTC_NO_LEGENDS' => '无',
|
||||
'LBL_LEAD_SOURCE_OTHER' => '其它',
|
||||
'LBL_EDIT' => '编辑',
|
||||
'LBL_REFRESH' => '更新画面',
|
||||
'LBL_CREATED_ON' => '最后执行 ',
|
||||
'LBL_OPPS_IN_STAGE' => '潜在案件的客服场地',
|
||||
'LBL_OPPS_IN_LEAD_SOURCE' => '潜在案件的接触来源',
|
||||
'LBL_OPPS_OUTCOME' => '该潜在案件的处理结果',
|
||||
'LBL_USERS' => '使用者:',
|
||||
'LBL_SALES_STAGES' => '客服场地:',
|
||||
'LBL_LEAD_SOURCES' => '接触来源:',
|
||||
'LBL_DATE_START' => '开始日期:',
|
||||
'LBL_DATE_END' => '结束日期:',
|
||||
//Added for 5.0
|
||||
'LBL_NO_PERMISSION'=>'您没有检视这个模块图形的权限',
|
||||
'LBL_NO_PERMISSION_FIELD'=>'您没有检视这个模块或字段图形的权限',
|
||||
|
||||
"leadsource" => "依照来源显示潜在客户",
|
||||
"leadstatus" => "依照状态显示潜在客户",
|
||||
"leadindustry" => "依照行业显示潜在客户",
|
||||
"salesbyleadsource" => "按照潜在客户来源显示销售情况",
|
||||
"salesbyaccount" => "按照客户显示销售情况",
|
||||
"salesbyuser" => "按照用户显示销售情况",
|
||||
"salesbyteam"=>"按照团队显示销售情况",
|
||||
"accountindustry" => "依照产业显示客户",
|
||||
"productcategory" => "依照类别显示产品",
|
||||
"productbyqtyinstock" => "依照库存数量显示产品",
|
||||
"productbypo" => "依照采购订单显示产品",
|
||||
"productbyquotes" => "依照报价单显示产品",
|
||||
"productbyinvoice" => "依照税单显示产品",
|
||||
"sobyaccounts" => "依照客户显示销售订单",
|
||||
"sobystatus" => "依照状态显示销售订单",
|
||||
"pobystatus" => "依照状态显示采购订单",
|
||||
"quotesbyaccounts" => "依照客户显示报价单",
|
||||
"quotesbystage" => "依照销售策略显示报价单",
|
||||
"invoicebyacnts" => "依照公司显示税单",
|
||||
"invoicebystatus" => "依照状态显示税单",
|
||||
"ticketsbystatus" => "依照状态显示服务请求",
|
||||
"ticketsbypriority" => "依照优先级显示服务请求",
|
||||
"ticketsbycategory" => "依照类别显示服务请求",
|
||||
"ticketsbyuser"=>"依照用户显示服务请求",
|
||||
"ticketsbyteam"=>"依照团队显示服务请求",
|
||||
"ticketsbyproduct"=>"依照产品显示服务请求t",
|
||||
"contactbycampaign"=>"依照活动显示联络人",
|
||||
"ticketsbyaccount"=>"依照客户显示服务请求",
|
||||
"ticketsbycontact"=>"依照联系显示服务请求",
|
||||
|
||||
'LBL_DASHBRD_HOME'=>'统计图表',
|
||||
'LBL_HORZ_BAR_CHART'=>'水平柱状图',
|
||||
'LBL_VERT_BAR_CHART'=>'垂直柱状图',
|
||||
'LBL_PIE_CHART'=>'饼图',
|
||||
'LBL_NO_DATA'=>'无可用数据',
|
||||
'DashboardHome'=>'统计图表',
|
||||
'GRIDVIEW'=>'网格视图',
|
||||
'NORMALVIEW'=>'正常视图',
|
||||
'VIEWCHART'=>'查看图表',
|
||||
'LBL_DASHBOARD'=>'图表',
|
||||
|
||||
// Added/Updated for vtiger CRM 5.0.4
|
||||
"Approved"=>"批准",
|
||||
"Created"=>"创造",
|
||||
"Cancelled"=>"取消",
|
||||
"Delivered"=>"交付",
|
||||
"Received Shipment"=>"被接受的发货",
|
||||
"Sent"=>"发送",
|
||||
"Credit Invoice"=>"信用发货票",
|
||||
"Paid"=>"有偿",
|
||||
"Un Assigned"=>"没有被分配",
|
||||
"Cold Call"=>"备用电话",
|
||||
"Existing Customer"=>"现有的客户",
|
||||
"Self Generated"=>"自己引起的",
|
||||
"Employee"=>"员工",
|
||||
"Partner"=>"合作者",
|
||||
"Public Relations"=>"公共关系",
|
||||
"Direct Mail"=>"直接邮件",
|
||||
"Conference"=>"会议",
|
||||
"Trade Show"=>"商业展览",
|
||||
"Web Site"=>"网站",
|
||||
"Word of mouth"=>"口述",
|
||||
"Other"=>"其他",
|
||||
"--None--"=>"无",
|
||||
"Attempted to Contact"=>"试图接触",
|
||||
"Cold"=>"冷淡",
|
||||
"Contact in Future"=>"以后联系",
|
||||
"Contacted"=>"联系中",
|
||||
"Hot"=>"关系火热",
|
||||
"Junk Lead"=>"不好的潜在客户",
|
||||
"Lost Lead"=>"丢失的潜在客户",
|
||||
"Not Contacted"=>"没有联系",
|
||||
"Pre Qualified"=>"基本合格",
|
||||
"Qualified"=>"合格",
|
||||
"Warm"=>"很好",
|
||||
"Apparel"=>"服装",
|
||||
"Banking"=>"银行业务",
|
||||
"Biotechnology"=>"生物工艺",
|
||||
"Chemicals"=>"化学制品",
|
||||
"Communications"=>"通信",
|
||||
"Construction"=>"建筑",
|
||||
"Consulting"=>"咨询",
|
||||
"Education"=>"教育",
|
||||
"Electronics"=>"电子",
|
||||
"Energy"=>"能源",
|
||||
"Engineering"=>"工程",
|
||||
"Entertainment"=>"娱乐",
|
||||
"Environmental"=>"环保",
|
||||
"Finance"=>"财务",
|
||||
"Food & Beverage"=>"食品、饮料",
|
||||
"Government"=>"政府",
|
||||
"Healthcare"=>"医疗保健",
|
||||
"Hospitality"=>"好客",
|
||||
"Insurance"=>"保险",
|
||||
"Machinery"=>"机械",
|
||||
"Manufacturing"=>"制造业",
|
||||
"Media"=>"媒介",
|
||||
"Not For Profit"=>"非盈利",
|
||||
"Recreation"=>"休闲",
|
||||
"Retail"=>"零售业",
|
||||
"Shipping"=>"航运",
|
||||
"Technology"=>"技术",
|
||||
"Telecommunications"=>"电信",
|
||||
"Transportation"=>"交通运输",
|
||||
"Utilities"=>"公共事业",
|
||||
"Hardware"=>"硬件",
|
||||
"Software"=>"软件",
|
||||
"CRM Applications"=>"CRM 应用",
|
||||
"Open"=>"开放",
|
||||
"In Progress"=>"进展中",
|
||||
"Wait For Response"=>"等待中",
|
||||
"Closed"=>"未完成",
|
||||
"Low"=>"低",
|
||||
"Normal"=>"正常",
|
||||
"High"=>"高",
|
||||
"Urgent"=>"紧急",
|
||||
"Big Problem"=>"大问题",
|
||||
"Small Problem"=>"小问题",
|
||||
"Other Problem"=>"其他问题",
|
||||
"Accepted"=>"接受",
|
||||
"Rejected"=>"拒绝",
|
||||
"Prospecting"=>"勘察",
|
||||
"Qualification"=>"资格",
|
||||
"Needs Analysis"=>"需要分析",
|
||||
"Value Proposition"=>"已提价",
|
||||
"Id. Decision Makers"=>"Id. 决策者",
|
||||
"Perception Analysis"=>"感性分析",
|
||||
"Proposal/Price Quote"=>"建议/价格行情",
|
||||
"Negotiation/Review"=>"交涉/回顾",
|
||||
"Closed Won"=>"成功结单",
|
||||
"Closed Lost"=>"丢失",
|
||||
|
||||
|
||||
);
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user