📄 attendance.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using OfficeAuto.Components;
using System.Data.SqlClient;
namespace OfficeAuto.DesktopModules.WorkAttendance
{
/// <summary>
/// Attendance 的摘要说明。
/// </summary>
public class Attendance : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblDutyMessage;
protected System.Web.UI.WebControls.Label lbl_Time;
protected System.Web.UI.WebControls.Label lbl_Hour;
protected System.Web.UI.WebControls.Label lbl_Minute;
protected System.Web.UI.WebControls.Label lbl_Second;
protected System.Web.UI.WebControls.Button CheckAttendance;
protected System.Web.UI.WebControls.TextBox AttendanceDesn;
private int nStaffID = 0;
private void Page_Load(object sender, System.EventArgs e)
{
///判断用户是否登录,否则跳转到登录页面
if(Session["UserID"] == null)
{
Response.Redirect("~/Default.aspx");
}
if(Session["UserID"] != null)
{
nStaffID = Int32.Parse(Session["UserID"].ToString());
}
if(CheckOnDuty(nStaffID) == false)
{
SetOnDuty(nStaffID);
}
CheckAttendance.Attributes.Add("onclick","return confirm('你确定要现在下班吗?');");
}
protected void CheckAttendance_Click(object sender, System.EventArgs e)
{
if(CheckOffDuty(nStaffID) == false)
{
SetOffDuty(nStaffID);
}
}
private bool CheckOnDuty(int nStaffID)
{
bool onDuty = false;
OfficeAuto.Components.Attendance atten = new OfficeAuto.Components.Attendance();
SqlDataReader reca = atten.GetAttendanceByUserDay(nStaffID);
if(reca.Read())
{
///已经上班
if(reca["OnDuty"].ToString().Length > 0)
{
onDuty = true;
}
}
reca.Close();
return(onDuty);
}
private void SetOnDuty(int nStaffID)
{
if(CheckOnDuty(nStaffID) == false)
{
DutyTime duty = new DutyTime();
SqlDataReader recd = duty.GetDutyTimeByType("Company");
DateTime dtOnDuty = DateTime.Now;
if(recd.Read())
{
dtOnDuty = Convert.ToDateTime(recd["OnDutyTime"].ToString());
}
recd.Close();
OfficeAuto.Components.Attendance atten = new OfficeAuto.Components.Attendance();
///正常上班
if(((TimeSpan)DateTime.Now.Subtract(dtOnDuty)).Hours < 0)
{
atten.AddAttendanceOnDuty(nStaffID,1);
Response.Write("<script language=javascript>alert('上班考勤成功!');</script>");
}
else
{ ///上班迟到
atten.AddAttendanceOnDuty(nStaffID,0);
Response.Write("<script language=javascript>alert('上班迟到,请填写迟到理由!');</script>");
}
}
}
private bool CheckOffDuty(int nStaffID)
{
bool offDuty = false;
OfficeAuto.Components.Attendance atten = new OfficeAuto.Components.Attendance();
SqlDataReader reca = atten.GetAttendanceByUserDay(nStaffID);
if(reca.Read())
{
///已经下班
if(reca["OffDuty"].ToString().Length > 0)
{
offDuty = true;
}
}
reca.Close();
return(offDuty);
}
private void SetOffDuty(int nStaffID)
{
if(CheckOffDuty(nStaffID) == false)
{
DutyTime duty = new DutyTime();
SqlDataReader recd = duty.GetDutyTimeByType("Company");
DateTime dtOffDuty = DateTime.Now;
if(recd.Read())
{
dtOffDuty = Convert.ToDateTime(recd["OffDutyTime"].ToString());
}
recd.Close();
OfficeAuto.Components.Attendance atten = new OfficeAuto.Components.Attendance();
///正常下班
if(((TimeSpan)DateTime.Now.Subtract(dtOffDuty)).Hours > 0)
{
atten.AddAttendanceOffDuty(nStaffID,1);
Response.Write("<script language=javascript>alert('下班考勤成功!');</script>");
}
else
{ ///下班早退
atten.AddAttendanceOffDuty(nStaffID,0);
Response.Write("<script language=javascript>alert('下班早退,请填写迟到理由!');</script>");
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.CheckAttendance.Click += new System.EventHandler(this.CheckAttendance_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -