📄 search.php
字号:
<?php
include_once( "inc/auth.php" );
include_once( "inc/check_type.php" );
include_once( "inc/utility_all.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( );
}
$connection = openconnection( );
$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\">";
echo "<s";
echo "pan class=\"big3\"> 上下班统计</span><br>\r\n </td>\r\n </tr>\r\n</table>\r\n\r\n<table border=\"0\" cellspacing=\"1\" width=\"95%\" class=\"small\" bgcolor=\"#000000\" cellpadding=\"3\">\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\">上班<br>未登记</td>\r\n ";
echo " <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\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'];
}
$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 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 ) )
{
$USER_ID = $ROW['USER_ID'];
$DEPT_ID = $ROW['DEPT_ID'];
$USER_NAME = $ROW['USER_NAME'];
$DUTY_TYPE = $ROW['DUTY_TYPE'];
if ( !is_dept_priv( $DEPT_ID ) )
{
}
else
{
++$LINE_COUNT;
$query1 = "select * from DEPARTMENT where DEPT_ID={$DEPT_ID}";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$USER_DEPT_NAME = $ROW['DEPT_NAME'];
}
$query1 = "SELECT * from ATTEND_CONFIG where DUTY_TYPE={$DUTY_TYPE}";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$DUTY_NAME = $ROW['DUTY_NAME'];
$GENERAL = $ROW['GENERAL'];
$DUTY_TIME1 = $ROW['DUTY_TIME1'];
$DUTY_TIME2 = $ROW['DUTY_TIME2'];
$DUTY_TIME3 = $ROW['DUTY_TIME3'];
$DUTY_TIME4 = $ROW['DUTY_TIME4'];
$DUTY_TIME5 = $ROW['DUTY_TIME5'];
$DUTY_TIME6 = $ROW['DUTY_TIME6'];
$DUTY_TYPE1 = $ROW['DUTY_TYPE1'];
$DUTY_TYPE2 = $ROW['DUTY_TYPE2'];
$DUTY_TYPE3 = $ROW['DUTY_TYPE3'];
$DUTY_TYPE4 = $ROW['DUTY_TYPE4'];
$DUTY_TYPE5 = $ROW['DUTY_TYPE5'];
$DUTY_TYPE6 = $ROW['DUTY_TYPE6'];
}
$PERFECT_COUNT = "";
$EARLY_COUNT = "";
$LATE_COUNT = "";
$DUTY_ON_COUNT = "";
$DUTY_OFF_COUNT = "";
$DUTY_ON_TOTAL = "";
$DUTY_OFF_TOTAL = "";
$OVER_ON_COUNT = "";
$OVER_OFF_COUNT = "";
$I = 1;
for ( ; $I <= 6; ++$I )
{
$STR = "DUTY_TIME".$I;
$DUTY_TIME = $$STR;
$STR = "DUTY_TYPE".$I;
$DUTY_TYPE = $$STR;
if ( $DUTY_TIME == "" )
{
}
else
{
if ( $DUTY_TYPE == 1 )
{
$DUTY_ON_TOTAL += $DAY_TOTAL;
}
else
{
$DUTY_OFF_TOTAL += $DAY_TOTAL;
}
$J = $DATE1;
for ( ; $J <= $DATE2; $J = date( "Y-m-d", strtotime( $J ) + 86400 ) )
{
$query = "select * from ATTEND_HOLIDAY where BEGIN_DATE <='{$J}' and END_DATE>='{$J}'";
$cursor1 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
if ( $DUTY_TYPE == 1 )
{
--$DUTY_ON_TOTAL;
}
else
{
--$DUTY_OFF_TOTAL;
}
}
}
$query1 = "SELECT * from ATTEND_DUTY where USER_ID='{$USER_ID}' and to_days(REGISTER_TIME)>=to_days('{$DATE1}') and to_days(REGISTER_TIME)<=to_days('{$DATE2}') and REGISTER_TYPE='{$I}'";
$cursor1 = exequery( $connection, $query1 );
while ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$REGISTER_TIME = $ROW['REGISTER_TIME'];
$SOME_DATE = strtok( $REGISTER_TIME, " " );
$REGISTER_TIME = strtok( " " );
$WEEK = date( "w", strtotime( $REGISTER_TIME ) );
$HOLIDAY = 0;
$query = "select * from ATTEND_HOLIDAY where BEGIN_DATE <='{$SOME_DATE}' and END_DATE>='{$SOME_DATE}'";
$cursor2 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor2 ) )
{
$HOLIDAY = 1;
}
else if ( find_id( $GENERAL, $WEEK ) )
{
$HOLIDAY = 1;
}
if ( $HOLIDAY == 0 )
{
$query = "select * from ATTEND_EVECTION where USER_ID='{$USER_ID}' and ALLOW='1' and to_days(EVECTION_DATE1)<=to_days('{$SOME_DATE}') and to_days(EVECTION_DATE2)>=to_days('{$SOME_DATE}')";
$cursor2 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor2 ) )
{
$HOLIDAY = 1;
}
}
if ( $HOLIDAY == 0 )
{
$query = "select * from ATTEND_LEAVE where USER_ID='{$USER_ID}' and ALLOW='1' and LEAVE_DATE1<='{$SOME_DATE} {$DUTY_TIME}' and LEAVE_DATE2>='{$SOME_DATE} {$DUTY_TIME}'";
$cursor2 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor2 ) )
{
$HOLIDAY = 1;
}
}
if ( $HOLIDAY == 0 )
{
$query = "select * from ATTEND_OUT where USER_ID='{$USER_ID}' and ALLOW='1' and to_days(SUBMIT_TIME)=to_days('{$SOME_DATE}') and OUT_TIME1<='".substr( $DUTY_TIME, 0, strrpos( $DUTY_TIME, ":" ) )."' and OUT_TIME2>='".substr( $DUTY_TIME, 0, strrpos( $DUTY_TIME, ":" ) )."'";
$cursor2 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor2 ) )
{
$HOLIDAY = 1;
}
}
if ( $DUTY_TYPE == "1" )
{
if ( $HOLIDAY == 1 )
{
++$OVER_ON_COUNT;
}
else
{
++$DUTY_ON_COUNT;
if ( compare_time( $REGISTER_TIME, $DUTY_TIME ) == 1 )
{
++$LATE_COUNT;
}
}
}
if ( $DUTY_TYPE == "2" )
{
if ( $HOLIDAY == 1 )
{
++$OVER_OFF_COUNT;
}
else
{
++$DUTY_OFF_COUNT;
if ( compare_time( $REGISTER_TIME, $DUTY_TIME ) == -1 )
{
++$EARLY_COUNT;
}
}
}
}
}
}
$J = $DATE1;
for ( ; $J <= $DATE2; $J = date( "Y-m-d", strtotime( $J ) + 86400 ) )
{
$COUNT = 0;
$query = "";
$I = 1;
for ( ; $I <= 6; ++$I )
{
$STR = "DUTY_TIME".$I;
$DUTY_TIME = $$STR;
$STR = "DUTY_TYPE".$I;
$DUTY_TYPE = $$STR;
if ( $DUTY_TIME != "" )
{
++$COUNT;
if ( $DUTY_TYPE == "1" )
{
$query .= " REGISTER_TYPE='{$I}' and to_days(REGISTER_TIME)=to_days('{$J}') and REGISTER_TIME<='{$J} {$DUTY_TIME}' or";
}
else
{
$query .= " REGISTER_TYPE='{$I}' and to_days(REGISTER_TIME)=to_days('{$J}') and REGISTER_TIME>='{$J} {$DUTY_TIME}' or";
}
}
}
$query = substr( $query, 0, -3 );
$query1 = "SELECT count(*) from ATTEND_DUTY where USER_ID='{$USER_ID}'";
if ( $query != "" )
{
$query1 .= " and (".$query.")";
}
$cursor2 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor2 ) )
{
$REG_COUNT = $ROW[0];
}
if ( $COUNT <= $REG_COUNT )
{
++$PERFECT_COUNT;
}
}
if ( $LINE_COUNT % 2 == 1 )
{
$TableLine = "TableLine1";
}
else
{
$TableLine = "TableLine2";
}
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 $LATE_COUNT;
echo "</td>\r\n <td nowrap align=\"center\">";
echo $DUTY_ON_TOTAL - $DUTY_ON_COUNT;
echo "</td>\r\n <td nowrap align=\"center\">";
echo $EARLY_COUNT;
echo "</td>\r\n <td nowrap align=\"center\">";
echo $DUTY_OFF_TOTAL - $DUTY_OFF_COUNT;
echo "</td>\r\n <td nowrap align=\"center\">";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -