Files
thinkyu/Web/App_Code/DAC/RtmeDAC.cs
T
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

166 lines
4.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Configuration;
using System.Data.Common;
using System.Collections;
using Wellan.Data;
using Wellan.Common;
using System.ComponentModel;
/// <summary>
/// 人員班表的資料處理類別
/// </summary>
[DataObject]
public class RtmeDAC : WDAC
{
public RtmeDAC()
{
}
public RtmeDAC(string connectionConfig, string connectionConfigName)
: this()
{
this._connectionConfig = connectionConfig;
this._connectionConfigName = connectionConfigName;
}
public RtmeDAC(WQuery query)
{
this._query = query;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List<RtmeItem> SelectDay(string RTENO, DateTime? RTDAT)
{
var cmd = Query.NewCommand();
cmd.CommandText = "SELECT * FROM RTME WHERE 1=1";
if (!string.IsNullOrEmpty(RTENO))
cmd.CommandText += " AND RTENO = @RTENO ";
if (RTDAT.HasValue)
cmd.CommandText += " AND RTDAT = @RTDAT ";
AddParam(cmd, "RTENO", RTENO);
AddParam(cmd, "RTDAT", RTDAT);
return Query.Select<RtmeItem>(cmd);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List<RtmeItem> SelectMonth(string RTENO, DateTime? RTDAT)
{
var cmd = Query.NewCommand();
cmd.CommandText = "SELECT * FROM RTME WHERE 1=1";
// if (!string.IsNullOrEmpty(RTENO))
cmd.CommandText += " AND RTENO = @RTENO ";
if (RTDAT.HasValue)
{
cmd.CommandText += " AND RTDAT >= @RTDAT_1 AND RTDAT < @RTDAT_2 ";
var d = RTDAT.Value.AddDays(-(RTDAT.Value.Day - 1));
AddParam(cmd, "RTDAT_1", d);
AddParam(cmd, "RTDAT_2", d.AddMonths(1));
}
AddParam(cmd, "RTENO", RTENO);
return Query.Select<RtmeItem>(cmd);
}
public void SetDay(string RTENO, DateTime RTDAT, string RTTID, string TRUSR)
{
var item = SelectDay(RTENO, RTDAT).FirstOrDefault();
if (item == null)
{
InsertOne(new RtmeItem()
{
RTENO = RTENO,
RTDAT = RTDAT,
RTTID = RTTID,
TRUSR = TRUSR
});
}
else
{
item.RTTID = RTTID;
UpdateOne(item);
}
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne(RtmeItem value)
{
var cmd = Query.NewCommand();
cmd.CommandText =
@"INSERT INTO dbo.RTME
(RTENO, RTDAT, RTTID, TRDAT, TRMOD, TRUSR)
VALUES
(@RTENO, @RTDAT, @RTTID, GETDATE(), 'INSERT', @TRUSR)";
AddParam(cmd, "RTENO", value.RTENO);
AddParam(cmd, "RTDAT", value.RTDAT);
AddParam(cmd, "RTTID", value.RTTID);
AddParam(cmd, "TRUSR", value.TRUSR);
Query.ExecuteNonQuery(cmd);
}
[DataObjectMethod(DataObjectMethodType.Update)]
public void UpdateOne(RtmeItem value)
{
var cmd = Query.NewCommand();
cmd.CommandText =
@"UPDATE dbo.RTME SET
RTTID = @RTTID,
TRDAT = GETDATE(),
TRMOD = 'MODIFY',
TRUSR = @TRUSR
WHERE RTENO = @OLD_RTENO
AND RTDAT = @OLD_RTDAT";
AddParam(cmd, "RTTID", value.RTTID);
AddParam(cmd, "TRUSR", value.TRUSR);
AddParam(cmd, "OLD_RTENO", value.RTENO);
AddParam(cmd, "OLD_RTDAT", value.RTDAT);
Query.ExecuteNonQuery(cmd);
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public void DeleteOne(RtmeItem value)
{
var cmd = Query.NewCommand();
cmd.CommandText =
@"DELETE FROM dbo.RTME
WHERE RTENO = @OLD_RTENO
AND RTDAT = @OLD_RTDAT";
AddParam(cmd, "OLD_RTENO", value.RTENO);
AddParam(cmd, "OLD_RTDAT", value.RTDAT);
Query.ExecuteNonQuery(cmd);
}
/// <summary>
/// 由員工與日期取班表資料
/// </summary>
/// <param name="RTENO"></param>
/// <param name="RTDAT"></param>
/// <returns></returns>
public BtmeItem SelectBtmeDay(string RTENO, DateTime RTDAT)
{
var rtmeItem = SelectDay(RTENO, RTDAT).FirstOrDefault();
if (rtmeItem != null && !string.IsNullOrEmpty(rtmeItem.RTTID.Trim()) && !BhrdDAC.ItemIsHoliday(rtmeItem.RTTID))
{
return new BtmeDAC(Query).SelectOne(rtmeItem.RTTID).FirstOrDefault();
}
else
return null;
}
}
public class RtmeItem
{
public string RTENO { get; set; }
public DateTime RTDAT { get; set; }
public string RTTID { get; set; }
public DateTime TRDAT { get; set; }
public string TRMOD { get; set; }
public string TRUSR { get; set; }
}