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

📄 search.php

📁 通达网络办公 - Office Anywhere 2008 增强版100%源码(3.4.081216) 内含 通达OA2008增強版接近完美破解补丁20081216集 及 最新通达OA2008ADV(
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php

include_once( "inc/auth.php" );
include_once( "inc/check_type.php" );
include_once( "inc/utility_all.php" );
include_once( "inc/utility_org.php" );
echo "\r\n<html>\r\n<head>\r\n<title>考勤情况查询</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\r\n</head>\r\n\r\n<body class=\"bodycolor\" topmargin=\"5\">\r\n\r\n";
if ( $DATE1 != "" )
{
	$TIME_OK = is_date( $DATE1 );
	if ( !$TIME_OK )
	{
		message( "错误", "起始日期格式不对,应形如 1999-1-2" );
		button_back( );
		exit( );
	}
}
if ( $DATE2 != "" )
{
	$TIME_OK = is_date( $DATE2 );
	if ( !$TIME_OK )
	{
		message( "错误", "截止日期格式不对,应形如 1999-1-2" );
		button_back( );
		exit( );
	}
}
if ( compare_date( $DATE1, $DATE2 ) == 1 )
{
	message( "错误", "查询的起始日期不能晚于截止日期" );
	button_back( );
	exit( );
}
$CUR_DATE = date( "Y-m-d", time( ) );
$query = "SELECT to_days('".$DATE2."')-to_days('{$DATE1}') from ATTEND_CONFIG";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$DAY_TOTAL = $ROW[0] + 1;
}
message( "", "查询从 ".format_date( $DATE1 )." 至 ".format_date( $DATE2 )." 共 ".$DAY_TOTAL." 天的考勤记录" );
echo "\r\n<!------------------------------------- 上下班 ------------------------------->\r\n<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" class=\"small\">\r\n  <tr>\r\n    <td class=\"Big\"><img src=\"/images/menu/attendance.gif\" WIDTH=\"22\" HEIGHT=\"20\" align=\"absmiddle\"><span class=\"big3\"> 上下班统计</span>\r\n    &nbsp;&nbsp;&nbsp;&nbsp;<input type=\"button\" value=\"导出\" class=\"BigButton\" onclick=\"location='export_sxb.php?DEPARTMENT1=";
echo $DEPARTMENT1;
echo "&DUTY_TYPE=";
echo $DUTY_TYPE;
echo "&DATE1=";
echo $DATE1;
echo "&DATE2=";
echo $DATE2;
echo "'\" title=\"导出下班统计信息\" name=\"button\">\r\n    &nbsp;&nbsp;<input type=\"button\" value=\"所有人详细记录\" class=\"BigButton\" onclick=\"location='all_users_duty.php?DEPARTMENT1=";
echo $DEPARTMENT1;
echo "&DUTY_TYPE1=";
echo $DUTY_TYPE;
echo "&DATE1=";
echo $DATE1;
echo "&DATE2=";
echo $DATE2;
echo "'\" title=\"所有人详细记录\" name=\"button\">\r\n    </td>\r\n  </tr>\r\n</table>\r\n\r\n<table class=\"TableList\" width=\"95%\">\r\n  <tr class=\"TableHeader\">\r\n    <td nowrap align=\"center\">部门</td>\r\n    <td nowrap align=\"center\">姓名</td>\r\n    <td nowrap align=\"center\">全勤(天)</td>\r\n    <td nowrap align=\"center\">时长</td>\r\n    <td nowrap align=\"center\">迟到</td>\r\n    <td nowrap align=\"center\">上班<br>未登记</td>\r\n    <td nowrap align=\"center\">早退</td>\r\n    <td nowrap align=\"center\">下班<br>未登记</td>\r\n    <td nowrap align=\"center\">加班<br>上班登记</td>\r\n    <td nowrap align=\"center\">加班<br>下班登记</td>\r\n    <td nowrap align=\"center\">操作</td>\r\n  </tr>\r\n";
$query = "SELECT * from SYS_PARA where PARA_NAME='NO_DUTY_USER'";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$NO_DUTY_USER = $ROW['PARA_VALUE'];
}
$query1 = "SELECT * from ATTEND_CONFIG";
$cursor1 = exequery( $connection, $query1 );
while ( $ROW = mysql_fetch_array( $cursor1 ) )
{
	$DUTY_TYPE1 = $ROW['DUTY_TYPE'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_NAME'] = $ROW['DUTY_NAME'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['GENERAL'] = $ROW['GENERAL'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME1'] = $ROW['DUTY_TIME1'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME2'] = $ROW['DUTY_TIME2'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME3'] = $ROW['DUTY_TIME3'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME4'] = $ROW['DUTY_TIME4'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME5'] = $ROW['DUTY_TIME5'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TIME6'] = $ROW['DUTY_TIME6'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE1'] = $ROW['DUTY_TYPE1'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE2'] = $ROW['DUTY_TYPE2'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE3'] = $ROW['DUTY_TYPE3'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE4'] = $ROW['DUTY_TYPE4'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE5'] = $ROW['DUTY_TYPE5'];
	$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_TYPE6'] = $ROW['DUTY_TYPE6'];
	$REG_COUNT[$DUTY_TYPE1] = 0;
	$I = 1;
	for ( ;	$I <= 6;	++$I	)
	{
		$DUTY_TIME_I = $ROW["DUTY_TIME".$I];
		$DUTY_TYPE_I = $ROW["DUTY_TYPE".$I];
		if ( !( $DUTY_TIME_I == "" ) )
		{
			++$REG_COUNT[$DUTY_TYPE1];
			if ( $DUTY_TYPE_I == 1 )
			{
				++$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_ON_TIMES'];
			}
			else
			{
				++$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_OFF_TIMES'];
			}
		}
	}
}
$query = "SELECT * from USER,USER_PRIV,DEPARTMENT where USER.NOT_LOGIN='0' and not find_in_set(USER.USER_ID,'".$NO_DUTY_USER."') and DEPARTMENT.DEPT_ID=USER.DEPT_ID ";
if ( $DEPARTMENT1 != "ALL_DEPT" )
{
	$query .= " and DEPARTMENT.DEPT_ID='".$DEPARTMENT1."' ";
}
if ( $DUTY_TYPE != "ALL_TYPE" )
{
	$query .= " and DUTY_TYPE='".$DUTY_TYPE."' ";
}
$query .= " and  USER.USER_PRIV=USER_PRIV.USER_PRIV order by DEPT_NO,PRIV_NO,USER_NO,USER_NAME";
$cursor = exequery( $connection, $query );
$LINE_COUNT = 0;
while ( $ROW = mysql_fetch_array( $cursor ) )
{
	$ALL_HOURS = 0;
	$ALL_MINITES = 0;
	$USER_ID = $ROW['USER_ID'];
	$DEPT_ID = $ROW['DEPT_ID'];
	$USER_NAME = $ROW['USER_NAME'];
	$DUTY_TYPE_TMP = $DUTY_TYPE = $ROW['DUTY_TYPE'];
	$USER_DEPT_NAME = $ROW['DEPT_NAME'];
	if ( !is_dept_priv( $DEPT_ID ) )
	{
	}
	else
	{
		$DUTY_NAME = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_NAME'];
		$GENERAL = $ATTEND_CONFIG[$DUTY_TYPE]['GENERAL'];
		$DUTY_ON_TIMES = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_ON_TIMES'];
		$DUTY_OFF_TIMES = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_OFF_TIMES'];
		$DUTY_TIME1 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME1'];
		$DUTY_TIME2 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME2'];
		$DUTY_TIME3 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME3'];
		$DUTY_TIME4 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME4'];
		$DUTY_TIME5 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME5'];
		$DUTY_TIME6 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TIME6'];
		$DUTY_TYPE1 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE1'];
		$DUTY_TYPE2 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE2'];
		$DUTY_TYPE3 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE3'];
		$DUTY_TYPE4 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE4'];
		$DUTY_TYPE5 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE5'];
		$DUTY_TYPE6 = $ATTEND_CONFIG[$DUTY_TYPE]['DUTY_TYPE6'];
		++$LINE_COUNT;
		$PERFECT_COUNT = "";
		$EARLY_COUNT = "";
		$LATE_COUNT = "";
		$DUTY_ON_COUNT = "";
		$DUTY_OFF_COUNT = "";
		$DUTY_ON_TOTAL = "";
		$DUTY_OFF_TOTAL = "";
		$OVER_ON_COUNT = "";
		$OVER_OFF_COUNT = "";
		$J = $DATE1;
		for ( ;	$J <= $DATE2;	$J = date( "Y-m-d", strtotime( $J ) + 86400 )	)
		{
			$WEEK = date( "w", strtotime( $J ) );
			$HOLIDAY = 0;
			$HOLIDAY1 = 0;
			if ( find_id( $GENERAL, $WEEK ) )
			{
				$HOLIDAY = 1;
			}
			if ( $HOLIDAY == 0 )
			{
				$query = "select count(*) from ATTEND_HOLIDAY where BEGIN_DATE <='".$J."' and END_DATE>='{$J}'";
				$cursor1 = exequery( $connection, $query );
				if ( $ROW = mysql_fetch_array( $cursor1 ) )
				{
					$HOLIDAY = $ROW[0];
					if ( 0 < $HOLIDAY )
					{
						$HOLIDAY1 = 1;
					}
				}
			}
			if ( $HOLIDAY == 0 )
			{
				$query = "select count(*) from ATTEND_EVECTION where USER_ID='".$USER_ID."' and ALLOW='1' and to_days(EVECTION_DATE1)<=to_days('{$J}') and to_days(EVECTION_DATE2)>=to_days('{$J}')";
				$cursor1 = exequery( $connection, $query );
				if ( $ROW = mysql_fetch_array( $cursor1 ) )
				{
					$HOLIDAY = $ROW[0];
					if ( 0 < $HOLIDAY )
					{
						$HOLIDAY1 = 1;
					}
				}
			}
			if ( $HOLIDAY == 0 )
			{
				$query = "select count(*) from ATTEND_LEAVE where USER_ID='".$USER_ID."' and ALLOW='1' and LEAVE_DATE1<='{$J} {$DUTY_TIME}' and LEAVE_DATE2>='{$J} {$DUTY_TIME}'";
				$cursor1 = exequery( $connection, $query );
				if ( $ROW = mysql_fetch_array( $cursor1 ) )
				{
					$HOLIDAY = $ROW[0];
					if ( 0 < $HOLIDAY )
					{
						$HOLIDAY1 = 1;
					}
				}
			}
			if ( $HOLIDAY == 0 )
			{
				$DUTY_ON_TOTAL += $DUTY_ON_TIMES;
				$DUTY_OFF_TOTAL += $DUTY_OFF_TIMES;
			}
			$PERFECT_FLAG = 0;
			$query1 = "SELECT * from ATTEND_DUTY where USER_ID='".$USER_ID."' and to_days(REGISTER_TIME)=to_days('{$J}') order by REGISTER_TIME";
			$cursor1 = exequery( $connection, $query1 );
			$ONE_DAY_COUNT = 0;
			while ( $ROW = mysql_fetch_array( $cursor1 ) )
			{
				++$ONE_DAY_COUNT;
				$ONE_DAY_REG[$ONE_DAY_COUNT] = $ROW['REGISTER_TIME'];
				if ( $ONE_DAY_COUNT == $REG_COUNT[$DUTY_TYPE_TMP] && $REG_COUNT[$DUTY_TYPE_TMP] % 2 == 0 && $ONE_DAY_COUNT % 2 == 0 && 1 < $REG_COUNT[$DUTY_TYPE_TMP] && 1 < $ONE_DAY_COUNT )
				{
					$cha1 = strtotime( $ONE_DAY_REG[$REG_COUNT[$DUTY_TYPE_TMP]] ) - strtotime( $ONE_DAY_REG[$REG_COUNT[$DUTY_TYPE_TMP] - 1] );
					$cha2 = 0;
					$cha3 = 0;
					if ( 1 < $REG_COUNT[$DUTY_TYPE_TMP] - 2 )
					{
						$cha2 = strtotime( $ONE_DAY_REG[$REG_COUNT[$DUTY_TYPE_TMP] - 2] ) - strtotime( $ONE_DAY_REG[$REG_COUNT[$DUTY_TYPE_TMP] - 3] );
					}
					if ( 1 < $REG_COUNT[$DUTY_TYPE_TMP] - 4 )
					{
						$cha3 = strtotime( $ONE_DAY_REG[$REG_COUNT[$DUTY_TYPE_TMP] - 4] ) - strtotime( $ONE_DAY_REG[$REG_COUNT[$DUTY_TYPE_TMP] - 5] );
					}
					$ALL_MINITES += $cha1 + $cha2 + $cha3;
				}
				$REGISTER_TYPE = $ROW['REGISTER_TYPE'];
				$REGISTER_TIME = $ROW['REGISTER_TIME'];
				$SOME_DATE = strtok( $REGISTER_TIME, " " );
				$REGISTER_TIME = strtok( " " );
				$STR = "DUTY_TIME".$REGISTER_TYPE;
				$DUTY_TIME = $$STR;
				$STR = "DUTY_TYPE".$REGISTER_TYPE;
				$DUTY_TYPE = $$STR;
				if ( !( $DUTY_TIME == "" ) )
				{
					if ( $DUTY_TYPE == "1" )
					{
						if ( compare_time( $REGISTER_TIME, $DUTY_TIME ) < 1 )
						{
							++$PERFECT_FLAG;
						}
						if ( 0 < $HOLIDAY && $HOLIDAY1 != 1 )
						{
							++$OVER_ON_COUNT;
						}
						else
						{
							++$DUTY_ON_COUNT;
							if ( compare_time( $REGISTER_TIME, $DUTY_TIME ) == 1 )
							{
								++$LATE_COUNT;
							}
						}
					}
					if ( $DUTY_TYPE == "2" )
					{
						if ( -1 < compare_time( $REGISTER_TIME, $DUTY_TIME ) )
						{
							++$PERFECT_FLAG;
						}
						if ( 0 < $HOLIDAY && $HOLIDAY1 != 1 )
						{
							++$OVER_OFF_COUNT;
						}
						else
						{
							++$DUTY_OFF_COUNT;
							if ( compare_time( $REGISTER_TIME, $DUTY_TIME ) == -1 )
							{
								++$EARLY_COUNT;
							}
						}
					}
				}
			}
			if ( $DUTY_ON_TIMES + $DUTY_OFF_TIMES <= $PERFECT_FLAG )
			{
				++$PERFECT_COUNT;
			}
		}
		if ( $LINE_COUNT % 2 == 1 )
		{
			$TableLine = "TableLine1";
		}
		else
		{
			$TableLine = "TableLine2";
		}
		$ALL_HOURS = floor( $ALL_MINITES / 3600 );
		$HOUR1 = $ALL_MINITES % 3600;
		$MINITE = floor( $HOUR1 / 60 );
		$ALL_HOURS_MINITES = 0;
		if ( $ALL_HOURS != 0 || $MINITE != 0 )
		{
			$ALL_HOURS_MINITES = $ALL_HOURS."时".$MINITE."分";
		}
		echo "  <tr class=\"";
		echo $TableLine;
		echo "\">\r\n    <td nowrap align=\"center\">";
		echo $USER_DEPT_NAME;
		echo "</td>\r\n    <td nowrap align=\"center\">";
		echo $USER_NAME;
		echo "</td>\r\n    <td nowrap align=\"center\">";
		echo $PERFECT_COUNT;
		echo "</td>\r\n    <td nowrap align=\"center\">";
		echo $ALL_HOURS_MINITES;
		echo "</td>\r\n    <td nowrap align=\"center\">";
		echo $LATE_COUNT;

⌨️ 快捷键说明

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