204 lines
6.3 KiB
C#
204 lines
6.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using Wellan.Common;
|
|
using Wellan.Data;
|
|
|
|
public partial class forms_basedata_fmRTME : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private BtmeDAC Btme;
|
|
private RtmeDAC Rtme;
|
|
private BhrdDAC Bhrd;
|
|
private List<BtmeItem> BtmeList;
|
|
private List<RtmeItem> RtmeList;
|
|
private string monthBhrd;
|
|
private string[] holidayData = null;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
Btme = new BtmeDAC(Query);
|
|
Rtme = new RtmeDAC(Query);
|
|
Bhrd = new BhrdDAC(Query);
|
|
|
|
if (txtYear.Text == "")
|
|
{
|
|
txtYear.Text = DateTime.UtcNow.AddHours(8).ToString("yyyy");
|
|
ddlMonth.SelectedValue = DateTime.UtcNow.AddHours(8).ToString("MM");
|
|
Calendar1.VisibleDate = DateTime.UtcNow.AddHours(8).Date;
|
|
StoreYYMM();
|
|
}
|
|
}
|
|
|
|
private void StoreYYMM()
|
|
{
|
|
hfYear.Value = Calendar1.VisibleDate.ToString("yyyy", WGuard1.InvariantCulture);
|
|
hfMonth.Value = Calendar1.VisibleDate.ToString("MM");
|
|
}
|
|
|
|
protected void btnGoto_Click(object sender, EventArgs e)
|
|
{
|
|
Calendar1.VisibleDate = Convert.ToDateTime(txtYear.Text + "/" + ddlMonth.SelectedValue + "/01");
|
|
StoreYYMM();
|
|
}
|
|
|
|
protected void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
for (int i = 1; i <= 31; i++)
|
|
{
|
|
if (Request[String.Format("BTME{0:00}", i)] != null)
|
|
{
|
|
var rttid = WDAC.GetStringValue(Request[String.Format("BTME{0:00}", i)]);
|
|
|
|
Rtme.SetDay(UserId, new DateTime(Convert.ToInt32(hfYear.Value), Convert.ToInt32(hfMonth.Value), i),
|
|
rttid, UserId);
|
|
}
|
|
}
|
|
|
|
Calendar1.VisibleDate = Convert.ToDateTime(hfYear.Value + "/" + hfMonth.Value + "/01", WGuard1.InvariantCulture);
|
|
}
|
|
|
|
protected void Calendar1_PreRender(object sender, EventArgs e)
|
|
{
|
|
// 取得班表資料
|
|
BtmeList = Btme.SelectAll();
|
|
BtmeList.Insert(0, new BtmeItem()
|
|
{
|
|
BTTID = "",
|
|
BTNME = "預設班表",
|
|
BTSTM = WGuard1.WSetR("UNRPARTIME", 1),
|
|
BTETM = WGuard1.WSetR("UNRPARTIME", 2),
|
|
BTRST = WGuard1.WSetR("UNRPARTIME", 3),
|
|
BTRED = WGuard1.WSetR("UNRPARTIME", 4)
|
|
});
|
|
gvBTME.DataSource = BtmeList;
|
|
gvBTME.DataBind();
|
|
|
|
ddBhrd.DataSource = BtmeList;
|
|
ddBhrd.DataTextField = "BTTID";
|
|
ddBhrd.DataValueField = "BTTID";
|
|
ddBhrd.DataBind();
|
|
|
|
// 取得員工班表資料
|
|
RtmeList = Rtme.SelectMonth(UserId, Calendar1.VisibleDate);
|
|
monthBhrd = Bhrd.GetMonth(Calendar1.VisibleDate.Year, Calendar1.VisibleDate.Month);
|
|
|
|
// 取得節假日資料
|
|
holidayData = new BhrdDAC().GetYear(Calendar1.VisibleDate.Year);
|
|
}
|
|
|
|
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
|
|
{
|
|
e.Cell.Style["padding"] = "3px";
|
|
e.Cell.Style["border"] = "2px solid white";
|
|
|
|
// 非本月,結束處理
|
|
if (e.Day.IsOtherMonth)
|
|
return;
|
|
|
|
// 本月,清除重畫
|
|
e.Cell.Controls.Clear();
|
|
Label aLabel = new Label();
|
|
aLabel.Text = e.Day.Date.Day.ToString();
|
|
aLabel.Font.Name = "Tahoma";
|
|
aLabel.Font.Size = new FontUnit("16pt");
|
|
aLabel.Font.Bold = true;
|
|
aLabel.ForeColor = System.Drawing.Color.Black;
|
|
e.Cell.Controls.Add(aLabel);
|
|
|
|
// 加入換行的 Literal
|
|
Literal aBR = new Literal();
|
|
aBR.Text = "<br/>";
|
|
e.Cell.Controls.Add(aBR);
|
|
|
|
//加入 DropDownList 用以挑選班別
|
|
DropDownList aDDL = new DropDownList();
|
|
aDDL.ID = String.Format("BTME{0:00}", e.Day.Date.Day);
|
|
aDDL.Style.Add("width", "95%");
|
|
aDDL.Style.Add("top", "2px");
|
|
aDDL.Style.Add("font-size", "9pt");
|
|
|
|
if (monthBhrd == null)
|
|
{
|
|
if (!e.Day.IsWeekend)
|
|
aDDL.CssClass = "NORMAL";
|
|
}
|
|
else
|
|
{
|
|
var d = monthBhrd.Substring(e.Day.Date.Day - 1, 1);
|
|
if (d == "-" || d == "B")
|
|
aDDL.CssClass = "NORMAL";
|
|
}
|
|
|
|
BtmeList.ForEach(btmeItem =>
|
|
{
|
|
aDDL.Items.Add(new ListItem(btmeItem.BTTID, btmeItem.BTTID));
|
|
});
|
|
|
|
var rtmeItem = RtmeList.FirstOrDefault(p => p.RTDAT == e.Day.Date);
|
|
if (rtmeItem != null)
|
|
{
|
|
aDDL.SelectedValue = rtmeItem.RTTID;
|
|
}
|
|
else
|
|
{
|
|
aDDL.SelectedValue = "";
|
|
}
|
|
|
|
e.Cell.Controls.Add(aDDL);
|
|
|
|
var dayType = "-";
|
|
if (holidayData == null)
|
|
{
|
|
if (e.Day.IsWeekend)
|
|
dayType = "H";
|
|
else
|
|
dayType = "-";
|
|
}
|
|
else
|
|
{
|
|
dayType = holidayData[e.Day.Date.Month - 1].Substring(e.Day.Date.Day - 1, 1);
|
|
}
|
|
|
|
switch (dayType)
|
|
{
|
|
case "-":
|
|
e.Cell.BackColor = System.Drawing.Color.White;
|
|
break;
|
|
case "H":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xFF99CC);
|
|
break;
|
|
case "B":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xFFFF99);
|
|
break;
|
|
case "N":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x0099FF);
|
|
break;
|
|
case "V":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xFF9900);
|
|
break;
|
|
case "O":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x99CC00);
|
|
break;
|
|
case "T":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x999999);
|
|
break;
|
|
case "E":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xCC7FFF);
|
|
break;
|
|
case "A":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x7FCCFF);
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
|
|
{
|
|
txtYear.Text = Calendar1.VisibleDate.ToString("yyyy");
|
|
ddlMonth.SelectedValue = Calendar1.VisibleDate.ToString("MM");
|
|
StoreYYMM();
|
|
}
|
|
} |