📄 submitotreq.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 DBUtils;
namespace BlueHill.SubmitOvertime
{
/// <summary>
/// SubmitOTReq 的摘要说明。
/// </summary>
public class SubmitOTReq : System.Web.UI.Page
{
public int totalHours;
public Employee emp;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label lblName;
protected System.Web.UI.WebControls.RadioButtonList rdoOptionList;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.DropDownList cmbApproverList;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Calendar cldStartDate;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.Calendar cldEndDate;
protected System.Web.UI.WebControls.DropDownList cmbStartTime;
protected System.Web.UI.WebControls.DropDownList cmbEndTime;
protected System.Web.UI.WebControls.Label Label7;
protected System.Web.UI.WebControls.TextBox txtReason;
protected System.Web.UI.WebControls.Label lblTotalHours;
protected System.Web.UI.WebControls.Label lblTest;
protected System.Web.UI.WebControls.Button btnCalculate;
protected System.Web.UI.WebControls.Button btnSubmit;
protected System.Web.UI.WebControls.Label lblErrorMsg;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//获取雇员ID;
int iEmpID;
iEmpID = Convert.ToInt32(Session["EmployeeID"].ToString());
int iRetValue;
emp = new Employee();
//执行数据库操作
iRetValue=Employee.GetEmployeeInfo(iEmpID,emp);
if( iRetValue == (int) DBResult.Success )
{
lblName.Text = emp.Name.ToString().Trim();
cmbApproverList.Items.Add(emp.ManagerName.ToString().Trim());
Session["iApproverID"] = emp.ManagerID;
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click);
this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//该方法计算指定月份所包含的国定假日。
//该过程调用 SubmitLvReq.GetHoliday(cldStartDate.SelectedDate, alHolidayL)
//和DBUtils.SubmitLvReq.GetHoliday(cldEndDate.SelectedDate, alHolidayR) 函数,
//在数据库中检索该月的国定假日,并判定所选请假日期中是否有法定节假日
protected bool ReCalculateHoliday(DateTime startTime,DateTime endTime)
{
ArrayList alHoliday = new ArrayList();
int iRetValue;
if(startTime.Month!=endTime.Month)
{
iRetValue=DBUtils.SubmitOTReq.GetHoliday(startTime,ref alHoliday);
if(iRetValue==(int) DBResult.Success)
{
iRetValue=0;
DBUtils.SubmitLvReq.GetHoliday(endTime,ref alHoliday);
}
}
else
{
iRetValue=DBUtils.SubmitOTReq.GetHoliday(startTime,ref alHoliday);
}
if(iRetValue==(int) DBResult.Success)
{
return true;
}
else
{
return false;
}
}
protected bool CalculateHours(DateTime startTime,DateTime endTime,int startHour,int endHour,ref int totalHours)
{
int Days;
bool isTrue = false;
ArrayList alHoliday = new ArrayList();
TimeSpan dsTime= endTime-startTime;
Days = dsTime.Days;
int subHours = endHour-startHour;
// alHoliday = ReCalculateHoliday(startTime,endTime);
if(Days>=0)
{
if(Days==0 && subHours<0)
isTrue = false;
else
isTrue = true;
}
if(isTrue)
{
if(subHours>=0) totalHours=Days*8+subHours;
else totalHours = Days*8+subHours+1;
}
return isTrue;
}
private void btnCalculate_Click(object sender, System.EventArgs e)
{
DateTime startTime = cldStartDate.SelectedDate;
DateTime endTime = cldEndDate.SelectedDate;
TimeSpan ts = DateTime.Now - startTime;
int startHour = Convert.ToDateTime((cmbStartTime.SelectedItem.Value)).Hour;
int endHour = Convert.ToDateTime((cmbEndTime.SelectedItem.Value)).Hour;
bool isSuccess = false;
int Days = ts.Days;
if(DateTime.Now>startTime.AddHours(startHour))
{
lblTotalHours.Text = "";
lblErrorMsg.Text = "起始日期不能选在当前时间以前!";
}
else
{
isSuccess = CalculateHours(startTime,endTime,startHour,endHour,ref totalHours);
if(isSuccess)
{
Session["totalHours"] = totalHours;
lblTotalHours.Text = "选择:"+totalHours +"小时";
lblErrorMsg.Text="";
}
else
{
lblTotalHours.Text = "终止时间不能小于于开始时间!";
}
}
}
private void btnSubmit_Click(object sender, System.EventArgs e)
{
string LvReason = txtReason.Text.ToString().Trim();
if(LvReason == "")
{
lblErrorMsg.Text = "加班理由不能为空";
}
else
{
DateTime startTime = cldStartDate.SelectedDate;
DateTime endTime = cldEndDate.SelectedDate;
DateTime submitTime = DateTime.Now;
int Hours = Convert.ToInt32(Session["totalHours"]);
int iEmpID;
iEmpID = Convert.ToInt32(Session["EmployeeID"].ToString());
int iApproverID = Convert.ToInt32(Session["iApproverID"]);
int iType = rdoOptionList.SelectedIndex;
int iRetValue = DBUtils.SubmitOTReq.AddOTReq(iEmpID,iType,submitTime,startTime,
endTime,iApproverID,Hours,LvReason);
//执行数据库操作
if( iRetValue == (int) DBResult.Success )
{
lblErrorMsg.Text = "请假要求已发出,请等待审批结果!";
}
else
{
lblErrorMsg.Text = "操作失败,请重试!";
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -