You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
276 lines
12 KiB
276 lines
12 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Data;
|
|
using System.Web.UI.WebControls;
|
|
using System.ComponentModel;
|
|
using System.Data.SqlClient;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
|
|
namespace OT.Controls
|
|
{
|
|
public class OrderCalendar : Calendar
|
|
{
|
|
DataSet dsOrderList;// = new Infrasys.BLL.OP_OrderDetail().GetOrderListForCarlendarByOrderDateStarAndEnd(strOrderDateStar, strOrderDateEnd);
|
|
DataSet dsGoodDays;// = new Infrasys.BLL.MAG_GoodDay().GetList();
|
|
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
base.OnLoad(e);
|
|
}
|
|
|
|
private int _MaxLen = 8;
|
|
|
|
public int MaxLen
|
|
{
|
|
set
|
|
{
|
|
_MaxLen = value;
|
|
}
|
|
get
|
|
{
|
|
return _MaxLen;
|
|
}
|
|
}
|
|
|
|
protected override void OnDayRender(TableCell cell, CalendarDay day)
|
|
{
|
|
string strOrderDateStar = day.Date.AddDays(1 - day.Date.Day).ToString("yyyy/MM/dd");
|
|
if (day.Date.Day > 10)
|
|
{
|
|
strOrderDateStar = day.Date.AddDays(1 - day.Date.Day).AddMonths(1).ToString("yyyy/MM/dd");
|
|
}
|
|
string strOrderDateEnd = day.Date.AddDays(1 - day.Date.Day).AddMonths(1).AddDays(-1).ToString("yyyy/MM/dd");
|
|
|
|
if (day.Date.Day > 10)
|
|
{
|
|
strOrderDateEnd = day.Date.AddDays(1 - day.Date.Day).AddMonths(2).AddDays(-1).ToString("yyyy/MM/dd");
|
|
}
|
|
if (dsOrderList == null)
|
|
{
|
|
// dsOrderList = new OT.BLL.TB_AVA_OP_OrderHeader().GetOrderCarlendarDataByStartAndEndDate(strOrderDateStar, strOrderDateEnd);
|
|
}
|
|
if (dsGoodDays == null)
|
|
{
|
|
// dsGoodDays = new OT.BLL.TB_AVA_MAG_GoodDay().GetAllList();
|
|
}
|
|
|
|
//總表格
|
|
Table otbAll = new Table();
|
|
otbAll.Attributes.Add("height", "100%");
|
|
otbAll.Attributes.Add("width", "100%");
|
|
otbAll.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
|
|
otbAll.BorderWidth = 1;
|
|
otbAll.BorderColor = Color.Black;
|
|
otbAll.BackColor = Color.White; //ColorTranslator.FromHtml("#C2D5FC");
|
|
otbAll.CellPadding = 0;
|
|
otbAll.CellSpacing = 0;
|
|
|
|
//border="1" cellpadding="0" cellspacing="0" bordercolor="#FF9966"
|
|
//日期行
|
|
TableRow trHeader = new TableRow();
|
|
trHeader.BackColor = ColorTranslator.FromHtml("#EBEFF4"); //每行日期的顏色
|
|
trHeader.BorderColor = ColorTranslator.FromHtml("#C2D5FC");
|
|
trHeader.Height = 10;
|
|
|
|
//日期行-日期
|
|
TableCell otdDay = new TableCell();
|
|
Label lblDay = new Label();
|
|
lblDay.Text = day.Date.Day.ToString().PadLeft(2, '0');
|
|
if (day.IsWeekend)
|
|
{
|
|
lblDay.ForeColor = System.Drawing.Color.Red;
|
|
}
|
|
otdDay.Controls.Add(lblDay);
|
|
otdDay.HorizontalAlign = HorizontalAlign.Left;
|
|
otdDay.BorderColor = ColorTranslator.FromHtml("#CEFFFF");
|
|
otdDay.Font.Bold = true;
|
|
trHeader.Controls.Add(otdDay);
|
|
//日期行-吉日名稱
|
|
TableCell otdGoodDay = new TableCell();
|
|
otdGoodDay.HorizontalAlign = HorizontalAlign.Center;
|
|
otdGoodDay.Attributes.Add("width", "100%");
|
|
otdGoodDay.BorderColor = ColorTranslator.FromHtml("#CEFFFF");
|
|
trHeader.Controls.Add(otdGoodDay);
|
|
|
|
if (dsGoodDays != null && dsGoodDays.Tables.Count > 0 && dsGoodDays.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in dsGoodDays.Tables[0].Rows)
|
|
{
|
|
if (dr["Memo"].ToString().IndexOf(day.Date.ToString("yyyy/MM/dd")) > -1)
|
|
{
|
|
Label lblGoodDayName = new Label();
|
|
lblGoodDayName.Text = dr["GoodDayValue"].ToString();
|
|
lblGoodDayName.BackColor = ColorTranslator.FromHtml(dr["Color"].ToString());
|
|
lblGoodDayName.Font.Bold = true;
|
|
otdGoodDay.Controls.Add(lblGoodDayName);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
Table tbHeader = new Table();
|
|
tbHeader.CellPadding = 0;
|
|
tbHeader.CellSpacing = 0;
|
|
tbHeader.Attributes.Add("width", "100%");
|
|
tbHeader.Controls.Add(trHeader);
|
|
|
|
TableRow otrHeader = new TableRow();
|
|
TableCell otdHeader = new TableCell();
|
|
otdHeader.VerticalAlign = VerticalAlign.Top;
|
|
otdHeader.Controls.Add(tbHeader);
|
|
otrHeader.Controls.Add(otdHeader);
|
|
otbAll.Controls.Add(otrHeader);
|
|
|
|
|
|
//資料行
|
|
TableRow trData = new TableRow();
|
|
//訂席日期
|
|
TableCell otdData = new TableCell();
|
|
//otdData.Height = 120;
|
|
otdData.Attributes.Add("height", "100%");
|
|
otdData.Attributes.Add("width", "100%");
|
|
otdData.VerticalAlign = VerticalAlign.Top;
|
|
if (dsOrderList != null && dsOrderList.Tables.Count > 0 && dsOrderList.Tables[0].Rows.Count > 0)
|
|
{
|
|
DataRow[] aryDataRow = dsOrderList.Tables[0].Select(" Date = '" + day.Date.ToString("yyyy/MM/dd") + "' ");
|
|
|
|
if (aryDataRow.Length == 0)
|
|
{
|
|
otdData.BackColor = Color.White;
|
|
Table tbEmptyOrderInfo = new Table();
|
|
tbEmptyOrderInfo.Attributes.Add("width", "100%");
|
|
tbEmptyOrderInfo.Attributes.Add("height", "100%");
|
|
//tbEmptyOrderInfo.Height = 120;
|
|
tbEmptyOrderInfo.BorderColor = Color.White;
|
|
tbEmptyOrderInfo.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
|
|
tbEmptyOrderInfo.CellPadding = 0;
|
|
tbEmptyOrderInfo.CellSpacing = 0;
|
|
tbEmptyOrderInfo.BackColor = Color.White;
|
|
TableRow trEmptyOrderInfo = new TableRow();
|
|
TableCell tdEmptyOrderInfo = new TableCell();
|
|
tdEmptyOrderInfo.Height = 100;
|
|
tdEmptyOrderInfo.Attributes.Add("height", "100%");
|
|
trEmptyOrderInfo.Controls.Add(tdEmptyOrderInfo);
|
|
tbEmptyOrderInfo.Controls.Add(trEmptyOrderInfo);
|
|
otdData.Controls.Add(tbEmptyOrderInfo);
|
|
}
|
|
|
|
foreach (DataRow dr in aryDataRow)
|
|
{
|
|
Table tbData = new Table();
|
|
tbData.Attributes.Add("width", "100%");
|
|
tbData.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
|
|
tbData.CellPadding = 0;
|
|
tbData.CellSpacing = 0;
|
|
|
|
TableRow trOrderDateSE = new TableRow();
|
|
TableRow trOrderData = new TableRow();
|
|
|
|
//訂席開始結束
|
|
TableCell tdOrderDateSE = new TableCell();
|
|
Label lblOrderDateSE = new Label();
|
|
lblOrderDateSE.Text = dr["Date"].ToString();
|
|
lblOrderDateSE.CssClass = "CarlendarDate";
|
|
tdOrderDateSE.Controls.Add(lblOrderDateSE);
|
|
//tdOrderDateSE.ColumnSpan = 3;
|
|
tdOrderDateSE.HorizontalAlign = HorizontalAlign.Left;
|
|
trOrderDateSE.Controls.Add(tdOrderDateSE);
|
|
|
|
//資料
|
|
//顏色塊 Start
|
|
//TableCell tdOrderColor = new TableCell();
|
|
//Label lblOrderStatusColor = new Label();
|
|
//lblOrderStatusColor.Text = " ";
|
|
//lblOrderStatusColor.Width = 10;
|
|
//lblOrderStatusColor.Height = 16;
|
|
//lblOrderStatusColor.BackColor = ColorTranslator.FromHtml("#F0E68C");
|
|
//tdOrderColor.HorizontalAlign = HorizontalAlign.Left;
|
|
//tdOrderColor.Controls.Add(lblOrderStatusColor);
|
|
//trOrderData.Controls.Add(tdOrderColor);
|
|
//顏色塊 End
|
|
|
|
|
|
//圖片塊 Start
|
|
//TableCell tdOrderBook = new TableCell();
|
|
//System.Web.UI.WebControls.HyperLink hlBook = new System.Web.UI.WebControls.HyperLink();
|
|
//hlBook.ImageUrl = "~/App_Themes/Default/Images/book.jpg";
|
|
//hlBook.NavigateUrl = "~/Pages/OP/ManageOrderRealValue_Add.aspx?OrderID=" + dr["OrderID"].ToString();
|
|
//tdOrderBook.Controls.Add(hlBook);
|
|
//tdOrderBook.HorizontalAlign = HorizontalAlign.Left;
|
|
//trOrderData.Controls.Add(tdOrderBook);
|
|
//圖片塊 End
|
|
|
|
//內容塊 Start
|
|
TableCell tdOrderInfo = new TableCell();
|
|
HyperLink hlOrderInfo = new HyperLink();
|
|
string strOrderInfo = string.Format("[{0}]{1}", dr["PRENAME"].ToString(), dr["NAME"].ToString());
|
|
hlOrderInfo.Text = strOrderInfo.Length <= MaxLen ? strOrderInfo : strOrderInfo.Substring(0, MaxLen) + "...";
|
|
hlOrderInfo.ToolTip = strOrderInfo;
|
|
if (dr["URL"] != null && !dr["URL"].ToString().Equals(""))
|
|
{
|
|
hlOrderInfo.NavigateUrl = dr["URL"].ToString();
|
|
}
|
|
tdOrderInfo.CssClass = "CarlendarA";
|
|
tdOrderInfo.Controls.Add(hlOrderInfo);
|
|
tdOrderInfo.HorizontalAlign = HorizontalAlign.Left;
|
|
trOrderData.Controls.Add(tdOrderInfo);
|
|
//內容塊 End
|
|
|
|
tbData.Controls.Add(trOrderDateSE);
|
|
tbData.Controls.Add(trOrderData);
|
|
|
|
|
|
otdData.Controls.Add(tbData);
|
|
//otdData.BackColor = ColorTranslator.FromHtml("#FFFFCE");
|
|
//cell.BackColor = ColorTranslator.FromHtml("#FFFFCE");
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
otdData.BackColor = Color.White;
|
|
Table tbEmptyOrderInfo = new Table();
|
|
tbEmptyOrderInfo.Attributes.Add("width", "100%");
|
|
//tbEmptyOrderInfo.Height = 120;
|
|
tbEmptyOrderInfo.Attributes.Add("height", "100%");
|
|
tbEmptyOrderInfo.BorderColor = Color.White;
|
|
tbEmptyOrderInfo.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
|
|
tbEmptyOrderInfo.CellPadding = 0;
|
|
tbEmptyOrderInfo.CellSpacing = 0;
|
|
tbEmptyOrderInfo.BackColor = Color.White;
|
|
TableRow trEmptyOrderInfo = new TableRow();
|
|
TableCell tdEmptyOrderInfo = new TableCell();
|
|
//tdEmptyOrderInfo.Height = 100;
|
|
tdEmptyOrderInfo.Attributes.Add("height", "100%");
|
|
trEmptyOrderInfo.Controls.Add(tdEmptyOrderInfo);
|
|
tbEmptyOrderInfo.Controls.Add(trEmptyOrderInfo);
|
|
otdData.Controls.Add(tbEmptyOrderInfo);
|
|
}
|
|
|
|
trData.Controls.Add(otdData);
|
|
otbAll.Controls.Add(trData);
|
|
|
|
cell.Controls.Clear();
|
|
cell.VerticalAlign = VerticalAlign.Top;
|
|
cell.Attributes.Add("height", "100%");
|
|
cell.BackColor = Color.White; //ColorTranslator.FromHtml("#C2D5FC");
|
|
|
|
//非本月不加載資料
|
|
if (!day.IsOtherMonth)
|
|
{
|
|
cell.BorderStyle = System.Web.UI.WebControls.BorderStyle.Dotted;
|
|
cell.BorderWidth = 1;
|
|
cell.Height = 120;
|
|
cell.Controls.Add(otbAll);
|
|
}
|
|
else
|
|
{
|
|
cell.BackColor = ColorTranslator.FromHtml("#C2D5FC");
|
|
}
|
|
//base.OnDayRender(cell, day);
|
|
}
|
|
}
|
|
}
|