138 lines
3.8 KiB
C#
138 lines
3.8 KiB
C#
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();
|
|
}
|
|
} |