using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.Common; using Wellan.Data; using Wellan.Common; public partial class forms_worker_fmPunchCard : Wellan.Web.UI.WUserControlBase { private RcrdDAC rcrdDao; private RasnDAC rasnDao; protected void Page_Load(object sender, EventArgs e) { } protected override void OnInit(EventArgs e) { base.OnInit(e); rcrdDao = new RcrdDAC(Query); rasnDao = new RasnDAC(Query); ReadCard(); ReadRasn(); } protected long nowtime { get { return (DateTime.UtcNow.Ticks - new DateTime(1970, 1, 1).Ticks) / 10000; } } protected bool showTWTime { get; set; } private void ReadCard() { var aNow = DateAndTime.GetNow(UserId); DataTable data = rcrdDao.ReadToday(UserId, aNow.CardDate); if (data.Rows.Count != 0) { lbOnDuty.Text = WQuery.GetStringValue(data.Rows[0]["RCC01"]); lbOffDuty.Text = WQuery.GetStringValue(data.Rows[0]["RCC02"]); lbOut.Text = WQuery.GetStringValue(data.Rows[0]["RCC07"]); lbBack.Text = WQuery.GetStringValue(data.Rows[0]["RCC08"]); } // 20220106 解除下班打卡按鈕限制 btnOnDuty.Enabled = lbOnDuty.Text.Length == 0; // btnOffDuty.Enabled = lbOffDuty.Text.Length == 0 && lbOnDuty.Text.Length > 0; btnOffDuty.Enabled = lbOffDuty.Text.Length == 0; btnOut.Enabled = lbOut.Text.Length == 0; // btnBack.Enabled = lbOut.Text.Length > 0 && lbBack.Text.Length == 0; btnBack.Enabled = lbBack.Text.Length == 0; if (lbOnDuty.Text.Length == 0) lbOnDuty.Text = "(尚未打卡)"; if (lbOffDuty.Text.Length == 0) lbOffDuty.Text = "(尚未打卡)"; if (lbOut.Text.Length == 0) lbOut.Text = "(尚未打卡)"; if (lbBack.Text.Length == 0) lbBack.Text = "(尚未打卡)"; } private void ReadRasn() { showTWTime = false; var rasnTable = rasnDao.SelectRecent(UserId); if (rasnTable.Rows.Count > 0) { var rawtz = WDAC.GetStringValue(rasnTable.Rows[0]["RAWTZ"]); if (!string.IsNullOrEmpty(rawtz) && string.Compare(rawtz, "台北") != 0) { showTWTime = true; } } } protected bool CheckPunchCardDays() { cvMessage.IsValid = true; cvMessage.ErrorMessage = string.Empty; if (rcrdDao.PunchDaysIn7Days(DateAndTime.GetNow(UserId).LocalDate, UserId, false) >= 6) { cvMessage.IsValid = false; cvMessage.ErrorMessage = "不可連續七天打卡"; return false; } return true; } protected void btnOnDuty_Click(object sender, EventArgs e) { if (!CheckPunchCardDays()) return; var aNow = DateAndTime.GetNow(UserId); rcrdDao.PunchRCC01(aNow, UserId, Request.UserHostAddress, false); ReadCard(); } protected void btnOffDuty_Click(object sender, EventArgs e) { if (!CheckPunchCardDays()) return; var aNow = DateAndTime.GetNow(UserId); rcrdDao.PunchRCC02(aNow, UserId, Request.UserHostAddress, false); ReadCard(); } protected void btnOut_Click(object sender, EventArgs e) { if (!CheckPunchCardDays()) return; var aNow = DateAndTime.GetNow(UserId); rcrdDao.PunchRCC07(aNow, UserId, Request.UserHostAddress, false); ReadCard(); } protected void btnBack_Click(object sender, EventArgs e) { if (!CheckPunchCardDays()) return; var aNow = DateAndTime.GetNow(UserId); rcrdDao.PunchRCC08(aNow, UserId, Request.UserHostAddress, false); ReadCard(); } }