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

📄 search.php

📁 通达60%源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?

/* King DeZender(http://www.dezend.org) 2006-03-01 */





include_once 'inc/auth.php';

include_once 'inc/check_type.php';

include_once 'inc/utility_all.php';

echo '

<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 . ' 天的考勤记录');

echo '

<!------------------------------------- 上下班 ------------------------------->

<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 == ''))

		{

			if ($DUTY_TYPE_I == 1)

			{

				++$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_ON_TIMES'];

				continue;

			}

			else

			{

				++$ATTEND_CONFIG[$DUTY_TYPE1]['DUTY_OFF_TIMES'];

				continue;

			}



			continue;

		}

	}

}



$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))

	{

		$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) + 86400))

		{

			$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 == ''))

				{

					if ($DUTY_TYPE == '1')

					{

						if (compare_time ($REGISTER_TIME, $DUTY_TIME) < 1)

						{

							++$PERFECT_FLAG;

						}



						if (0 < $HOLIDAY)

						{

							++$OVER_ON_COUNT;

							continue;

						}

						else

						{

							++$DUTY_ON_COUNT;

							if (compare_time ($REGISTER_TIME, $DUTY_TIME) == 1)

							{

								++$LATE_COUNT;

							}

						}



						continue;

					}



					continue;

				}

			}



			if ($DUTY_ON_TIMES + $DUTY_OFF_TIMES <= $PERFECT_FLAG)

			{

				++$PERFECT_COUNT;

				continue;

			}

		}



		if ($LINE_COUNT % 2 == 1)

		{

			$TableLine = 'TableLine1';

		}

		else

		{

			$TableLine = 'TableLine2';

		}



		echo '  <tr class="';

		echo $TableLine;

		echo '">

	<td nowrap align="center">';

		echo $USER_DEPT_NAME;

		echo '</td>

	<td nowrap align="center">';

		echo $USER_NAME;

		echo '</td>

	<td nowrap align="center">';

		echo $PERFECT_COUNT;

		echo '</td>

	<td nowrap align="center">';

		echo $LATE_COUNT;

		echo '</td>

	<td nowrap align="center">';

		echo $DUTY_ON_TOTAL - $DUTY_ON_COUNT;

		echo '</td>

	<td nowrap align="center">';

		echo $EARLY_COUNT;

		echo '</td>

	<td nowrap align="center">';

		echo $DUTY_OFF_TOTAL - $DUTY_OFF_COUNT;

		echo '</td>

	<td nowrap align="center">';

		echo $OVER_ON_COUNT;

		echo '</td>

	<td nowrap align="center">';

		echo $OVER_OFF_COUNT;

		echo '</td>

	<td nowrap align="center"><a href="user_duty.php?USER_ID=';

		echo $USER_ID;

		echo '&DATE1=';

		echo $DATE1;

		echo '&DATE2=';

		echo $DATE2;

		echo '">详细记录</a></td>

</tr>

';

		continue;

	}

}



echo '</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 and ATTEND_OUT.USER_ID=USER.USER_ID and to_days(SUBMIT_TIME)>=to_days(\'$' . $DATE1 . '\') and to_days(SUBMIT_TIME)<=to_days(\'$' . $DATE2 . '\') order by DEPT_NO,USER_NO,USER_NAME';

$cursor = exequery ($connection, $query);

$OUT_COUNT = 0;

while ($ROW = mysql_fetch_array ($cursor))

{

	$USER_ID = $ROW['USER_ID'];

	$USER_NAME = $ROW['USER_NAME'];

	$OUT_TYPE = $ROW['OUT_TYPE'];

	$SUBMIT_TIME = $ROW['SUBMIT_TIME'];

	$OUT_TIME1 = $ROW['OUT_TIME1'];

	$OUT_TIME2 = $ROW['OUT_TIME2'];

	$ALLOW = $ROW['ALLOW'];

	$STATUS = $ROW['STATUS'];

	$DEPT_ID = $ROW['DEPT_ID'];

	$LEADER_ID = $ROW['LEADER_ID'];

	$LEADER_NAME = '';

	$query = 'SELECT * from USER where USER_ID=\'' . $LEADER_ID . '\'';

	$cursor1 = exequery ($connection, $query);

	if ($ROW = mysql_fetch_array ($cursor1))

	{

		$LEADER_NAME = $ROW['USER_NAME'];

	}



	if (is_dept_priv ($DEPT_ID))

	{

		++$OUT_COUNT;

		if ($STATUS == '0')

		{

⌨️ 快捷键说明

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