更新到 5.2 正式版后第一次 SVN 提交。

[email protected]


git-svn-id: https://svn.code.sf.net/p/hawebs/svn@590 a2543c7e-f6e9-4f8a-8bff-1ffc34733512
This commit is contained in:
YuCheng Hu
2010-11-16 05:55:43 +00:00
parent 101bc4f32d
commit dc9bd178d6
15 changed files with 0 additions and 5060 deletions
@@ -1,54 +0,0 @@
<?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.
********************************************************************************/
require_once('include/logging.php');
require_once('include/database/PearDatabase.php');
require_once('modules/CustomView/CustomView.php');
global $adb,$log;
$cvid = $_REQUEST["record"];
$status = $_REQUEST["status"];
$module = $_REQUEST["dmodule"];
$now_action = $_REQUEST["action"];
if(isset($cvid) && $cvid != '')
{
$oCustomView = new CustomView($module);
if($oCustomView->isPermittedCustomView($cvid,$now_action,$oCustomView->customviewmodule) == 'yes')
{
$updateStatusSql = "update vtiger_customview set status=? where cvid=? and entitytype=?";
$updateresult = $adb->pquery($updateStatusSql, array($status, $cvid, $module));
if(!$updateresult)
echo ':#:FAILURE:#:';
else
echo ':#:SUCCESS:#:' . $module . ':#:';
}
else
{
global $theme, $app_strings;
echo "<table border='0' cellpadding='5' cellspacing='0' width='100%' height='450px'><tr><td align='center'>";
echo "<div style='border: 3px solid rgb(153, 153, 153); background-color: rgb(255, 255, 255); width: 55%; position: relative; z-index: 10000000;'>
<table border='0' cellpadding='5' cellspacing='0' width='98%'>
<tbody><tr>
<td rowspan='2' width='11%'><img src='".vtiger_imageurl('denied.gif', $theme)."' ></td>
<td style='border-bottom: 1px solid rgb(204, 204, 204);' nowrap='nowrap' width='70%'>
<span class='genHeaderSmall'>$app_strings[LBL_PERMISSION]</span></td>
</tr>
<tr>
<td class='small' align='right' nowrap='nowrap'>
<a href='javascript:window.history.back();'>$app_strings[LBL_GO_BACK]</a><br>
</td>
</tr>
</tbody></table>
</div>";
echo "</td></tr></table>";
exit;
}
}
?>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,13 +0,0 @@
<?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.
*
********************************************************************************/
require_once('include/Ajax/CommonAjax.php');
?>
@@ -1,31 +0,0 @@
<?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.
********************************************************************************/
require_once('include/logging.php');
require_once('include/database/PearDatabase.php');
global $adb;
$cvid = vtlib_purify($_REQUEST["record"]);
$module = vtlib_purify($_REQUEST["dmodule"]);
$smodule = vtlib_purify($_REQUEST["smodule"]);
$parenttab = getParentTab();
if(isset($cvid) && $cvid != '')
{
$deletesql = "delete from vtiger_customview where cvid =?";
$deleteresult = $adb->pquery($deletesql, array($cvid));
$_SESSION['lvs'][$module]["viewname"] = '';
}
if(isset($smodule) && $smodule != '')
{
$smodule_url = "&smodule=".$smodule;
}
header("Location: index.php?action=ListView&parenttab=$parenttab&module=$module".$smodule_url);
?>
File diff suppressed because it is too large Load Diff
@@ -1,253 +0,0 @@
<?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.
*
********************************************************************************/
function get_validate_import_fields_js (&$req_fields,&$all_fields)
{
global $mod_strings;
$err_multiple = $mod_strings['ERR_MULTIPLE'];
$err_required = $mod_strings['ERR_MISSING_REQUIRED_FIELDS'];
$err_select_full_name = $mod_strings['ERR_SELECT_FULL_NAME'];
$print_required_array = "";
foreach ($req_fields as $required=>$unused)
{
$print_required_array .= "required['$required'] = '". $all_fields[$required] . "';\n";
}
$the_script = <<<EOQ
<script type="text/javascript" language="Javascript">
<!-- to hide script contents from old browsers
function verify_data(form)
{
var isError = false;
var errorMessage = "";
var hash = new Object();
var required = new Object();
$print_required_array
for(i=0;i < form.length;i++)
{
if ( form.elements[i].name.indexOf("colnum",0) == 0)
{
if ( form.elements[i].value == "-1")
{
continue;
}
if ( hash[ form.elements[i].value ] == 1)
{
// got same vtiger_field more than once
isError = true;
}
hash[form.elements[i].value] = 1;
}
}
if (isError == true)
{
alert( "$err_multiple" );
return false;
}
if (hash['full_name'] == 1 && (hash['last_name'] == 1 || hash['first_name'] == 1) )
{
alert( "$err_select_full_name" );
return false;
}
for(var vtiger_field_name in required)
{
// contacts hack to bypass errors if full_name is set
if (field_name == 'last_name' &&
hash['full_name'] == 1)
{
continue;
}
if ( hash[ vtiger_field_name ] != 1 )
{
isError = true;
errorMessage += "$err_required " + required[field_name];
}
}
if (isError == true)
{
alert( errorMessage);
return false;
}
return true;
}
// end hiding contents from old browsers -->
</script>
EOQ;
return $the_script;
}
function get_validate_upload_js ()
{
global $mod_strings;
$err_missing_required_fields = $mod_strings['ERR_MISSING_REQUIRED_FIELDS'];
$lbl_select_file = $mod_strings['ERR_SELECT_FILE'];
$lbl_custom = $mod_strings['LBL_CUSTOM'];
$the_script = <<<EOQ
<script type="text/javascript" language="Javascript">
<!-- to hide script contents from old browsers
function verify_data(form)
{
var isError = false;
var errorMessage = "";
if (form.userfile.value == "")
{
isError = true;
errorMessage += "\\n$lbl_select_file";
}
else
{
for(i=0;i < form.delimiter.length;i++)
{
if ( form.delimiter[i].value == "custom"
&& form.delimiter[i].checked == true
&& form.custom_delim.value == "")
{
isError = true;
errorMessage += "\\n$lbl_custom";
break;
}
}
}
if (isError == true)
{
alert("$err_missing_required_fields" + errorMessage);
return false;
}
return true;
}
// end hiding contents from old browsers -->
</script>
EOQ;
return $the_script;
}
function getFieldSelect(&$column_fields,$colnum,&$required_fields,$suggest_field,$translated_fields,$module)
{
global $mod_strings;
global $app_strings;
global $outlook_contacts_field_map;
require_once('include/database/PearDatabase.php');
global $adb;
$output = "<select name=\"colnum" . $colnum ."\">\n";
$output .= "<option value=\"-1\">". $mod_strings['LBL_DONT_MAP'] . "</option>";
$count = 0;
$req_mark = "";
require_once("include/database/PearDatabase.php");
$adb->println("Field select");
$adb->println($translated_fields);
asort($translated_fields);
foreach ($translated_fields as $field=>$name)
{
if (! isset($column_fields[$field]))
{
continue;
}
$output .= "<option value=\"".$field;
if ( isset( $suggest_field) &&
$field == $suggest_field)
{
$output .= "\" SELECTED>";
}
else
{
$output .= "\">";
}
if ( isset( $required_fields[$field]))
{
$req_mark = " ". $app_strings['LBL_REQUIRED_SYMBOL'];
}
else
{
$req_mark = "";
}
$output .= $name . $req_mark."</option>\n";
$count ++;
}
$output .= "</select>\n";
return $output;
}
function get_readonly_js ()
{
?>
<script type="text/javascript" language="Javascript">
<!-- to hide script contents from old browsers
function set_readonly(form)
{
if (form.save_map.checked)
{
form.save_map.value='on';
form.save_map_as.readOnly=false;
form.save_map_as.focus();
}
else
{
form.save_map.value='off';
form.save_map_as.value="";
form.save_map_as.readOnly=true;
}
}
// end hiding contents from old browsers -->
</script>
<?php
}
?>
@@ -1,169 +0,0 @@
<?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: TODO: To be written.
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
* All Rights Reserved.
* Contributor(s): ______________________________________..
********************************************************************************/
/** to get the details of a KeyMetrics on Home page
* @returns $customviewlist Array in the following format
* $values = Array('Title'=>Array(0=>'image name',
* 1=>'Key Metrics',
* 2=>'home_metrics'
* ),
* 'Header'=>Array(0=>'Metrics',
* 1=>'Count'
* ),
* 'Entries'=>Array($cvid=>Array(
* 0=>$customview name,
* 1=>$no of records for the view
* ),
* $cvid=>Array(
* 0=>$customview name,
* 1=>$no of records for the view
* ),
* |
* |
* $cvid=>Array(
* 0=>$customview name,
* 1=>$no of records for the view
* )
* )
*
*/
function getKeyMetrics($maxval,$calCnt)
{
require_once("data/Tracker.php");
require_once('modules/CustomView/CustomView.php');
require_once('include/logging.php');
require_once('include/ListView/ListView.php');
global $app_strings;
global $adb;
global $log;
global $current_language;
$metricviewnames = "'Hot Leads'";
$current_module_strings = return_module_language($current_language, "CustomView");
$log = LoggerManager::getLogger('metrics');
$metriclists = getMetricList();
// Determine if the KeyMetrics widget should appear or not?
if($calCnt == 'calculateCnt') {
return count($metriclists);
}
$log->info("Metrics :: Successfully got MetricList to be displayed");
if(isset($metriclists))
{
global $current_user;
foreach ($metriclists as $key => $metriclist) {
$queryGenerator = new QueryGenerator($metriclist['module'], $current_user);
$queryGenerator->initForCustomViewById($metriclist['id']);
$metricsql = $queryGenerator->getQuery();
$metricsql = mkCountQuery($metricsql);
$metricresult = $adb->query($metricsql);
if($metricresult)
{
if($metriclist['module'] == "Calendar")
$metriclists[$key]['count'] = $adb->num_rows($metricresult);
else
{
$rowcount = $adb->fetch_array($metricresult);
if(isset($rowcount))
{
$metriclists[$key]['count'] = $rowcount['count'];
}
}
}
}
$log->info("Metrics :: Successfully build the Metrics");
}
$title=array();
$title[]='keyMetrics.gif';
$title[]=$app_strings['LBL_HOME_KEY_METRICS'];
$title[]='home_metrics';
$header=Array();
$header[]=$app_strings['LBL_HOME_METRICS'];
$header[]=$app_strings['LBL_MODULE'];
$header[]=$app_strings['LBL_HOME_COUNT'];
$entries=Array();
if(isset($metriclists))
{
$oddRow = true;
foreach($metriclists as $metriclist)
{
$value=array();
$CVname = (strlen($metriclist['name']) > 20) ? (substr($metriclist['name'],0,20).'...') : $metriclist['name'];
$value[]='<a href="index.php?action=ListView&module='.$metriclist['module'].'&viewname='.$metriclist['id'].'">'.$CVname . '</a> <font style="color:#6E6E6E;">('. $metriclist['user'] .')</font>';
$value[]='<a href="index.php?action=ListView&module='.$metriclist['module'].'&viewname='.$metriclist['id'].'">'.getTranslatedString($metriclist['module']). '</a>';
$value[]='<a href="index.php?action=ListView&module='.$metriclist['module'].'&viewname='.$metriclist['id'].'">'.$metriclist['count'].'</a>';
$entries[$metriclist['id']]=$value;
}
}
$values=Array('Title'=>$title,'Header'=>$header,'Entries'=>$entries);
if ( ($display_empty_home_blocks ) || (count($value)!= 0) )
return $values;
}
/** to get the details of a customview Entries
* @returns $metriclists Array in the following format
* $customviewlist []= Array('id'=>custom view id,
* 'name'=>custom view name,
* 'module'=>modulename,
'count'=>''
)
*/
function getMetricList()
{
global $adb, $current_user;
require('user_privileges/user_privileges_'.$current_user->id.'.php');
$ssql = "select vtiger_customview.* from vtiger_customview inner join vtiger_tab on vtiger_tab.name = vtiger_customview.entitytype";
$ssql .= " where vtiger_customview.setmetrics = 1 ";
$sparams = array();
if($is_admin == false){
$ssql .= " and (vtiger_customview.status=0 or vtiger_customview.userid = ? or vtiger_customview.status =3 or vtiger_customview.userid in(select vtiger_user2role.userid from vtiger_user2role inner join vtiger_users on vtiger_users.id=vtiger_user2role.userid inner join vtiger_role on vtiger_role.roleid=vtiger_user2role.roleid where vtiger_role.parentrole like '".$current_user_parent_role_seq."::%'))";
array_push($sparams, $current_user->id);
}
$ssql .= " order by vtiger_customview.entitytype";
$result = $adb->pquery($ssql, $sparams);
while($cvrow=$adb->fetch_array($result))
{
$metricslist = Array();
if(vtlib_isModuleActive($cvrow['entitytype'])){
$metricslist['id'] = $cvrow['cvid'];
$metricslist['name'] = $cvrow['viewname'];
$metricslist['module'] = $cvrow['entitytype'];
$metricslist['user'] = getUserName($cvrow['userid']);
$metricslist['count'] = '';
if(isPermitted($cvrow['entitytype'],"index") == "yes"){
$metriclists[] = $metricslist;
}
}
}
return $metriclists;
}
?>
File diff suppressed because it is too large Load Diff
@@ -1,247 +0,0 @@
<?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.
********************************************************************************/
require_once('include/logging.php');
require_once('include/utils/utils.php');
global $adb;
global $log, $current_user;
$cvid = (int) vtlib_purify($_REQUEST["record"]);
$cvmodule = vtlib_purify($_REQUEST["cvmodule"]);
$parenttab = getParentTab();
$return_action = vtlib_purify($_REQUEST["return_action"]);
if($cvmodule != "") {
$cv_tabid = getTabid($cvmodule);
$viewname = vtlib_purify($_REQUEST["viewName"]);
if(strtolower($default_charset) != 'utf-8')
$viewname = htmlentities($viewname);
//setStatus=0(Default);1(Private);2(Pending);3(Public).
//If status is Private ie. 1, only the user created the customview can see it
//If status is Pending ie. 2, on approval by the admin, the status will become Public ie. 3 and a user can see the customviews created by him and his sub-ordinates.
if(isset($_REQUEST['setStatus']) && $_REQUEST['setStatus'] != '' && $_REQUEST['setStatus'] != '1')
$status = $_REQUEST['setStatus'];
elseif(isset($_REQUEST['setStatus']) && $_REQUEST['setStatus'] != '' && $_REQUEST['setStatus'] == '1')
$status = CV_STATUS_PENDING;
else
$status = CV_STATUS_PRIVATE;
$userid = $current_user->id;
if(isset($_REQUEST["setDefault"])) {
$setdefault = 1;
} else {
$setdefault = 0;
}
if(isset($_REQUEST["setMetrics"])) {
$setmetrics = 1;
} else {
$setmetrics = 0;
}
//$allKeys = array_keys($HTTP_POST_VARS);
//this is will cause only the chosen fields to be added to the vtiger_cvcolumnlist table
$allKeys = array_keys($_REQUEST);
//<<<<<<<columns>>>>>>>>>>
for ($i=0;$i<count($allKeys);$i++) {
$string = substr($allKeys[$i], 0, 6);
if($string == "column") {
//the contusion, will cause only the chosen fields to be added to the vtiger_cvcolumnlist table
if($_REQUEST[$allKeys[$i]] != "")
$columnslist[] = $_REQUEST[$allKeys[$i]];
}
}
//<<<<<<<columns>>>>>>>>>
//<<<<<<<standardfilters>>>>>>>>>
$stdfiltercolumn = $_REQUEST["stdDateFilterField"];
$std_filter_list["columnname"] = $stdfiltercolumn;
$stdcriteria = $_REQUEST["stdDateFilter"];
$std_filter_list["stdfilter"] = $stdcriteria;
$startdate = $_REQUEST["startdate"];
$enddate = $_REQUEST["enddate"];
if($stdcriteria == "custom") {
$startdate = getDBInsertDateValue($startdate);
$enddate = getDBInsertDateValue($enddate);
}
$std_filter_list["startdate"] = $startdate;
$std_filter_list["enddate"]=$enddate;
if(empty($startdate) && empty($enddate))
unset($std_filter_list);
//<<<<<<<standardfilters>>>>>>>>>
//<<<<<<<advancedfilter>>>>>>>>>
for ($i=0;$i<count($allKeys);$i++) {
$string = substr($allKeys[$i], 0, 4);
if($string == "fcol" && !empty($_REQUEST[$allKeys[$i]])) {
$adv_filter_col[] = $_REQUEST[$allKeys[$i]];
}
}
for ($i=0;$i<count($allKeys);$i++) {
$string = substr($allKeys[$i], 0, 3);
if($string == "fop" && !empty($_REQUEST[$allKeys[$i]])) {
$adv_filter_option[] = $_REQUEST[$allKeys[$i]];
}
}
for ($i=0;$i<count($allKeys);$i++) {
$string = substr($allKeys[$i], 0, 4);
if($string == "fval" && !empty($_REQUEST[$allKeys[$i]])) {
//$adv_filter_value[] = htmlentities(trim($_REQUEST[$allKeys[$i]]));
$adv_filter_value[] = trim($_REQUEST[$allKeys[$i]]);
}
}
//<<<<<<<advancedfilter>>>>>>>>
if(!$cvid) {
$genCVid = $adb->getUniqueID("vtiger_customview");
if($genCVid != "") {
$customviewsql = "INSERT INTO vtiger_customview(cvid, viewname, setdefault, setmetrics, entitytype, status, userid)
VALUES (?,?,?,?,?,?,?)";
$customviewparams = array($genCVid, $viewname, 0, $setmetrics, $cvmodule, $status, $userid);
$customviewresult = $adb->pquery($customviewsql, $customviewparams);
$log->info("CustomView :: Save :: vtiger_customview created successfully");
if($setdefault == 1) {
$sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid));
if($adb->num_rows($sql_result) > 0) {
$updatedefaultsql = "UPDATE vtiger_user_module_preferences SET default_cvid = ? WHERE userid = ? and tabid = ?";
$updatedefaultresult = $adb->pquery($updatedefaultsql, array($genCVid, $current_user->id, $cv_tabid));
} else {
$insertdefaultsql = "INSERT INTO vtiger_user_module_preferences(userid, tabid, default_cvid) values (?,?,?)";
$insertdefaultresult = $adb->pquery($insertdefaultsql, array($userid, $cv_tabid, $genCVid));
}
} else {
$sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid));
if($adb->num_rows($sql_result) > 0) {
$deletedefaultsql = "DELETE FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?";
$deletedefaultresult = $adb->pquery($deletedefaultsql, array($current_user->id, $cv_tabid));
}
}
$log->info("CustomView :: Save :: setdefault upated successfully");
if($customviewresult) {
if(isset($columnslist)) {
for($i=0;$i<count($columnslist);$i++) {
$columnsql = "INSERT INTO vtiger_cvcolumnlist (cvid, columnindex, columnname) VALUES (?,?,?)";
$columnparams = array($genCVid, $i, $columnslist[$i]);
$columnresult = $adb->pquery($columnsql, $columnparams);
}
$log->info("CustomView :: Save :: vtiger_cvcolumnlist created successfully");
if($std_filter_list["columnname"] !="") {
$stdfiltersql = "INSERT INTO vtiger_cvstdfilter(cvid,columnname,stdfilter,startdate,enddate) VALUES (?,?,?,?,?)";
$stdfilterparams = array($genCVid, $std_filter_list["columnname"], $std_filter_list["stdfilter"], $adb->formatDate($std_filter_list["startdate"], true), $adb->formatDate($std_filter_list["enddate"], true));
$stdfilterresult = $adb->pquery($stdfiltersql, $stdfilterparams);
$log->info("CustomView :: Save :: vtiger_cvstdfilter created successfully");
}
for($i=0;$i<count($adv_filter_col);$i++) {
$col = explode(":",$adv_filter_col[$i]);
$temp_val = explode(",",$adv_filter_value[$i]);
if($col[4] == 'D' || ($col[4] == 'T' && $col[1] != 'time_start' && $col[1] != 'time_end') || $col[4] == 'DT') {
$val = Array();
for($x=0;$x<count($temp_val);$x++) {
//if date and time given then we have to convert the date and leave the time as it is, if date only given then temp_time value will be empty
list($temp_date,$temp_time) = explode(" ",$temp_val[$x]);
$temp_date = getDBInsertDateValue(trim($temp_date));
if(trim($temp_time) != '')
$temp_date .= ' '.$temp_time;
$val[$x] = $temp_date;
}
$adv_filter_value[$i] = implode(", ",$val);
}
$advfiltersql = "INSERT INTO vtiger_cvadvfilter(cvid,columnindex,columnname,comparator,value) VALUES (?,?,?,?,?)";
$advfilterparams = array($genCVid, $i, $adv_filter_col[$i], $adv_filter_option[$i], $adv_filter_value[$i]);
$advfilterresult = $adb->pquery($advfiltersql, $advfilterparams);
}
$log->info("CustomView :: Save :: vtiger_cvadvfilter created successfully");
}
}
$cvid = $genCVid;
}
} else {
if($is_admin == true || $current_user->id) {
$updatecvsql = "UPDATE vtiger_customview
SET viewname = ?, setmetrics = ?, status = ? WHERE cvid = ?";
$updatecvparams = array($viewname, $setmetrics, $status, $cvid);
$updatecvresult = $adb->pquery($updatecvsql, $updatecvparams);
$log->info("CustomView :: Save :: vtiger_customview upated successfully".$cvid);
if($setdefault == 1) {
$sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid));
if($adb->num_rows($sql_result) > 0) {
$updatedefaultsql = "UPDATE vtiger_user_module_preferences SET default_cvid = ? WHERE userid = ? and tabid = ?";
$updatedefaultresult = $adb->pquery($updatedefaultsql, array($cvid, $current_user->id, $cv_tabid));
} else {
$insertdefaultsql = "INSERT INTO vtiger_user_module_preferences(userid, tabid, default_cvid) values (?,?,?)";
$insertdefaultresult = $adb->pquery($insertdefaultsql, array($userid, $cv_tabid, $cvid));
}
} else {
$sql_result = $adb->pquery("SELECT * FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?",array($current_user->id, $cv_tabid));
if($adb->num_rows($sql_result) > 0) {
$deletedefaultsql = "DELETE FROM vtiger_user_module_preferences WHERE userid = ? and tabid = ?";
$deletedefaultresult = $adb->pquery($deletedefaultsql, array($current_user->id, $cv_tabid));
}
}
$log->info("CustomView :: Save :: setdefault upated successfully".$cvid);
$deletesql = "DELETE FROM vtiger_cvcolumnlist WHERE cvid = ?";
$deleteresult = $adb->pquery($deletesql, array($cvid));
$deletesql = "DELETE FROM vtiger_cvstdfilter WHERE cvid = ?";
$deleteresult = $adb->pquery($deletesql, array($cvid));
$deletesql = "DELETE FROM vtiger_cvadvfilter WHERE cvid = ?";
$deleteresult = $adb->pquery($deletesql, array($cvid));
$log->info("CustomView :: Save :: vtiger_cvcolumnlist,cvstdfilter,cvadvfilter deleted successfully before update".$genCVid);
$genCVid = $cvid;
if($updatecvresult) {
if(isset($columnslist)) {
for($i=0;$i<count($columnslist);$i++) {
$columnsql = "INSERT INTO vtiger_cvcolumnlist (cvid, columnindex, columnname) VALUES (?,?,?)";
$columnparams = array($genCVid, $i, $columnslist[$i]);
$columnresult = $adb->pquery($columnsql, $columnparams);
}
$log->info("CustomView :: Save :: vtiger_cvcolumnlist update successfully".$genCVid);
if($std_filter_list["columnname"] !="") {
$stdfiltersql = "INSERT INTO vtiger_cvstdfilter (cvid,columnname,stdfilter,startdate,enddate) VALUES (?,?,?,?,?)";
$stdfilterparams = array($genCVid, $std_filter_list["columnname"], $std_filter_list["stdfilter"], $adb->formatDate($std_filter_list["startdate"], true), $adb->formatDate($std_filter_list["enddate"], true));
$stdfilterresult = $adb->pquery($stdfiltersql, $stdfilterparams);
$log->info("CustomView :: Save :: vtiger_cvstdfilter update successfully".$genCVid);
}
for($i=0;$i<count($adv_filter_col);$i++) {
$col = explode(":",$adv_filter_col[$i]);
$temp_val = explode(",",$adv_filter_value[$i]);
if($col[4] == 'D' || ($col[4] == 'T' && $col[1] != 'time_start' && $col[1] != 'time_end') || $col[4] == 'DT') {
$val = Array();
for($x=0;$x<count($temp_val);$x++) {
//if date and time given then we have to convert the date and leave the time as it is, if date only given then temp_time value will be empty
list($temp_date,$temp_time) = explode(" ",$temp_val[$x]);
$temp_date = getDBInsertDateValue(trim($temp_date));
if(trim($temp_time) != '')
$temp_date .= ' '.$temp_time;
$val[$x] = $temp_date;
}
$adv_filter_value[$i] = implode(", ",$val);
}
$advfiltersql = "INSERT INTO vtiger_cvadvfilter (cvid,columnindex,columnname,comparator,value) VALUES (?,?,?,?,?)";
$advfilterparams = array($genCVid, $i, $adv_filter_col[$i], $adv_filter_option[$i], $adv_filter_value[$i]);
$advfilterresult = $adb->pquery($advfiltersql, $advfilterparams);
}
$log->info("CustomView :: Save :: vtiger_cvadvfilter update successfully".$cvid);
}
}
}
}
}
header("Location: index.php?action=$return_action&parenttab=$parenttab&module=$cvmodule&viewname=$cvid");
?>
@@ -1,52 +0,0 @@
<?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.
********************************************************************************/
require_once('include/logging.php');
require_once('include/database/PearDatabase.php');
global $adb;
$cvid = vtlib_purify($_REQUEST["cvid"]);
$cvmodule = vtlib_purify($_REQUEST["cvmodule"]);
$mode = $_REQUEST["mode"];
$subject = $_REQUEST["subject"];
$body = $_REQUEST["body"];
if($cvid != "")
{
if($mode == "new")
{
$customactionsql = "insert into vtiger_customaction(cvid,subject,module,content) values (?,?,?,?)";
$customactionparams = array($cvid, $subject, $cvmodule, $body);
$customactionresult = $adb->pquery($customactionsql, $customactionparams);
if($customactionresult == false)
{
include('themes/'.$theme.'/header.php');
$errormessage = "<font color='red'><B>Error Message<ul>
<li><font color='red'>Error while inserting the record</font>
</ul></B></font> <br>" ;
echo $errormessage;
}
}elseif($mode == "edit")
{
$updatecasql = "update vtiger_customaction set subject=?, content=? where cvid=?";
$updatecaresult = $adb->pquery($updatecasql, array($subject, $body, $cvid));
if($updatecaresult == false)
{
include('themes/'.$theme.'/header.php');
$errormessage = "<font color='red'><B>Error Message<ul>
<li><font color='red'>Error while inserting the record</font>
</ul></B></font> <br>" ;
echo $errormessage;
}
}
}
header("Location: index.php?action=index&module=$cvmodule&viewname=$cvid");
?>
@@ -1,172 +0,0 @@
<?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.
********************************************************************************/
require_once('include/database/PearDatabase.php');
require_once('modules/CustomView/CustomView.php');
global $current_user;
global $adb;
$idlist = vtlib_purify($_POST['idlist']);
$viewid = vtlib_purify($_REQUEST['viewname']);
$camodule=vtlib_purify($_REQUEST['return_module']);
$storearray = explode(";",$idlist);
if(isset($viewid) && trim($viewid) != "")
{
$oCustomView = new CustomView();
$CustomActionDtls = $oCustomView->getCustomActionDetails($viewid);
if(isset($CustomActionDtls))
{
$subject = $CustomActionDtls["subject"];
$contents = $CustomActionDtls["content"];
}
}
if(trim($subject) != "")
{
if(isset($storearray) && $camodule != "")
{
foreach($storearray as $id)
{
if($id == '') continue;
if($camodule == "Contacts")
{
$sql="select * from vtiger_contactdetails inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_contactdetails.contactid where vtiger_crmentity.deleted =0 and vtiger_contactdetails.contactid=?";
$result = $adb->pquery($sql, array($id));
$camodulerow = $adb->fetch_array($result);
if(isset($camodulerow))
{
$emailid = $camodulerow["email"];
$otheremailid = $camodulerow["otheremail"];
$yahooid = $camodulerow["yahooid"];
if(trim($emailid) != "")
{
SendMailtoCustomView($camodule,$id,$emailid,$current_user->id,$subject,$contents);
}elseif(trim($otheremailid) != "")
{
SendMailtoCustomView($camodule,$id,$otheremailid,$current_user->id,$subject,$contents);
}elseif(trim($yahooid) != "")
{
SendMailtoCustomView($camodule,$id,$yahooid,$current_user->id,$subject,$contents);
}
else
{
$adb->println("There is no email id for this Contact. Please give any email id.");
}
}
}elseif($camodule == "Leads")
{
$sql="select * from vtiger_leaddetails inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_leaddetails.leadid where vtiger_crmentity.deleted =0 and vtiger_leaddetails.leadid=?";
$result = $adb->pquery($sql, array($id));
$camodulerow = $adb->fetch_array($result);
if(isset($camodulerow))
{
$emailid = $camodulerow["email"];
$yahooid = $camodulerow["yahooid"];
if(trim($emailid) != "")
{
SendMailtoCustomView($camodule,$id,$emailid,$current_user->id,$subject,$contents);
}
elseif($trim($yahooid) != "")
{
SendMailtoCustomView($camodule,$id,$yahooid,$current_user->id,$subject,$contents);
}
else
{
$adb->println("There is no email id for this Lead. Please give any email id.");
}
}
}elseif($camodule == "Accounts")
{
$sql="select * from vtiger_account inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_account.accountid where vtiger_crmentity.deleted =0 and vtiger_account.accountid=?";
$result = $adb->pquery($sql, array($id));
$camodulerow = $adb->fetch_array($result);
if(isset($camodulerow))
{
$emailid = $camodulerow["email1"];
$otheremailid = $camodulerow["email2"];
if(trim($emailid) != "")
{
SendMailtoCustomView($camodule,$id,$emailid,$current_user->id,$subject,$contents);
}
elseif(trim($otheremailid) != "")
{
SendMailtoCustomView($camodule,$id,$otheremailid,$current_user->id,$subject,$contents);
}
else
{
$adb->println("There is no email id for this Account. Please give any email id.");
}
}
}
}
}
}
function SendMailtoCustomView($module,$id,$to,$current_user_id,$subject,$contents)
{
require_once("modules/Emails/class.phpmailer.php");
$mail = new PHPMailer();
$mail->Subject = $subject;
$mail->Body = nl2br($contents);
$mail->IsSMTP();
if($current_user_id != '')
{
global $adb;
$sql = "select * from vtiger_users where id= ?";
$result = $adb->pquery($sql, array($current_user_id));
$from = $adb->query_result($result,0,'email1');
$initialfrom = $adb->query_result($result,0,'user_name');
}
global $adb;
$mailserverresult=$adb->pquery("select * from vtiger_systems where server_type=?", array('email'));
$mail_server = $adb->query_result($mailserverresult,0,'server');
$mail_server_username = $adb->query_result($mailserverresult,0,'server_username');
$mail_server_password = $adb->query_result($mailserverresult,0,'server_password');
$smtp_auth = $adb->query_result($mailserverresult,0,'smtp_auth');
$adb->println("Mail Server Details : '".$mail_server."','".$mail_server_username."','".$mail_server_password."'");
$_REQUEST['server']=$mail_server;
$mail->Host = $mail_server;
$mail->SMTPAuth = $smtp_auth;
$mail->Username = $mail_server_username;
$mail->Password = $mail_server_password;
$mail->From = $from;
$mail->FromName = $initialfrom;
$mail->AddAddress($to);
$mail->AddReplyTo($from);
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
$adb->println("Mail sending process : To => '".$to."', From => '".$from."'");
if(!$mail->Send())
{
$adb->println("(CustomView/SendMailAction.php) Error in Mail Sending : ".$mail->ErrorInfo);
$errormsg = "Mail Could not be sent...";
}
else
{
$adb->println("(CustomView/SendMailAction.php) Mail has been Sent to => ".$to);
}
}
header("Location: index.php?action=index&module=$camodule&viewname=$viewid");
?>
@@ -1,17 +0,0 @@
<?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 $current_language;
$mod_strings = return_module_language($current_language, "CustomView");
include_once('modules/CustomView/EditView.php');
?>
@@ -1,285 +0,0 @@
<?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: 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_MODULE_NAME'=>'Custom View',
'LBL_STEP_1_TITLE'=>'View Information',
'LBL_VIEW_NAME'=>'View Name:',
'LBL_SETDEFAULT'=>'Set as Default',
'LBL_LIST_IN_METRICS'=>'List in Metrics',
'LBL_STEP_2_TITLE'=>'Choose Columns',
'LBL_STEP_3_TITLE'=>'Standard Filters',
'LBL_STEP_4_TITLE'=>'Advanced Filters',
'LBL_STEP_5_TITLE'=>'Access Information',
'LBL_SF_COLUMNS'=>'Column',
'LBL_SF_STARTDATE'=>'Start Date',
'LBL_SF_ENDDATE'=>'End Date',
'LBL_AF_HDR1'=>'Set the search conditions to further restrict the list.',
'LBL_AF_HDR2'=>'You can use &quot;or&quot; filters by entering multiple
items in the third column.',
'LBL_AF_HDR3'=>'You can enter up to 10 items, separated by commas. For
example: CA, NY, TX, FL searches for CA or NY or TX or FL.',
'LBL_AF_HDR4'=>'If "Activity Type" is selected, give any one of the
following values "Call","Meeting" or "Task".',
//strings added for vtiger 5, date format...
'LBL_NONE'=>'None',
'View_Name'=>'View_Name',
'LBL_AND'=>'And',
'LBL_DATE_FORMAT_CUSTOMVIEW'=>'Y-m-d',
//Strings added for filter
'Custom'=>'Custom',
'Previous FY'=>'Previous FY',
'Current FY'=>'Current FY',
'Next FY'=>'Next FY',
'Previous FQ'=>'Previous FQ',
'Current FQ'=>'Current FQ',
'Next FQ'=>'Next FQ',
'Yesterday'=>'Yesterday',
'Today'=>'Today',
'Tomorrow'=>'Tomorrow',
'Last Week'=>'Last Week',
'Current Week'=>'Current Week',
'Next Week'=>'Next Week',
'Last Month'=>'Last Month',
'Current Month'=>'Current Month',
'Next Month'=>'Next Month',
'Last 7 Days'=>'Last 7 Days',
'Last 30 Days'=>'Last 30 Days',
'Last 60 Days'=>'Last 60 Days',
'Last 90 Days'=>'Last 90 Days',
'Last 120 Days'=>'Last 120 Days',
'Next 30 Days'=>'Next 30 Days',
'Next 60 Days'=>'Next 60 Days',
'Next 90 Days'=>'Next 90 Days',
'Next 120 Days'=>'Next 120 Days',
'equals'=>'equals',
'contains'=>'Contains',
'does not contain'=>'does not contain',
'less than'=>'less than',
'greater than'=>'greater than',
'less or equal'=>'less or equal',
'greater or equal'=>'greater or equal',
//Strings added to translate field label vtiger_groups
'Address'=>'Address',
'Information'=>'Information',
'Description'=>'Description',
'Custom Information'=>'Custom Information',
'- Event Information'=>'- Event Information',
'- Event Description'=>'- Event Description',
'- Task Information'=>'- Task Information',
'- Task Description'=>'- Task Description',
//Strings added for helpdesk module fields
'Title'=>'Title',
'Assigned To'=>'Assigned To',
'Related to'=>'Related to',
'Priority'=>'Priority',
'Product Name'=>'Product Name',
'Severity'=>'Severity',
'Status'=>'Status',
'Category'=>'Category',
'Created Time'=>'Created Time',
'Modified Time'=>'Modified Time',
'Attachment'=>'Attachment',
//Strings added for Leads module fields
'First Name'=>'First Name',
'Phone'=>'Phone',
'Last Name'=>'Last Name',
'Company'=>'Company',
'Lead Source'=>'Lead Source',
'Website'=>'Website',
'Industry'=>'Industry',
'Lead Status'=>'Lead Status',
'Annual Revenue'=>'Annual Revenue',
'Rating'=>'Rating',
'No Of Employees'=>'No of Employees',
'Street'=>'Street',
'Po Box'=>'PO Box',
'Postal Code'=>'Postal Code',
'City'=>'City',
'Country'=>'Country',
'State'=>'State',
//Strings added for Accounts module fields
'Account Name'=>'Account Name',
'Ticker Symbol'=>'Ticker Symbol',
'Other Phone'=>'Other Phone',
'Member Of'=>'Member Of',
'Employees'=>'Employees',
'Other Email'=>'Other Email',
'Ownership'=>'Ownership',
'industry'=>'industry',
'SIC Code'=>'SIC Code',
'Email Opt Out'=>'Email Opt Out',
'Billing Address'=>'Billing Address',
'Shipping Address'=>'Shipping Address',
'Shipping Po Box'=>'Shipping PO Box',
'Billing Po Box'=>'Billing PO Box',
'Billing City'=>'Billing City',
'Shipping City'=>'Shipping City',
'Billing State'=>'Billing State',
'Shipping State'=>'Shipping State',
'Billing Code'=>'Billing Code',
'Shipping Code'=>'Shipping Code',
'Shipping Country'=>'Shipping Country',
'Billing Country'=>'Billing Country',
//Strings added for Contacts module fields
'Office Phone'=>'Office Phone',
'Home Phone'=>'Home Phone',
'Birthdate'=>'Birthdate',
'Reports To'=>'Reports To',
'Assistant Phone'=>'Assistant Phone',
'Do Not Call'=>'Do Not Call',
'Mailing Street'=>'Mailing Street',
'Other Street'=>'Other Street',
'Mailing Po Box'=>'Mailing PO Box',
'Other Po Box'=>'Other PO Box',
'Mailing City'=>'Mailing City',
'Other City'=>'Other City',
'Mailing State'=>'Mailing State',
'Other State'=>'Other State',
'Mailing Zip'=>'Mailing Zip',
'Other Zip'=>'Other Zip',
'Mailing Country'=>'Mailing Country',
'Other Country'=>'Other Country',
//Strings added for Potential module fields
'Potential Name'=>'Potential Name',
'Amount'=>'Amount',
'Expected Close Date'=>'Expected Close Date',
'Next Step'=>'Next Step',
'Sales Stage'=>'Sales Stage',
'Probability'=>'Probability',
//Strings added for Quotes module fields
'Subject'=>'Subject',
'Quote Stage'=>'Quote Stage',
'Valid Till'=>'Valid Till',
'Team'=>'Team',
'Contact Name'=>'Contact Name',
'Carrier'=>'Carrier',
'Shipping'=>'Shipping',
'Inventory Manager'=>'Inventory Manager',
//Strings added for Sales Orders module fields
'Customer No'=>'Customer No',
'Quote Name'=>'Quote Name',
'Purchase Order'=>'Purchase Order',
'Due Date'=>'Due Date',
'Pending'=>'Pending',
'Sales Commission'=>'Sales Commission',
'Excise Duty'=>'Excise Duty',
//Strings added for Invoices module fields
'Sales Order'=>'Sales Order',
'Invoice Date'=>'Invoice Date',
//Strings added for Product module fields
'Product Active'=>'Product Active',
'Product Category'=>'Product Category',
'Sales Start Date'=>'Sales Start Date',
'Sales End Date'=>'Sales End Date',
'Support Start Date'=>'Support Start Date',
'Support Expiry Date'=>'Support Expiry Date',
'Vendor Name'=>'Vendor Name',
'Mfr PartNo'=>'Mfr PartNo',
'Vendor PartNo'=>'Vendor PartNo',
'Serial No'=>'Serial No',
'Product Sheet'=>'Product Sheet',
'GL Account'=>'GL Account',
//Strings added for Price book module fields
'Price Book Name'=>'Price Book Name',
'Active'=>'Active',
//Strings added for tasks & events module fields
'Start Date & Time'=>'Start Date & Time',
//error message
'Missing required fields'=>'Missing required vtiger_fields',
//Strings added for campaigns
'Campaign Name'=>'Campaign Name',
'Campaign Type'=>'Campaign Type',
'Product'=>'Product',
'Campaign Status'=>'Campaign Status',
'Expected Revenue'=>'Expected Revenue',
'Budget Cost'=>'Budget Cost',
'Actual Cost'=>'Actual Cost',
'Expected Response'=>'Expected Response',
'Num Sent'=>'Num Sent',
'Target Audience'=>'Target Audience',
'TargetSize'=>'TargetSize',
'Sponsor'=>'Sponsor',
'Expected Sales Count'=>'Expected Sales Count',
'Expected Response Count'=>'Expected Response Count',
'Expected ROI'=>'Expected ROI',
'Actual Sales Count'=>'Actual Sales Count',
'Actual Response Count'=>'Actual Response Count',
'Actual ROI'=>'Actual ROI',
//Added for customview.tpl
'LBL_Select_a_Column'=>'Select a Column',
'Missing_required_fields'=>'Missing required fields',
'Details'=>'Details',
'New_Custom_View'=>'New Custom view',
'Edit_Custom_View'=>'Edit Custom View',
'LBL_AF_HDR5'=>'Simple Time Filter allows you to select date based on
<b>Account Created Time</b> or <b>Account Modified Time</b>',
'Select_Duration'=>'Select Duration',
'Simple_Time_Filter'=>'Simple Time Filter',
'Start_Date'=>'Start Date',
'End_Date'=>'End Date',
'LBL_RULE'=>'RULE',
// Added/Updated for vtiger CRM 5.0.4
'not equal to'=>'Not equal to',
'starts with'=>'Starts with',
'ends with'=>'Ends with',
//'Product Code'=>'Product Code',
// Added after 5.0.4 GA
//Added for Role based Custom filters
'LBL_SET_AS_PUBLIC'=>'Set as Public ',
'LBL_NEW'=>'New',
'LBL_EDIT'=>'Edit',
'LBL_STATUS_PUBLIC_APPROVE'=>'Approve',
'LBL_STATUS_PUBLIC_DENY'=>'Deny'
);
?>
@@ -1,282 +0,0 @@
<?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: 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_MODULE_NAME' => '自订检视表',
'LBL_STEP_1_TITLE' => '检视表信息',
'LBL_VIEW_NAME' => '检视表名称:',
'LBL_SETDEFAULT' => '默认值',
'LBL_LIST_IN_METRICS' => '制式化列表',
'LBL_STEP_2_TITLE' => '选择字段',
'LBL_STEP_3_TITLE' => '标准规则',
'LBL_STEP_4_TITLE' => '进阶规则',
'LBL_STEP_5_TITLE' => '存取信息',
'LBL_SF_COLUMNS' => '字段',
'LBL_SF_STARTDATE' => '开始日期',
'LBL_SF_ENDDATE' => '结束日期',
'LBL_AF_HDR1' => '设定搜寻条件来缩小范围',
'LBL_AF_HDR2' => '您可以在第三个字段输入多个项目,之前用"or"分开 ',
'LBL_AF_HDR3' => '您最多可以输入10个项目,以逗号分隔。例如CA,NY,TX,FL会尝试搜寻CA或NY或TX或FL。',
'LBL_AF_HDR4' => '如果选择了"活动类型",请输入 "Call"、"Meeting" 或是 "Task"。',
//strings added for vtiger 5, date format...
'LBL_NONE' => '无',
'View_Name' => '检视名称',
'LBL_AND' => '且',
'LBL_DATE_FORMAT_CUSTOMVIEW' => '年-月-日',
//Strings added for filter
'Custom' => '自订',
'Previous FY' => '上一个财务年度',
'Current FY' => '目前财务年度',
'Next FY' => '下一个财务年度',
'Previous FQ' => '上一个财务季',
'Current FQ' => '目前财务季',
'Next FQ' => '下一个财务季',
'Yesterday' => '昨天',
'Today' => '今天',
'Tomorrow' => '明天',
'Last Week' => '上周',
'Current Week' => '这周',
'Next Week' => '下周',
'Last Month' => '上个月',
'Current Month' => '这个月',
'Next Month' => '下个月',
'Last 7 Days' => '过去七天',
'Last 30 Days' => '过去 30 天',
'Last 60 Days' => '过去 60 天',
'Last 90 Days' => '过去 90 天',
'Last 120 Days' => '过去 120 天',
'Next 30 Days' => '未来 30 天',
'Next 60 Days' => '未来 60 天',
'Next 90 Days' => '未来 90 天',
'Next 120 Days' => '未来 120 天',
'equals' => '等于',
'not_equal_to' => '不等于',
'starts_with' => '开始于',
'contains' => '包含',
'does_not_contain' => '不包含',
'less_than' => '少于',
'greater_than' => '大于',
'less_or_equal' => '少于或等于',
'greater_or_equal' => '大于或等于',
//Strings added to translate field label vtiger_groups
'Address' => '住址',
'Information' => '信息',
'Description' => '说明',
'Custom Information' => '自订信息',
'- Event Information' => '- 事件信息',
'- Event Description' => '- 事件说明',
'- Task Information' => '- 任务信息',
'- Task Description' => '- 任务说明',
//Strings added for helpdesk module fields
'Title' => '标题',
'Assigned To' => '负责人',
'Related to' => '关联',
'Priority' => '优先序',
'Product Name' => '产品名称',
'Severity' => '严重',
'Status' => '状态',
'Category' => '类别',
'Created Time' => '建立时间',
'Modified Time' => '修改时间',
'Attachment' => '附加档案',
//Strings added for Leads module fields
'First Name' => '姓名',
'Phone' => '电话',
'Last Name' => '姓氏',
'Company' => '公司',
'Lead Source' => '准客户来源',
'Website' => '网站',
'Industry' => '行业',
'Lead Status' => '准客户状态',
'Annual Revenue' => '年营业额',
'Rating' => '评比',
'No Of Employees' => '员工人数',
'Street' => '街道巷弄',
'Po Box' => '邮政信箱',
'Postal Code' => '邮政编码',
'City' => '乡镇市区',
'Country' => '国家',
'State' => '县市',
//Strings added for Accounts module fields
'Account Name' => '公司名称',
'Ticker Symbol' => '传票符号',
'Other Phone' => '其它电话',
'Member Of' => '群组',
'Employees' => '员工',
'Other Email' => '其它信箱',
'Ownership' => '负责人',
'industry' => '产业',
'SIC Code' => '统一编号',
'Email Opt Out' => '拒绝邮件打扰',
'Billing Address' => '付款住址',
'Shipping Address' => '送货住址',
'Shipping Po Box' => '[送货住址]邮政信箱',
'Billing Po Box' => '[付款住址]邮政信箱',
'Billing City' => '[付款住址]乡镇市区',
'Shipping City' => '[送货住址]乡镇市区',
'Billing State' => '[付款住址]县市',
'Shipping State' => '[送货住址]县市',
'Billing Code' => '[付款住址]邮政编码',
'Shipping Code' => '[送货住址]邮政编码',
'Shipping Country' => '[送货住址]国家',
'Billing Country' => '[付款住址]国家',
//Strings added for Contacts module fields
'Office Phone' => '办公室电话',
'Home Phone' => '住家电话',
'Birthdate' => '生日',
'Reports To' => '回报给',
'Assistant Phone' => '助理电话',
'Do Not Call' => '拒绝电话打扰',
'Mailing Street' => '街道巷弄',
'Other Street' => '[其它]街道巷弄',
'Mailing Po Box' => '邮政信箱',
'Other Po Box' => '[其它]邮政信箱',
'Mailing City' => '乡镇市区',
'Other City' => '[其它]乡镇市区',
'Mailing State' => '县市',
'Other State' => '[其它]县市',
'Mailing Zip' => '邮政编码',
'Other Zip' => '[其它]邮政编码',
'Mailing Country' => '国家',
'Other Country' => '[其它]国家',
//Strings added for Potential module fields
'Potential Name' => '潜在机会名称',
'Amount' => '金额',
'Expected Close Date' => '预期结案日期',
'Next Step' => '下一步',
'Sales Stage' => '销售策略',
'Probability' => '可能性',
//Strings added for Quotes module fields
'Subject' => '主旨',
'Quote Stage' => '报价策略',
'Valid Till' => '有效日期',
'Team' => '团队',
'Contact Name' => '联系人名称',
'Carrier' => '货运商',
'Shipping' => '船运商',
'Inventory Manager' => '库存管理',
//Strings added for Sales Orders module fields
'Customer No' => '客户编号',
'Quote Name' => '报价单名称',
'Purchase Order' => '采购订单',
'Due Date' => '结束日期',
'Pending' => '暂缓',
'Sales Commission' => '销售佣金',
'Excise Duty' => '关税',
//Strings added for Invoices module fields
'Sales Order' => '销售订单',
'Invoice Date' => '发票日期',
//Strings added for Product module fields
'Product Code' => '产品代号',
'Product Active' => '产品状态',
'Product Category' => '产品类别',
'Sales Start Date' => '开始销售日期',
'Sales End Date' => '结束销售日期',
'Support Start Date' => '开始支持日期',
'Support Expiry Date' => '结束支持日期',
'Vendor Name' => '厂商名称',
'Mfr PartNo' => '工厂零件代号',
'Vendor PartNo' => '厂商零件代号',
'Serial No' => '序号',
'Product Sheet' => '产品型录',
'GL Account' => '会计科目',
//Strings added for Price book module fields
'Price Book Name' => '价格表名称',
'Active' => '启用',
//Strings added for tasks & events module fields
'Start Date & Time' => '开始日期与时间',
//error message
'Missing required fields' => '缺少必要字段',
//Strings added for campaigns
'Campaign Name' => '活动名称',
'Campaign Type' => '活动类型',
'Product' => '产品',
'Campaign Status' => '活动状态',
'Expected Revenue' => '预期收益',
'Budget Cost' => '预算',
'Actual Cost' => '实际成本',
'Expected Response' => '预期回应',
'Num Sent' => '寄发数量',
'Target Audience' => '目标族群',
'TargetSize' => '目标数量',
'Sponsor' => '赞助商',
'Expected Sales Count' => '预期销售量',
'Expected Response Count' => '预期回应量',
'Expected ROI' => '预期收益',
'Actual Sales Count' => '实际销售量',
'Actual Response Count' => '实际回应量',
'Actual ROI' => '实际收益',
//Added for customview.tpl
'LBL_Select_a_Column' => '选择字段',
'Missing_required_fields' => '缺少必要字段',
'Details' => '细节',
'New_Custom_View' => '新增自订检视',
'LBL_AF_HDR5' => '简易时间过滤可以让您选择介于客户建立时间与异动时间之间的日期',
'Select_Duration' => '选择期间',
'Simple_Time_Filter' => '简易时间过滤',
'Start_Date' => '开始日期',
'End_Date' => '结束日期',
'LBL_RULE' => '规则',
// Added/Updated for vtiger CRM 5.0.4
'not equal to'=>'不等于',
'starts with'=>'开始于',
'ends with'=>'结束于',
//'Product Code'=>'产品编号',
// Added after 5.0.4 GA
//Added for Role based Custom filters
'LBL_SET_AS_PUBLIC'=>'设为公共 ',
'LBL_NEW'=>'新',
'LBL_EDIT'=>'修改',
'LBL_STATUS_PUBLIC_APPROVE'=>'批准',
'LBL_STATUS_PUBLIC_DENY'=>'拒绝'
);
?>