166 lines
4.8 KiB
C#
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; }
|
|
} |