📄 search.php
字号:
<?
include_once("inc/auth.php");
include_once("inc/check_type.php");
include_once("inc/utility_all.php");
?>
<html>
<head>
<title>考勤情况查询</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body class="bodycolor" topmargin="5">
<?
//----------- 合法性校验 ---------
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." 天的考勤记录");
?>
<!------------------------------------- 上下班 ------------------------------->
<table border="0" width="100%" cellspacing="0" cellpadding="3" class="small">
<tr>
<td class="Big"><img src="/images/menu/attendance.gif" WIDTH="22" HEIGHT="20" align="absmiddle"><span class="big3"> 上下班统计</span><br>
</td>
</tr>
</table>
<table border="0" cellspacing="1" width="95%" class="small" bgcolor="#000000" cellpadding="3">
<tr class="TableHeader">
<td nowrap align="center">部门</td>
<td nowrap align="center">姓名</td>
<td nowrap align="center">全勤(天)</td>
<td nowrap align="center">迟到</td>
<td nowrap align="center">上班<br>未登记</td>
<td nowrap align="center">早退</td>
<td nowrap align="center">下班<br>未登记</td>
<td nowrap align="center">加班<br>上班登记</td>
<td nowrap align="center">加班<br>下班登记</td>
<td nowrap align="center">操作</td>
</tr>
<?
$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"];
for($I=1;$I<=6;$I++)
{
$DUTY_TIME_I=$ROW["DUTY_TIME".$I];
$DUTY_TYPE_I=$ROW["DUTY_TYPE".$I];
if($DUTY_TIME_I=="")
continue;
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($DEPARTMENT!="ALL_DEPT")
$query.=" and DEPARTMENT.DEPT_ID='$DEPARTMENT' ";
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))
{
$USER_ID=$ROW["USER_ID"];
$DEPT_ID=$ROW["DEPT_ID"];
$USER_NAME=$ROW["USER_NAME"];
$DUTY_TYPE=$ROW["DUTY_TYPE"];
$USER_DEPT_NAME=$ROW["DEPT_NAME"];
if(!is_dept_priv($DEPT_ID))
continue;
$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="";
for($J=$DATE1;$J<=$DATE2;$J=date("Y-m-d",strtotime($J)+24*3600))
{
$WEEK=date("w",strtotime($J));
$HOLIDAY=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($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($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($HOLIDAY==0)
{
$query="select count(*) from ATTEND_OUT where USER_ID='$USER_ID' and ALLOW='1' and to_days(SUBMIT_TIME)=to_days('$J') and OUT_TIME1<='".substr($DUTY_TIME,0,strrpos($DUTY_TIME,":"))."' and OUT_TIME2>='".substr($DUTY_TIME,0,strrpos($DUTY_TIME,":"))."'";
$cursor1= exequery($connection,$query);
if($ROW=mysql_fetch_array($cursor1))
$HOLIDAY=$ROW[0];
}
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')";
$cursor1= exequery($connection,$query1);
while($ROW=mysql_fetch_array($cursor1))
{
$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=="")
continue;
if($DUTY_TYPE=="1")
{
if(compare_time($REGISTER_TIME,$DUTY_TIME)< 1)
$PERFECT_FLAG++;
if($HOLIDAY>0)
{
$OVER_ON_COUNT++;
continue;
}
$DUTY_ON_COUNT++;
if(compare_time($REGISTER_TIME,$DUTY_TIME)==1)
$LATE_COUNT++;
}
if($DUTY_TYPE=="2")
{
if(compare_time($REGISTER_TIME,$DUTY_TIME)>-1)
$PERFECT_FLAG++;
if($HOLIDAY>0)
{
$OVER_OFF_COUNT++;
continue;
}
$DUTY_OFF_COUNT++;
if(compare_time($REGISTER_TIME,$DUTY_TIME)==-1)
$EARLY_COUNT++;
}
}
if($PERFECT_FLAG>=$DUTY_ON_TIMES+$DUTY_OFF_TIMES)
$PERFECT_COUNT++;
}
if($LINE_COUNT%2==1)
$TableLine="TableLine1";
else
$TableLine="TableLine2";
?>
<tr class="<?=$TableLine?>">
<td nowrap align="center"><?=$USER_DEPT_NAME?></td>
<td nowrap align="center"><?=$USER_NAME?></td>
<td nowrap align="center"><?=$PERFECT_COUNT?></td>
<td nowrap align="center"><?=$LATE_COUNT?></td>
<td nowrap align="center"><?=$DUTY_ON_TOTAL-$DUTY_ON_COUNT?></td>
<td nowrap align="center"><?=$EARLY_COUNT?></td>
<td nowrap align="center"><?=$DUTY_OFF_TOTAL-$DUTY_OFF_COUNT?></td>
<td nowrap align="center"><?=$OVER_ON_COUNT?></td>
<td nowrap align="center"><?=$OVER_OFF_COUNT?></td>
<td nowrap align="center"><a href="user_duty.php?USER_ID=<?=$USER_ID?>&DATE1=<?=$DATE1?>&DATE2=<?=$DATE2?>">详细记录</a></td>
</tr>
<?
}
?>
</table>
<br>
<table width="95%" border="0" cellspacing="0" cellpadding="0" height="3">
<tr>
<td background="/images/dian1.gif" width="100%"></td>
</tr>
</table>
<!------------------------------------- 外出记录 ------------------------------->
<table border="0" width="100%" cellspacing="0" cellpadding="3" class="small">
<tr>
<td class="Big"><img src="/images/menu/attendance.gif" WIDTH="22" HEIGHT="20" align="absmiddle"><span class="big3"> 外出记录</span><br>
</td>
</tr>
</table>
<?
$query = "SELECT * from ATTEND_OUT,USER,DEPARTMENT where DEPARTMENT.DEPT_ID=USER.DEPT_ID ";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -