📄 sugarwidgetfielddatetime.php
字号:
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
/*********************************************************************************
* The contents of this file are subject to the SugarCRM Public License Version
* 1.1.3 ("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.
*
* All copies of the Covered Code must include on each user interface screen:
* (i) the "Powered by SugarCRM" logo and
* (ii) the SugarCRM copyright notice
* in the same form as they appear in the distribution. See full license for
* requirements.
*
* The Original Code is: SugarCRM Open Source
* The Initial Developer of the Original Code is SugarCRM, Inc.
* Portions created by SugarCRM are Copyright (C) 2004-2006 SugarCRM, Inc.;
* All Rights Reserved.
* Contributor(s): ______________________________________.
********************************************************************************/
require_once('modules/Users/User.php');
class SugarWidgetFieldDateTime extends SugarWidgetReportField {
var $reporter;
var $assigned_user;
function SugarWidgetFieldDateTime(&$layout_manager) {
parent::SugarWidgetReportField($layout_manager);
$this->reporter = $this->layout_manager->getAttribute('reporter');
}
// get the reporter attribute
// deprecated, now called in the constructor
function getReporter() {
// $this->reporter = $this->layout_manager->getAttribute('reporter');
}
// get the assigned user of the report
function getAssignedUser() {
$json_obj = getJSONobj();
$report_def_str = $json_obj->decode($this->reporter->report_def_str);
if(empty($report_def_str['assigned_user_id'])) return false;
$this->assigned_user = new User();
$this->assigned_user->retrieve($report_def_str['assigned_user_id']);
return true;
}
function queryFilterOn(& $layout_def) {
global $timedate;
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($layout_def['input_name0'] . ' 00:00:00', $timedate->get_db_date_time_format(), false, $this->assigned_user);
$end = $timedate->handle_offset($layout_def['input_name0'] . ' 23:59:59', $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
else {
$begin = $layout_def['input_name0']." 00:00:00";
$end = $layout_def['input_name0']." 23:59:59";
}
return $this->_get_column_select($layout_def).">='".PearDatabase :: quote($begin)."' AND ".$this->_get_column_select($layout_def)."<='".PearDatabase :: quote($end)."'\n";
}
function queryFilterBefore(& $layout_def) {
global $timedate;
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($layout_def['input_name0'] . ' 00:00:00', $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
else {
$begin = $layout_def['input_name0']." 00:00:00";
}
return $this->_get_column_select($layout_def)."<'".PearDatabase :: quote($begin)."'\n";
}
function queryFilterAfter(& $layout_def) {
global $timedate;
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($layout_def['input_name0'] . ' 23:59:59', $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
else {
$begin = $layout_def['input_name0']." 23:59:59";
}
return $this->_get_column_select($layout_def).">'".PearDatabase :: quote($begin)."'\n";
}
function queryFilterBetween_Dates(& $layout_def) {
global $timedate;
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($layout_def['input_name0'] . ' 00:00:00', $timedate->get_db_date_time_format(), false, $this->assigned_user);
$end = $timedate->handle_offset($layout_def['input_name1'] . ' 23:59:59', $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
else {
$begin = $layout_def['input_name0']." 00:00:00";
$end = $layout_def['input_name1']." 23:59:59";
}
return "(".$this->_get_column_select($layout_def).">='".PearDatabase :: quote($begin)."' AND \n".$this->_get_column_select($layout_def)."<='".PearDatabase :: quote($end)."')\n";
}
function queryFilterNot_Equals_str(& $layout_def) {
global $timedate;
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($layout_def['input_name0'] . ' 00:00:00', $timedate->get_db_date_time_format(), false, $this->assigned_user);
$end = $timedate->handle_offset($layout_def['input_name0'] . ' 23:59:59', $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
else {
$begin = $layout_def['input_name0']." 00:00:00";
$end = $layout_def['input_name0']." 23:59:59";
}
if ($this->reporter->db->dbType == 'oci8') {
} elseif ($this->reporter->db->dbType == 'mssql'){
return "(".$this->_get_column_select($layout_def)."<'".PearDatabase :: quote($begin)."' AND ".$this->_get_column_select($layout_def).">'".PearDatabase :: quote($end)."')\n";
}else{
return "ISNULL(".$this->_get_column_select($layout_def).") OR \n(".$this->_get_column_select($layout_def)."<'".PearDatabase :: quote($begin)."' AND ".$this->_get_column_select($layout_def).">'".PearDatabase :: quote($end)."')\n";
}
}
function queryFilterTP_yesterday(& $layout_def) {
global $timedate;
$today = getdate();
$be = mktime(0, 0, 0, $today['mon'], $today['mday'], $today['year']) - (24 * 60 * 60);
$ed = mktime(23, 59, 59, $today['mon'], $today['mday'], $today['year']) - (24 * 60 * 60);
$begin = gmdate('Y-m-d H:i:s', $be);
$end = gmdate('Y-m-d H:i:s', $ed);
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($begin, $timedate->get_db_date_time_format(), false, $this->assigned_user);
$end = $timedate->handle_offset($end, $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
if ($this->reporter->db->dbType == 'oci8') {
}
if ($this->reporter->db->dbType == 'mysql')
{
if (isset ($layout_def['rel_field'])) {
$field_name = "CONCAT(".$this->_get_column_select($layout_def).",' ',".$layout_def['rel_field'].")";
} else {
$field_name = $this->_get_column_select($layout_def);
}
return $field_name.">='".PearDatabase :: quote($begin)."' AND ".$field_name."<='".PearDatabase :: quote($end)."'\n";
}
if ($this->reporter->db->dbType == 'mssql')
{
if (isset ($layout_def['rel_field'])) {
$field_name = $this->_get_column_select($layout_def) . " + ' ' + " . $layout_def['rel_field'].")";
} else {
$field_name = $this->_get_column_select($layout_def);
}
return $field_name.">='".PearDatabase :: quote($begin)."' AND ".$field_name."<='".PearDatabase :: quote($end)."'\n";
}
}
function queryFilterTP_today(& $layout_def) {
global $timedate;
$today = getdate();
$be = mktime(0, 0, 0, $today['mon'], $today['mday'], $today['year']);
$ed = mktime(23, 59, 59, $today['mon'], $today['mday'], $today['year']);
$begin = gmdate('Y-m-d H:i:s', $be);
$end = gmdate('Y-m-d H:i:s', $ed);
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($begin, $timedate->get_db_date_time_format(), false, $this->assigned_user);
$end = $timedate->handle_offset($end, $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
if ($this->reporter->db->dbType == 'oci8') {
}elseif($this->reporter->db->dbType == 'mssql'){
if (isset ($layout_def['rel_field'])) {
$field_name = "(".$this->_get_column_select($layout_def)." + ' ' + ".$layout_def['rel_field'].")";
} else {
$field_name = $this->_get_column_select($layout_def);
}
return $field_name.">='".PearDatabase :: quote($begin)."' AND ".$field_name."<='".PearDatabase :: quote($end)."'\n";
} else {
if (isset ($layout_def['rel_field'])) {
$field_name = "CONCAT(".$this->_get_column_select($layout_def).",' ',".$layout_def['rel_field'].")";
} else {
$field_name = $this->_get_column_select($layout_def);
}
return $field_name.">='".PearDatabase :: quote($begin)."' AND ".$field_name."<='".PearDatabase :: quote($end)."'\n";
}
}
function queryFilterTP_tomorrow(& $layout_def) {
global $timedate;
$current_date = gmdate('Y-m-d H:i:s', time() + (24 * 60 * 60));
$current_date = $timedate->to_display_date($current_date);
$begin = $current_date." 00:00:00";
$end = $current_date." 23:59:59";
if($this->getAssignedUser()) {
$begin = $timedate->handle_offset($begin, $timedate->get_db_date_time_format(), false, $this->assigned_user);
$end = $timedate->handle_offset($end, $timedate->get_db_date_time_format(), false, $this->assigned_user);
}
if ($this->reporter->db->dbType == 'oci8') {
} else {
return $this->_get_column_select($layout_def).">='".PearDatabase :: quote($begin)."' AND ".$this->_get_column_select($layout_def)."<='".PearDatabase :: quote($end)."'\n";
}
}
function queryFilterTP_last_7_days(& $layout_def) {
if ($this->reporter->db->dbType == 'oci8') {
} elseif ($this->reporter->db->dbType == 'mssql'){
return "LEFT(".$this->_get_column_select($layout_def).",11) BETWEEN LEFT((DATEADD(dd,-7,GETDATE())),11) AND LEFT(GETDATE(),11)";
}else{
return "LEFT(".$this->_get_column_select($layout_def).",10) BETWEEN LEFT((current_date - interval '7' day),10) AND LEFT(current_date,10)";
}
}
function queryFilterTP_next_7_days(& $layout_def) {
return "LEFT(".$this->_get_column_select($layout_def).",10) BETWEEN LEFT(current_date,10) AND LEFT((current_date + interval '7' day),10)";
}
function queryFilterTP_last_month(& $layout_def) {
return "LEFT(".$this->_get_column_select($layout_def).",7) = LEFT( (current_date - interval '1' month),7)";
}
function queryFilterTP_this_month(& $layout_def) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -