Default.aspx.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小:8k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. using UDS.Components;
  13. namespace UDS.SubModule.WorkAttendance
  14. {
  15. /// <summary>
  16. /// _Default 的摘要说明。
  17. /// </summary>
  18. public class _Default : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.WebControls.Button btnCheckAttendance;
  21. protected System.Web.UI.WebControls.Label lblDutyMessage;
  22. protected System.Web.UI.WebControls.TextBox txtAttendanceMemo;
  23. protected System.Web.UI.WebControls.DataGrid grdWeekAttendanceData;
  24. protected System.Web.UI.WebControls.Label lbl_Hour;
  25. protected System.Web.UI.WebControls.Label lbl_Minute;
  26. protected System.Web.UI.WebControls.Label lbl_Second;
  27. private static bool DutyStatus = true;
  28. protected System.Web.UI.WebControls.Label lbl_Time;//考勤状态 true上班 false下班
  29. private static int staffid;
  30. private void Page_Load(object sender, System.EventArgs e)
  31. {
  32. if(!Page.IsPostBack)
  33. {
  34. staffid = Int32.Parse(Request.Cookies["UserID"].Value.Trim());
  35. //如果用户登陆并迟到
  36. if(Request.QueryString["notnormal"]!=null)
  37. {
  38. if((Request.QueryString["login"]!=null) &&(Request.QueryString["login"].ToString()=="in" ))
  39. {
  40. btnCheckAttendance.Text = "上班";
  41. DutyStatus = true;
  42. btnCheckAttendance.CommandArgument = "notnormal";
  43. lblDutyMessage.Text = "上班迟到,请填写理由!";
  44. txtAttendanceMemo.Visible = true;
  45. }
  46. else if((Request.QueryString["login"]!=null) &&(Request.QueryString["login"].ToString()=="out" ))
  47. {
  48. btnCheckAttendance.Text = "下班";
  49. DutyStatus = false;
  50. btnCheckAttendance.CommandArgument = "notnormal";
  51. lblDutyMessage.Text = "下班早退,请填写理由!";
  52. txtAttendanceMemo.Visible = true;
  53. }
  54. }
  55. else  //检查用户是否已经考勤
  56. {
  57. WA_Duty wd = new WA_Duty(Int32.Parse(Request.Cookies["UserID"].Value.Trim()));
  58. if(wd.HaveCompletedDuty(DateTime.Now)==0 )
  59. {
  60. lblDutyMessage.Text = "你已经完成了今天的考勤!";
  61. btnCheckAttendance.Visible = false;
  62. }
  63. else
  64. {
  65. if(!wd.HaveCheckedDuty(DateTime.Now))
  66. {
  67. btnCheckAttendance.Text = "上班";
  68. DutyStatus = true;
  69. }
  70. else
  71. {
  72. btnCheckAttendance.Text = "下班";
  73. DutyStatus = false;
  74. }
  75. }
  76. }
  77. //显示时间
  78. lbl_Hour.Text = DateTime.Now.Hour.ToString();
  79. lbl_Minute.Text = DateTime.Now.Minute.ToString();
  80. lbl_Second.Text = DateTime.Now.Second.ToString();
  81. //显示本星期的考勤数据
  82. GridBind();
  83. }
  84. else
  85. {
  86. btnCheckAttendance.Text = "正在处理。。。。";
  87. }
  88. }
  89. //绑定考勤数据显示grid
  90. private void GridBind()
  91. {
  92. string weekstartdate,weekenddate;
  93. weekstartdate = weekenddate = DateTime.Now.ToShortDateString();
  94. switch((int)DateTime.Now.DayOfWeek)
  95. {
  96. case 0:
  97. weekstartdate = DateTime.Now.AddDays(-6).ToShortDateString();
  98. weekenddate   = DateTime.Now.ToShortDateString();
  99. break;
  100. case 1:
  101. weekstartdate = DateTime.Now.ToShortDateString();
  102. weekenddate   = DateTime.Now.AddDays(6).ToShortDateString();
  103. break;
  104. case 2:
  105. weekstartdate = DateTime.Now.AddDays(-1).ToShortDateString();
  106. weekenddate   = DateTime.Now.AddDays(5).ToShortDateString();
  107. break;
  108. case 3:
  109. weekstartdate = DateTime.Now.AddDays(-2).ToShortDateString();
  110. weekenddate   = DateTime.Now.AddDays(4).ToShortDateString();
  111. break;
  112. case 4:
  113. weekstartdate = DateTime.Now.AddDays(-3).ToShortDateString();
  114. weekenddate   = DateTime.Now.AddDays(3).ToShortDateString();
  115. break;
  116. case 5:
  117. weekstartdate = DateTime.Now.AddDays(-4).ToShortDateString();
  118. weekenddate   = DateTime.Now.AddDays(2).ToShortDateString();
  119. break;
  120. case 6:
  121. weekstartdate = DateTime.Now.AddDays(-5).ToShortDateString();
  122. weekenddate   = DateTime.Now.AddDays(1).ToShortDateString();
  123. break;
  124. }
  125. Database db = new Database();
  126. SqlDataReader dr;
  127. SqlParameter[] prams = {
  128.    db.MakeInParam("@begintime",SqlDbType.DateTime,8,weekstartdate),
  129.    db.MakeInParam("@endtime",SqlDbType.DateTime,8,weekenddate),
  130.    db.MakeInParam("@ids",SqlDbType.VarChar,1000,staffid),
  131.    db.MakeInParam("@idtype",SqlDbType.VarChar,50,"staff")
  132.    };
  133. db.RunProc("sp_WA_GetAttendanceData",prams,out dr);
  134. DataTable table = Tools.ConvertDataReaderToDataTable(dr);
  135. grdWeekAttendanceData.DataSource = table.DefaultView;
  136. grdWeekAttendanceData.DataBind();
  137. }
  138. #region Web Form Designer generated code
  139. override protected void OnInit(EventArgs e)
  140. {
  141. //
  142. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  143. //
  144. InitializeComponent();
  145. base.OnInit(e);
  146. }
  147. /// <summary>
  148. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  149. /// 此方法的内容。
  150. /// </summary>
  151. private void InitializeComponent()
  152. {    
  153. this.btnCheckAttendance.Click += new System.EventHandler(this.btnCheckAttendance_Click);
  154. this.Load += new System.EventHandler(this.Page_Load);
  155. }
  156. #endregion
  157. protected void btnCheckAttendance_Click(object sender, System.EventArgs e)
  158. {
  159. try
  160. {
  161. WA_Duty wd = new WA_Duty(Int32.Parse(Request.Cookies["UserID"].Value.Trim()));
  162. //检查当天是否已经完成考勤
  163. int Duty = wd.HaveCompletedDuty(DateTime.Now);
  164. if(Duty==0)
  165. {
  166. lblDutyMessage.Text = "你已经完成了今天的考勤!";
  167. btnCheckAttendance.Visible = false;
  168. }
  169. else
  170. {
  171. //检查是否迟到早退
  172. if(DutyStatus==true) //上班考勤
  173. {
  174. if(((Button)(sender)).CommandArgument.ToString()!="notnormal")
  175. {
  176. if(wd.CheckStatus(DutyAction.OnDuty))
  177. {
  178. wd.RecordOnDutyData(DateTime.Now,true,"").ToString();
  179. lblDutyMessage.Text = "正常上班没有迟到。考勤成功!";
  180. btnCheckAttendance.Visible = false;
  181. DutyStatus = false;
  182. }
  183. else
  184. {
  185. lblDutyMessage.Text = "上班迟到,请填写理由!";
  186. txtAttendanceMemo.Visible = true;
  187. btnCheckAttendance.Text = "上班";
  188. btnCheckAttendance.CommandArgument = "notnormal";
  189. }
  190. }
  191. else
  192. {
  193. wd.RecordOnDutyData(DateTime.Now,false,txtAttendanceMemo.Text).ToString();
  194. lblDutyMessage.Text = "上班迟到。考勤成功!";
  195. txtAttendanceMemo.Visible = false;
  196. btnCheckAttendance.Visible = false;
  197. DutyStatus = false;
  198. btnCheckAttendance.CommandArgument = "";
  199. }
  200. }
  201. else  //下班考勤
  202. {
  203. if(((Button)(sender)).CommandArgument.ToString()!="notnormal")
  204. {
  205. if(wd.CheckStatus(DutyAction.OffDuty))
  206. {
  207. wd.RecordOffDutyData(Duty,DateTime.Now,true,"");
  208. lblDutyMessage.Text = "正常下班没有早退。考勤成功!";
  209. btnCheckAttendance.Visible = false;
  210. DutyStatus = true;
  211. }
  212. else
  213. {
  214. lblDutyMessage.Text = "下班早退,请填写理由!";
  215. txtAttendanceMemo.Visible = true;
  216. btnCheckAttendance.Text = "下班";
  217. btnCheckAttendance.CommandArgument = "notnormal";
  218. }
  219. }
  220. else
  221. {
  222. wd.RecordOffDutyData(Duty,DateTime.Now,false,txtAttendanceMemo.Text);
  223. lblDutyMessage.Text = "下班早退。考勤成功!";
  224. txtAttendanceMemo.Visible = false;
  225. btnCheckAttendance.Visible = false;
  226. DutyStatus = true;
  227. btnCheckAttendance.CommandArgument = "";
  228. }
  229. }
  230. }
  231. GridBind();
  232. }
  233. catch(Exception ex)
  234. {
  235. UDS.Components.Error.Log(ex.Message);
  236. Server.Transfer("../Error.aspx");
  237. }
  238. }
  239. }
  240. }