using System; using System.Data; using System.Web.UI.WebControls; using Wellan.Common; using Wellan.Data; public partial class forms_punchcard_fmCardSearch : Wellan.Web.UI.WUserControlBase { private DateTime date; private RcrdDAC rcrdDao; private bool _canEdit = true; public bool CanEdit { get { return _canEdit; } set { _canEdit = value; } } private void SetColumn() { if (_canEdit) { MultiView1.ActiveViewIndex = 0; GridView1.Columns[0].Visible = false; } else { MultiView1.ActiveViewIndex = 1; lbFunctionName.Text = "出勤查詢"; // GridView1.Columns[4].Visible = false; GridView1.Columns[5].Visible = false; GridView1.Columns[7].Visible = false; GridView1.Columns[8].Visible = false; GridView1.Columns[10].Visible = false; GridView1.Columns[11].Visible = false; GridView1.Columns[13].Visible = false; GridView1.Columns[14].Visible = false; } } protected void Page_Load(object sender, EventArgs e) { if (txtDate.Text == "") txtDate.Text = DateTime.UtcNow.AddHours(8).Date.ToString("yyyyMMdd"); if (txtDate1.Text == "") txtDate1.Text = WGuard1.WDAYTRAN(DateTime.UtcNow.AddHours(8).Date, 1).ToString("yyyyMMdd"); if (txtDate2.Text == "") txtDate2.Text = WGuard1.WDAYTRAN(DateTime.UtcNow.AddHours(8).Date, 31).ToString("yyyyMMdd"); //if (IsPostBack) // GridView1.DataBind(); } protected override void OnInit(EventArgs e) { base.OnInit(e); rcrdDao = new RcrdDAC(Query); SetColumn(); } protected void btnYY_Click(object sender, EventArgs e) { ddlROPYN.DataSource = new BpaaDAC().GetBpaa(WDAC.GetInt32Value(txtYear.Text) + WGuard1.CY11); ddlROPYN.DataValueField = "BPPYN"; ddlROPYN.DataTextField = "BPPYM"; ddlROPYN.DataBind(); } protected void btnSearch_Click(object sender, EventArgs e) { if (!CheckProjectRight()) return; GridView1.DataBind(); } protected void dsCard_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) { if (CanEdit) { CheckDate(txtDate.Text, out date); if (date.Ticks == 0) return; e.InputParameters["起日"] = date; e.InputParameters["迄日"] = date; e.InputParameters["年度專案"] = ddlROPYN.SelectedValue; e.InputParameters["人員編號"] = ""; } else { DateTime date1; CheckDate(txtDate1.Text, out date1); DateTime date2; CheckDate(txtDate2.Text, out date2); if (date1.Ticks != 0 && date2.Ticks == 0) date2 = date1; else if (date2.Ticks != 0 && date1.Ticks == 0) date1 = date2; e.InputParameters["起日"] = date1; e.InputParameters["迄日"] = date2; e.InputParameters["年度專案"] = ddl專案.SelectedValue; e.InputParameters["人員編號"] = ddl人員.SelectedValue; } } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (!CheckProjectRight()) return; CheckDate(txtDate.Text, out date); if (date.Ticks == 0) return; var punchTime = ddlHH.SelectedValue + ":" + ddlMM.SelectedValue + ":00"; var dataAndTime = new DateAndTime(date, date, punchTime, date, punchTime, "台北", "Taipei Standard Time"); switch (e.CommandName) { case "PUNCH1": // 補打上班 rcrdDao.PunchRCC01(dataAndTime, e.CommandArgument.ToString(), "補打卡", true); break; case "CLEAR1": // 清除上班 rcrdDao.ClearRCC01(date, e.CommandArgument.ToString()); break; case "PUNCH2": // 補打下班 rcrdDao.PunchRCC02(dataAndTime, e.CommandArgument.ToString(), "補打卡", true); break; case "CLEAR2": // 清除下班 rcrdDao.ClearRCC02(date, e.CommandArgument.ToString()); break; case "PUNCH7": // 補打出差外出 rcrdDao.PunchRCC07(dataAndTime, e.CommandArgument.ToString(), "補打卡", true); break; case "CLEAR7": // 清除出差外出 rcrdDao.ClearRCC07(date, e.CommandArgument.ToString()); break; case "PUNCH8": // 補打出差返回 rcrdDao.PunchRCC08(dataAndTime, e.CommandArgument.ToString(), "補打卡", true); break; case "CLEAR8": // 清除出差返回 rcrdDao.ClearRCC08(date, e.CommandArgument.ToString()); break; } GridView1.DataBind(); } protected void btn確定日期_Click(object sender, EventArgs e) { ddl專案.DataSource = new BsgpDAC().我可簽核的專案(txtDate1.Value.Ticks > 0 ? txtDate1.Value.Year - WGuard1.CY11 : 0, txtDate2.Value.Ticks > 0 ? txtDate2.Value.Year - WGuard1.CY11 : 0, UserId); ddl專案.DataValueField = "BSPYN"; ddl專案.DataTextField = "BPPYM"; ddl專案.DataBind(); } protected void btn查詢_Click(object sender, EventArgs e) { GridView1.PageIndex = 0; GridView1.DataBind(); } protected void btn確定專案_Click(object sender, EventArgs e) { if (!CheckProjectRight()) return; DateTime date1; CheckDate(txtDate1.Text, out date1); DateTime date2; CheckDate(txtDate2.Text, out date2); DataTable t = new GetData(Query).GetRASN_DATE_BPPYN(date1, date2, ddl專案.SelectedValue, null); ddl人員.Items.Clear(); ddl人員.Items.Add(new ListItem("(請選擇)", "")); foreach (DataRow r in t.Rows) { ddl人員.Items.Add(new ListItem(String.Format("{0} {1}", r["RANUM"], r["BPNME"]), r["RANUM"].ToString())); } } protected bool CheckProjectRight() { // 檢查此使用者是否有權限處理這個專案 // 20230324 移除專案權限檢查 //var bppyn = ddlROPYN.SelectedValue; //if (!CanEdit) // bppyn = ddl專案.SelectedValue; //BprmDAC bprm = new BprmDAC(Query); //if (!bprm.GetRight(bppyn, UserId)) //{ // //MultiView1.Visible = false; // cvMessage.ErrorMessage = "對不起,你沒有處理這個專案的權限!"; // cvMessage.IsValid = false; // return false; //} return true; } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { //GridView_RowDataBound_Shrink_ViewState(sender, e); } }