function Init_Teacher_KaoQin_Data($节假日调课_调整后时间, $默认教师名称, $教师用户名)
{
    global $db, $CurXueQi, $ShowData;
    if ($默认教师名称 != "") {
        $AddSQL = " and 教师姓名='{$默认教师名称}'";
    } else {
        $AddSQL = "";
    }
    //对校历表进行过滤
    $sql = "select 节假日 from edu_schoolcalendar where 开始时间<='{$节假日调课_调整后时间}' and 结束时间>='{$节假日调课_调整后时间}'";
    $rs = $db->Execute($sql);
    $节假日 = $rs->fields['节假日'];
    if ($节假日 != "") {
        //当前时间为放假时间,系统不增加考勤信息
        return '';
    }
    //判断学期是否在今日结束
    $sql = "select * from edu_xueqiexec where 学期名称 ='{$CurXueQi}'";
    $rs = $db->Execute($sql);
    $学期开始时间 = $rs->fields['开始时间'];
    $学期结束时间 = $rs->fields['结束时间'];
    if ($节假日调课_调整后时间 > $学期结束时间 && $CurXueQi != "") {
        //表示此学期已经结束,不在有效学期时间之内,不进行初始化操作
        //print "$节假日调课_调整后时间 表示此学期已经结束,不在有效学期时间之内,不进行初始化操作";
        //清除多余的数据
        $sql = "delete from edu_teacherkaoqinmingxi where 学期='{$CurXueQi}' and 考勤日期>'{$学期结束时间}'";
        $db->Execute($sql);
        return '';
    }
    if ($节假日调课_调整后时间 < $学期开始时间 && $CurXueQi != "") {
        //表示此学期还没有开始,不在有效学期时间之内,不进行初始化操作
        //print "$节假日调课_调整后时间 表示此学期还没有开始,不在有效学期时间之内,不进行初始化操作";
        $sql = "delete from edu_teacherkaoqinmingxi where 学期='{$CurXueQi}' and 考勤日期<'{$学期开始时间}'";
        $db->Execute($sql);
        return '';
    }
    //print $CurXueQi;exit;
    global $TiaoKeJieJiaRiExec;
    //2010-4-28增加全局变量
    $节假日调课_原上课时间 = $TiaoKeJieJiaRiExec['正向'][$节假日调课_调整后时间];
    //print_R($TiaoKeJieJiaRiExec);exit;
    //今天为调整后的上课时间 节假日调课_原上课时间的值为原上课时间
    //所显示周次信息应该为原上课时间的周次,即节假日调课_原上课时间的周次
    if ($节假日调课_原上课时间 == '') {
        $节假日调课_原上课时间 = $节假日调课_调整后时间;
        //没有值时沿用目标值
        $Element['备注'] = '';
    } else {
        //$节假日调课_原上课时间 = $节假日调课_调整后时间;//2010-4-28日改成节假日调课,按实际上课日期显示
        $Element['备注'] = '节假日调课,原上课时间为:$节假日调课_原上课时间';
    }
    if ($节假日调课_原上课时间 != '') {
        //该天有对换值,对执行状态进行更新
        $sql = "update edu_schedulejiejiari set 执行状态='1' where 调整后上课时间='{$节假日调课_调整后时间}'";
        $db->Execute($sql);
        global $SHOWTEXT;
        if ($SHOWTEXT) {
            print "<font color=green>" . $sql . "</font><BR>";
        }
    }
    $YearMonth = explode('-', $节假日调课_原上课时间);
    $Year = $YearMonth[0];
    $Month = $YearMonth[1];
    $Day = $YearMonth[2];
    //$DayIndexMonth = date('t',mktime(1,1,1,$Month,$Day,$Year));
    global $KaoqinTime;
    global $KaoqinTimeBegin1, $KaoqinTimeBegin2, $KaoqinTimeEnd1, $KaoqinTimeEnd2, $KuangGongShiJian;
    if ($默认教师名称 != "") {
        $AddSQL = " where USER_NAME='{$默认教师名称}'";
    } else {
        $AddSQL = "";
    }
    //$sql = "select USER_NAME AS 真实姓名 from user $AddSQL order by USER_NAME";
    //$rs = $db->Execute($sql);
    //$rs_a = $rs->GetArray();
    //global $SHOWTEXT; if($SHOWTEXT)print $sql."<BR>";
    $rs_a[0]['真实姓名'] = '真实姓名';
    $周次 = returnCurWeekIndex($节假日调课_调整后时间);
    $单双周 = $周次 % 2;
    if ($单双周 == 0) {
        $单双周 = 2;
    }
    for ($i = 0; $i < sizeof($rs_a); $i++) {
        $真实姓名 = $默认教师名称;
        //print $真实姓名;
        //清理当月原有数据
        //$sql = "delete from edu_teacherkaoqinmingxi where 考勤日期 = '$节假日调课_调整后时间' and 教师姓名='$真实姓名'";
        //$db->Execute($sql);
        $ReturnTeacherSchedule = ReturnTeacherSchedule($CurXueQi, $教师用户名, $真实姓名, $周次);
        //print_R($ReturnTeacherSchedule);exit;
        //print "<BR>当前教师课表数组信息<BR>";
        //for($ii=1;$ii<=$DayIndexMonth;$ii++)			{
        //得以目标上课时间是周几?
        $TargetWeekDay = date('w', mktime(1, 1, 1, $Month, $Day, $Year));
        //得到当前天是单周还是双周 参数为:原上课时间 单双周结果也为原上课时间的单双周值
        $单双周 = returnCurWeekIndex($节假日调课_原上课时间);
        $单双周 = $单双周 % 2;
        if ($单双周 == 0) {
            $单双周 = 2;
        }
        //得到星期中某一天的课程列表
        //$TargetWeekDay = 1;
        $WeekDaySchedule = array();
        $WeekDaySchedule = $ReturnTeacherSchedule[$TargetWeekDay];
        //print_R($TargetWeekDay);print_R($WeekDaySchedule);exit;
        global $SHOWTEXT;
        if ($SHOWTEXT) {
            print "<BR>星期:{$TargetWeekDay} [节假日]当天课表数组信息 {$节假日调课_调整后时间} {$节假日调课_原上课时间} 已省不显示<BR>";
        }
        //global $SHOWTEXT; if($SHOWTEXT)print_R($WeekDaySchedule);
        global $SHOWTEXT;
        if ($SHOWTEXT) {
            print "<BR>当天时间:{$节假日调课_调整后时间} 上课日期:{$节假日调课_原上课时间} ";
        }
        //昨到这一天的节次信息
        $JieCiArray = array();
        $JieCiArray = @array_keys($WeekDaySchedule);
        //sort($JieCiArray);
        //if($WeekDaySchedule!="")	{print_R($JieCiArray);print "<BR>";}
        for ($iii = 0; $iii < sizeof($JieCiArray); $iii++) {
            $节次 = TRIM($JieCiArray[$iii]);
            $教室 = TRIM($WeekDaySchedule[$节次][$单双周]['教室']);
            $课程 = TRIM($WeekDaySchedule[$节次][$单双周]['课程']);
            $班级 = TRIM($WeekDaySchedule[$节次][$单双周]['班级']);
            $Element = array();
            //$Element['编号'] = '';
            $Element['教师姓名'] = TRIM($真实姓名);
            $Element['教师用户名'] = TRIM($教师用户名);
            $Element['考勤日期'] = TRIM($节假日调课_调整后时间);
            $Element['教室'] = TRIM($教室);
            $Element['课程'] = TRIM($课程);
            $Element['班级'] = TRIM($班级);
            $Element['星期'] = TRIM($TargetWeekDay);
            $Element['节次'] = TRIM($节次);
            $Element['周次'] = returnCurWeekIndex($节假日调课_原上课时间);
            $Element['学期'] = TRIM($CurXueQi);
            $Element['应该填写时间'] = TRIM($节假日调课_调整后时间);
            $考勤日期Array = explode('-', $节假日调课_调整后时间);
            $当前星期数 = date("w", mktime(1, 1, 1, $考勤日期Array[1], $考勤日期Array[2], $考勤日期Array[0]));
            $X = 7 - $当前星期数;
            $Element['最迟填写时间'] = date("Y-m-d", mktime(1, 1, 1, $考勤日期Array[1], $考勤日期Array[2] + $X, $考勤日期Array[0]));
            $安排内容 = returnJieCiName($节次);
            $有效时间 = returnJieCiTime($安排内容);
            $有效时间Array = explode('-', $有效时间);
            $有效时间0Array = explode(':', $有效时间Array[0]);
            $有效时间1Array = explode(':', $有效时间Array[1]);
            global $SYSTEM_MERGE_CLASSTABLE;
            if ($节次Array[1] != "" && ($SYSTEM_MERGE_CLASSTABLE = "1")) {
                $安排内容1 = returnJieCiName($节次Array[1]);
                $有效时间1 = returnJieCiTime($安排内容1);
                $有效时间1Array = explode('-', $有效时间1);
                $有效时间1Array = explode(':', $有效时间1Array[1]);
            }
            //判断该课是否为两节连上
            $第二节次 = $节次 + 1;
            $节余数 = $第二节次 % 2;
            global $SYSTEM_MERGE_CLASSTABLE;
            if ($WeekDaySchedule[$第二节次][$单双周]['课程'] == $WeekDaySchedule[$节次][$单双周]['课程'] && $WeekDaySchedule[$第二节次][$单双周]['教师'] == $WeekDaySchedule[$节次][$单双周]['教师'] && $WeekDaySchedule[$第二节次][$单双周]['班级'] == $WeekDaySchedule[$节次][$单双周]['班级'] && $节余数 == 0 && $SYSTEM_MERGE_CLASSTABLE == "1") {
                //SYSTEM_MERGE_CLASSTABLE为1时表示系统采用的是强制合并的策略,但支持不同的课程进行拆分
                $安排内容 = returnJieCiName($第二节次);
                $有效时间22 = returnJieCiTime($安排内容);
                $有效时间22Array = explode('-', $有效时间22);
                //重新定义有效时间1Array数组
                $有效时间1Array = explode(':', $有效时间22Array[1]);
                //跳过第二节次记录
                $Element['节次'] = $节次 . "-" . $第二节次;
                $iii++;
                //print_R($有效时间22Array);print "<BR>";//exit;
            }
            //print_R($WeekDaySchedule);exit;
            $上课刷卡BGN = date("H:i", @mktime($有效时间0Array[0], $有效时间0Array[1] - $KaoqinTimeBegin1, 30, 12, 12, 2008));
            $上课刷卡END = date("H:i", @mktime($有效时间0Array[0], $有效时间0Array[1] + $KaoqinTimeBegin2, 30, 12, 12, 2008));
            $下课刷卡BGN = date("H:i", @mktime($有效时间1Array[0], $有效时间1Array[1] - $KaoqinTimeEnd1, 30, 12, 12, 2008));
            $下课刷卡END = date("H:i", @mktime($有效时间1Array[0], $有效时间1Array[1] + $KaoqinTimeEnd2, 30, 12, 12, 2008));
            $Element['上课实际刷卡'] = '';
            $Element['上课考勤状态'] = '';
            $Element['下课实际刷卡'] = '';
            $Element['下课考勤状态'] = '';
            $Element['上课刷卡BGN'] = $上课刷卡BGN;
            $Element['上课刷卡END'] = $上课刷卡END;
            $Element['下课刷卡BGN'] = $下课刷卡BGN;
            $Element['下课刷卡END'] = $下课刷卡END;
            //print_R($Element);exit;
            //班级实习周部分调整,如果该班级在当前周是实习或考试周次,那么教师考勤则不进行初始化
            $Banji_ShiXi_JiaoXueJinCheng = Banji_ShiXi_JiaoXueJinCheng($班级, $Element['周次'], $CurXueQi, $节假日调课_调整后时间);
            //教师代课过滤 结果有数据时表示,教师代课信息要进行重置
            $Teacher_DaiKe_Infor = Teacher_DaiKe_Infor($真实姓名, $教师用户名, $节假日调课_调整后时间, $Element['节次'], $课程, $CurXueQi);
            //教师停课过滤 结果有数据时表示,教师停课,不能进行新建操作
            $Teacher_TingKe_Infor = Teacher_TingKe_Infor($真实姓名, $教师用户名, $节假日调课_调整后时间, $Element['节次'], $课程, $CurXueQi);
            //教师复课过滤 结果有数据时表示,教师复课,但此表从课程表所来,一般情况下来,理论上课时间不会出现复课时间重复现象
            //$Teacher_FuKe_Infor = Teacher_FuKe_Infor($真实姓名,$节假日调课_调整后时间,$Element['节次'],$课程,$CurXueQi);
            if ($Teacher_DaiKe_Infor != "") {
                $Element['教师用户名'] = $Teacher_DaiKe_Infor;
                $Element['教师姓名'] = returntablefield('user', "USER_ID", $Teacher_DaiKe_Infor, "USER_NAME");
            }
            //教师调课过滤 结果为空时表示可以插入对应数据
            $Teacher_TiaoKe_Infor = Teacher_TiaoKe_Infor($真实姓名, $教师用户名, $节假日调课_调整后时间, $Element['节次'], $课程, $CurXueQi);
            //教师相互调课过滤 结果为空时表示可以插入对应数据
            $Teacher_TiaoKeXiangHu_Infor = Teacher_TiaoKeXiangHu_Infor($真实姓名, $教师用户名, $节假日调课_调整后时间, $Element['节次'], $课程, $CurXueQi);
            global $SHOWTEXT;
            if ($SHOWTEXT && sizeof($rs_a) > 0) {
                print_R($ShowData);
            }
            global $SHOWTEXT;
            if ($SHOWTEXT && sizeof($rs_a) > 0) {
                print "<BR>课程:{$课程} 班级:{$班级} " . $ShowData[$节假日调课_调整后时间] . "-" . $ShowData[$节假日调课_调整后时间] . "-" . $TiaoKeJieJiaRiExec['反向'][$节假日调课_调整后时间] . "-" . $Banji_ShiXi_JiaoXueJinCheng . "-" . $Teacher_TiaoKe_Infor . "-" . $Teacher_TiaoKeXiangHu_Infor . "<BR>";
            }
            //显示备注信息
            if ($Teacher_TiaoKe_Infor != '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::备注调课不能空: {$Teacher_TiaoKe_Infor} </font><BR>";
            }
            if ($Teacher_TingKe_Infor != '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::备注停课不能空: {$Teacher_TingKe_Infor} </font><BR>";
            }
            if ($Teacher_TiaoKeXiangHu_Infor != '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::备注相互调课不能空: {$Teacher_TiaoKeXiangHu_Infor} </font><BR>";
            }
            if ($TiaoKeJieJiaRiExec['反向'][$节假日调课_调整后时间] != '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::反向 {$节假日调课_调整后时间}: {$TiaoKeJieJiaRiExec['反向'][$节假日调课_调整后时间]} </font><BR>";
            }
            if ($ShowData[$节假日调课_调整后时间] != '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::节假日调课_调整后时间: {$ShowData[$节假日调课_调整后时间]} </font><BR>";
            }
            if ($课程 == '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::课程为空: {$Teacher_TiaoKeXiangHu_Infor} </font><BR>";
            }
            if ($班级 == '' && $SHOWTEXT == 1) {
                print "<BR><font color=green>::::::班级为空: {$Teacher_TiaoKeXiangHu_Infor} </font><BR>";
            }
            if ($课程 != "" && $班级 != "" && $ShowData[$节假日调课_调整后时间] == "" && $TiaoKeJieJiaRiExec['反向'][$节假日调课_调整后时间] == "" && $Banji_ShiXi_JiaoXueJinCheng == "" && $Teacher_TiaoKe_Infor == '' && $Teacher_TingKe_Infor == '' && $Teacher_TiaoKeXiangHu_Infor == '') {
                $ElementValue = array_values($Element);
                $sqlValueText = "'" . join("','", $ElementValue) . "'";
                $ElementName = array_keys($Element);
                $sqlNameText = "`" . join("`,`", $ElementName) . "`";
                //判断记录是否存在,如果存在则不进行插入操作
                $sql = "select COUNT(*) AS NUM from edu_teacherkaoqinmingxi where 教师姓名 ='{$真实姓名}' and 教师用户名 ='{$教师用户名}' and 考勤日期='{$节假日调课_调整后时间}' and 节次='" . $Element['节次'] . "' and 课程='{$课程}' and 班级='{$班级}' ";
                $rs = $db->Execute($sql);
                global $SHOWTEXT;
                if ($SHOWTEXT) {
                    print "<BR><font color=green>{$sql} </font><BR>";
                }
                $NUM = $rs->fields['NUM'];
                if ($NUM == 0) {
                    $sql = "insert into edu_teacherkaoqinmingxi({$sqlNameText}) values({$sqlValueText})";
                    $db->Execute($sql);
                } else {
                    $sql = "数据已经存在 " . $sql;
                }
                global $SHOWTEXT;
                if ($SHOWTEXT) {
                    print "<BR><font color=red>-----------{$sql} </font><BR>";
                }
                //print_R($Element['节次']);print "教师:".$真实姓名.",班级:".$班级.",课程:".$课程.",星期:".$TargetWeekDay.",节次:$节次<BR>";
            }
            //if($WeekDaySchedule!=""&&$SHOWTEXT=="1")	{print_R($WeekDaySchedule);}
        }
        //if($WeekDaySchedule!="")	{exit;}
        //print $TargetWeekDay."<BR>";
        //}//exit;
    }
    //end for
    //print_infor();
    //EDU_Indextopage('?',$nums='0');
    //初始化时把没有填写的教学日记,标记为可以填写
    $最迟填写时间 = date("Y-m-d", mktime(1, 1, 1, date('m'), date('d') + 5, date('Y')));
    $当前日期 = date("Y-m-d", mktime(1, 1, 1, date('m'), date('d'), date('Y')));
    //$sql = "update edu_teacherkaoqinmingxi set 最迟填写时间 ='$最迟填写时间' where 教师姓名='$默认教师名称' and 教师用户名='$教师用户名' and 授课内容='' and 学期='$CurXueQi' and 最迟填写时间<='$当前日期'";
    //$db->Execute($sql);
    //if($SHOWTEXT) print $sql;
}
Example #2
0
function 返回班级教学进程列表($班级列表)			{
	global $db,$CurXueQi;
	//班级教学进程
	print "</table><BR>
	<table  cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' width='700' style='border-collapse:collapse'>
	  <tr align='center'>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;班级教学进程(学期)</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;班级</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;周次</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;内容</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;开始星期</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;结束星期</td>
	  </tr>";
	$班级Array = @Array_keys($班级列表);
	$datetime = date("Y-m-d");
	$周次 = returnCurWeekIndex($datetime);
	for($i=0;$i<sizeof($班级Array);$i++)		{
		$班级 = $班级Array[$i];
		$sql = "select * from edu_schooljingcheng where 学期='$CurXueQi' and 周次='$周次' and 班级='$班级'";
		$rs = $db->Execute($sql);
		$rs_a = $rs->GetArray();
		//print_R($班级Array);
		//print $sql;
		if($rs_a[0]['内容']!="")
		print "<tr >
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$CurXueQi}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;<a href=\"?action=showClassTableInfor&ClassCode={$班级}&CurXueQi=$CurXueQi\" target=_blank>{$班级}</a></td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$周次}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['内容']}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['开始星期']}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['结束星期']}</td>
	  </tr>";
	}
	print "</table><div>";
}
require_once "systemprivateinc.php";
CheckSystemPrivate("人力资源-行政考勤-流程明细");
$当前学期 = returntablefield("edu_xueqiexec", "当前学期", '1', "学期名称");
if ($_GET['学期'] == "") {
    $_GET['学期'] = $当前学期;
}
require_once 'lib.xingzheng.inc.php';
if ($_GET['action'] == "add_default_data") {
    $_POST['人员用户名'] = $_POST['人员_ID'];
    $DEPT_ID = returntablefield("user", "USER_ID", $_POST['人员_ID'], "DEPT_ID");
    $_POST['部门'] = returntablefield("department", "DEPT_ID", $DEPT_ID, "DEPT_NAME");
    $时间 = $_POST['时间'];
    $时间Array = explode('-', $时间);
    $_POST['星期'] = date("w", mktime(1, 1, 1, $时间Array[1], $时间Array[2], $时间Array[0]));
    $_POST['时间'] = date("Y-m-d", mktime(1, 1, 1, $时间Array[1], $时间Array[2], $时间Array[0]));
    $_POST['周次'] = returnCurWeekIndex($_POST['时间']);
    //print_R($_POST);exit;
}
//批量通过审核操作
if ($_GET['action'] == "operation_piliangtongguo" && $_GET['selectid'] != "") {
    //print_R($_GET);exit;
    //print_R($_SESSION);
    $审核人 = $_SESSION['LOGIN_USER_NAME'];
    $审核时间 = date('Y-m-d H:i:s');
    $Array = explode(',', $_GET['selectid']);
    //PRINT_r($Array);EXIT;
    for ($i = 0; $i < sizeof($Array); $i++) {
        $Element = $Array[$i];
        if ($Element != "") {
            $审核状态 = returntablefield("edu_xingzheng_qingjia", "编号", ${$Element}, "审核状态");
            if ($审核状态 != 1) {
 //$结束时间 = date("Y-m-d",mktime(1,1,1,$日期Array[1],$日期Array[2]+14,$日期Array[0]));
 $开始时间 = date("Y-m-d", mktime(1, 1, 1, date('m'), date('d') - 1, date('Y')));
 $结束时间 = date("Y-m-d", mktime(1, 1, 1, date('m'), date('d') + 14, date('Y')));
 $sql = "select 班次名称 from edu_xingzheng_banci";
 //$cursor = exequery($connection,$sql);
 //while($ROW = mysql_fetch_array($cursor))			{
 $rs = $db->CacheExecute(30, $sql);
 $ROW = $rs->GetArray();
 for ($i = 0; $i < sizeof($ROW); $i++) {
     $班次数组[] = $ROW[$i]["班次名称"];
 }
 //对未来十四天之内可以使用的时间段进行统计和分析
 for ($i = -1; $i < 14; $i++) {
     $星期X = date("w", mktime(1, 1, 1, date('m'), date('d') + $i, date('Y')));
     $当天X = date("Y-m-d", mktime(1, 1, 1, date('m'), date('d') + $i, date('Y')));
     $returnCurWeekIndex = returnCurWeekIndex($当天X);
     $query = "select 班次名称 AS 班次,排班人员 AS 人员 from edu_xingzheng_paiban where (排班人员 like '%,{$人员用户名},%' or 排班人员 like '{$人员用户名},%') and 学期名称='{$学期名称}' and 考勤日期='{$当天X}'";
     //$cursor = exequery($connection,$query);
     $rs = $db->Execute($query);
     $ROW = $rs->GetArray();
     $班次Array = array();
     for ($n = 0; $n < sizeof($ROW); $n++) {
         $班次X = $ROW[$n]["班次"];
         $人员 = $ROW[$n]["人员"];
         $班次Array[$班次X] = $ROW[$n]["班次"];
     }
     //print_R($班次Array);
     for ($X = 0; $X < sizeof($班次数组); $X = $X + 1) {
         $班次TEMP = $班次数组[$X];
         if ($班次Array[$班次TEMP] == "") {
             $可用时间列表[] = $当天X . " 周" . $星期XNAME[$星期X] . " " . $班次TEMP . "";
function 返回班级教学进程列表($班级列表)			{
	global $db,$CurXueQi;
	//班级教学进程
	print "<BR>
	<table  cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' width='100%' style='border-collapse:collapse'>
	  <tr align='center'>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;班级教学进程(学期)</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;班级</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;周次</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;内容</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;开始星期</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;结束星期</td>
	  </tr>";
	$班级Array = explode(',',$班级列表);
	$datetime = date("Y-m-d");
	$周次 = returnCurWeekIndex($datetime);
	$周次2 = $周次+1;
	for($i=0;$i<sizeof($班级Array);$i++)		{
		$班级 = $班级Array[$i];
		$sql = "select * from edu_schooljingcheng where 学期='$CurXueQi' and (周次='$周次' or 周次='$周次2') and 班级='$班级'";
		$rs = $db->Execute($sql);
		$rs_a = $rs->GetArray();
		//print_R($班级Array);
		//print $sql;
		if($rs_a[0]['内容']!="")
		print "<tr >
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$CurXueQi}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['班级']}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['周次']}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['内容']}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['开始星期']}</td>
		<td cellspacing='0' class='TableBlock' bordercolor='#000000' cellpadding='3' align='center' style='border-collapse:collapse'  align=center nowrap colspan='2' rowspan='1'>&nbsp;{$rs_a[0]['结束星期']}</td>
	  </tr>";
	}
	print "</table>";
}
function 执行插入某人某天考勤信息($学期, $人员, $人员用户名, $考勤日期, $班次 = '')
{
    global $db, $返回班次上班及下班打卡时间;
    $sql = "select distinct 班次名称 from edu_xingzheng_paiban\n\t\t\twhere (排班人员 like '%,{$人员用户名},%' or 排班人员 like '{$人员用户名},%') and 考勤日期='{$考勤日期}' and 学期名称='{$学期}'";
    $rs = $db->Execute($sql);
    $rs_a = $rs->GetArray();
    global $SHOWTEXT;
    if ($SHOWTEXT) {
        print $sql . "<BR>";
    }
    //print_R($rs_a);
    if ($班次 != "") {
        //表示是一种指定班次的情况下,也有可能是调班情况,所以不能在排班信息中过滤,而是强制指定信息
        //方法:重新给RS_A变量赋值
        $rs_a = array();
        $rs_a[0]['班次名称'] = $班次;
    }
    //print_R($执行节假日调班函数);
    $执行节假日调班函数 = 执行节假日调班函数();
    $NewDatetime = $执行节假日调班函数['正向'][$Datetime];
    //NewDatetime的值为原上班时间,今天为调整后的上班时间
    //原上班时间的周次和星期被沿用,具体上班的时间用调整后的
    if ($NewDatetime == '') {
        $NewDatetime = $考勤日期;
    } else {
        //该天有对换值,对执行状态进行更新
        $sql = "update edu_schedulejiejiari set 执行状态='1' where 调整后上班时间='{$考勤日期}'";
        $db->Execute($sql);
        global $SHOWTEXT;
        if ($SHOWTEXT) {
            print $sql . "<BR>";
        }
    }
    //if($ShowData[$考勤日期]==""&&$执行节假日调班函数['反向'][$考勤日期]==""&&$执行行政人员调班函数==''&&$行政人员相互调班状态=='')			{
    //}
    //过滤所得到的班次列表,进行过滤处理,在此已经插入到考勤数据表中
    for ($i = 0; $i < sizeof($rs_a); $i++) {
        $班次名称 = $rs_a[$i]['班次名称'];
        //print_R($Element);exit;
        //人员代课过滤 结果为空时表示可以插入对应数据
        //$过滤行政人员代班 = 过滤行政人员代班($人员,$考勤日期,$班次名称,$学期);
        //人员调班过滤 结果为空时表示可以插入对应数据
        $执行行政人员调班函数 = 执行行政人员调班函数($人员, $人员用户名, $考勤日期, $班次名称, $学期);
        //人员相互调班过滤 结果为空时表示可以插入对应数据
        $行政人员相互调班状态 = 行政人员相互调班状态($人员, $人员用户名, $考勤日期, $班次名称, $学期);
        $行政人员补休状态 = 行政人员补休状态($人员, $人员用户名, $考勤日期, $班次名称, $学期);
        global $SHOWTEXT;
        if ($SHOWTEXT && sizeof($rs_a) > 0) {
            print "<BR>插入考勤数据部分:" . $ShowData[$考勤日期] . "-" . $执行节假日调班函数['反向'][$考勤日期] . "-" . $执行行政人员调班函数 . "-" . $行政人员相互调班状态 . "<BR>";
        }
        //较验新的记录是否存在
        $sql = "select COUNT(*) AS NUM from edu_xingzheng_kaoqinmingxi where 学期='{$学期}' and 人员用户名='{$人员用户名}' and 日期='{$考勤日期}' and 班次='{$班次名称}'";
        $rs = $db->Execute($sql);
        $NUM = $rs->fields['NUM'];
        //不存在记录,执行插入操作
        if ($NUM == 0 && $ShowData[$考勤日期] == "" && $执行节假日调班函数['反向'][$考勤日期] == "" && $行政人员相互调班状态 == '' && $行政人员补休状态 == '') {
            //$执行行政人员调班函数==''&&
            //编号  学期  部门  人员  日期  周次  星期  班次  上班实际刷卡  上班考勤状态  下班实际刷卡  下班考勤状态  上班刷卡BGN  上班刷卡END  下班刷卡BGN  下班刷卡END  创建时间
            $考勤日期Array = explode('-', $考勤日期);
            $星期 = date('w', mktime(1, 1, 1, $考勤日期Array[1], $考勤日期Array[2], $考勤日期Array[0]));
            $DEPT_ID = returntablefield("user", "USER_ID", $人员用户名, "DEPT_ID");
            $部门 = returntablefield("department", "DEPT_ID", $DEPT_ID, "DEPT_NAME");
            $Element['学期'] = $学期;
            $Element['部门'] = $部门;
            $Element['人员'] = $人员;
            $Element['人员用户名'] = $人员用户名;
            //有调班信息,则以新的时间为准进行计算
            if ($执行行政人员调班函数['新上班时间'] != "") {
                $考勤日期 = $执行行政人员调班函数['新上班时间'];
                $考勤日期Array = explode('-', $考勤日期);
                $星期 = date('w', mktime(1, 1, 1, $考勤日期Array[1], $考勤日期Array[2], $考勤日期Array[0]));
                $Element['日期'] = $考勤日期;
                $Element['周次'] = returnCurWeekIndex($考勤日期);
                $班次名称 = $执行行政人员调班函数['新班次'];
            } else {
                $Element['日期'] = $考勤日期;
                $Element['周次'] = returnCurWeekIndex($考勤日期);
            }
            if ($星期 == 0) {
                $星期 = 7;
            }
            $Element['星期'] = $星期;
            $Element['班次'] = $班次名称;
            $返回考勤补登信息 = 返回考勤补登信息($学期, $人员, $人员用户名, $考勤日期, $班次名称);
            $返回请假外出信息 = 返回请假外出信息($学期, $人员, $人员用户名, $考勤日期, $班次名称);
            if ($返回班次上班及下班打卡时间[$班次名称]['上班时间是否启用'] == "否") {
                $Element['上班实际刷卡'] = '不用考勤';
                $Element['上班考勤状态'] = '不用考勤';
            } else {
                if ($返回考勤补登信息 == "上班考勤补登") {
                    $Element['上班实际刷卡'] = '考勤补登';
                    $Element['上班考勤状态'] = '考勤补登';
                } else {
                    if ($返回请假外出信息 == "请假外出") {
                        $Element['上班实际刷卡'] = '请假外出';
                        $Element['上班考勤状态'] = '请假外出';
                    } else {
                        $Element['上班实际刷卡'] = '';
                        $Element['上班考勤状态'] = '';
                    }
                }
            }
            if ($返回班次上班及下班打卡时间[$班次名称]['下班时间是否启用'] == "否") {
                $Element['下班实际刷卡'] = '不用考勤';
                $Element['下班考勤状态'] = '不用考勤';
            } else {
                if ($返回考勤补登信息 == "下班考勤补登") {
                    $Element['下班实际刷卡'] = '考勤补登';
                    $Element['下班考勤状态'] = '考勤补登';
                } else {
                    if ($返回请假外出信息 == "请假外出") {
                        $Element['下班实际刷卡'] = '请假外出';
                        $Element['下班考勤状态'] = '请假外出';
                    } else {
                        $Element['下班实际刷卡'] = '';
                        $Element['下班考勤状态'] = '';
                    }
                }
            }
            $Element['上班刷卡BGN'] = $返回班次上班及下班打卡时间[$班次名称]['上班刷卡BGN'];
            $Element['上班刷卡END'] = $返回班次上班及下班打卡时间[$班次名称]['上班刷卡END'];
            $Element['下班刷卡BGN'] = $返回班次上班及下班打卡时间[$班次名称]['下班刷卡BGN'];
            $Element['下班刷卡END'] = $返回班次上班及下班打卡时间[$班次名称]['下班刷卡END'];
            $Element['上班迟到时间'] = $返回班次上班及下班打卡时间[$班次名称]['迟到时间'];
            $Element['下班早退时间'] = $返回班次上班及下班打卡时间[$班次名称]['早退时间'];
            $Element['迟到分钟数'] = '';
            $Element['早退分钟数'] = '';
            //$Element['旷工结束时间'] = $返回班次上班及下班打卡时间[$班次名称]['旷工结束时间'];
            $Element['创建时间'] = date('Y-m-d H:i:s');
            $ElementValue = array_values($Element);
            $sqlValueText = "'" . join("','", $ElementValue) . "'";
            $ElementName = array_keys($Element);
            $sqlNameText = "`" . join("`,`", $ElementName) . "`";
            $sql = "insert into edu_xingzheng_kaoqinmingxi({$sqlNameText}) values({$sqlValueText})";
            if ($人员用户名 != "") {
                $db->Execute($sql);
                global $SHOWTEXT;
                if ($SHOWTEXT) {
                    print "<BR><font color=red>{$sql} </font><BR>";
                }
            }
        }
    }
    //end for
    return $NewArray;
    //print_R($rs_a);
}
</td>
</tr>
</table>
<?php 
        exit;
    }
}
?>
<table width="100%" class="TableBlock" align="center">
<tr class="TableHeader">
<td>选择排班周次</td>
</tr>
<tr class="TableData">
<td nowrap>第&nbsp;
<?php 
$_GET['当前周次'] != "" ? '' : ($_GET['当前周次'] = returnCurWeekIndex($datetime = date("Y-m-d")));
$当前周次 = $_GET['当前周次'];
for ($i = 0; $i < $Week_Count; $i++) {
    if ($i + 1 == $当前周次) {
        print "<a href='?当前周次=" . ($i + 1) . "' target='_self'><font color=red>" . ($i + 1) . "</font></a>&nbsp;&nbsp;";
    } else {
        print "<a href='?当前周次=" . ($i + 1) . "' target='_self'>" . ($i + 1) . "</a>&nbsp;&nbsp;";
    }
}
?>
周</td>
</tr>
</table>
<br />
<?php 
$当前周次 = $_GET['当前周次'];
function 同步宿舍房间信息到每天评比页面($评比日期 = '')
{
    global $db;
    if ($评比日期 == '') {
        $评比日期 = date("Y-m-d");
    }
    $星期 = 返回给定时间的星期信息($评比日期);
    if ($星期 >= 1 && $星期 <= 5) {
        $创建时间 = date("Y-m-d H:i:s");
        $周次 = returnCurWeekIndex($评比日期);
        $当前学期 = returntablefield("edu_xueqiexec", "当前学期", '1', "学期名称");
        $sql = "select 房间名称,宿舍楼 from dorm_room order by 房间名称";
        $rs = $db->CacheExecute(150, $sql);
        $rs_a = $rs->GetArray();
        for ($i = 0; $i < sizeof($rs_a); $i++) {
            $房间名称 = $rs_a[$i]['房间名称'];
            $宿舍楼 = $rs_a[$i]['宿舍楼'];
            $sql = "select COUNT(*) AS NUM from edu_susheweishengday where 房间名称='{$房间名称}' and 评比日期='{$评比日期}'";
            $rs = $db->Execute($sql);
            $NUM = $rs->fields['NUM'];
            if ($NUM == 0) {
                $sql = "INSERT INTO `edu_susheweishengday`  VALUES ('','{$当前学期}','{$宿舍楼}', '{$房间名称}', '{$评比日期}','{$周次}','{$星期}','{$评价人}','{$卫生分数}','{$卫生扣分原因}','{$纪律分数}','{$纪律扣分原因}','{$创建时间}','" . $_SESSION['LOGIN_USER_ID'] . "','','','')";
                $rs = $db->Execute($sql);
                //print $sql."<BR>";
            }
        }
    }
    //星期==5
}
	//先进行课表调节
	XiaoLiArray();

	//调课时间按时间进行批量执行
	教务科调课();

	$开始时间 = $_REQUEST['开始时间'];
	$开始时间Array = explode('-',$开始时间);
	$Datetime	= date("Y-m-d",mktime(1,1,1,$开始时间Array[1],$开始时间Array[2],$开始时间Array[0]));


	//节假日调课
	$TiaoKeJieJiaRiExec = 节假日调课();
	//正向 节假日调课_调整后时间 =>节假日调课_原上课时间

	$当前周次 = returnCurWeekIndex($Datetime);


	$sql = "select distinct 教师,教师用户名 from edu_schedule where 学期='$CurXueQi'
			and 教师用户名!=''
			and
				(
					(开始周<='".$当前周次."' and 结束周>='".$当前周次."')
					or
					(开始周='0' and 结束周='0')
				)
			";
	//print $sql;exit;
	$rs = $db ->CacheExecute(150,$sql);
	$rs_a = $rs -> GetArray();
	for($i=0;$i<sizeof($rs_a);$i++)		{