chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using Wellan.Data;
|
||||
using Wellan.Common;
|
||||
|
||||
/// <summary>
|
||||
/// 薪資加減項資料處理類別
|
||||
/// </summary>
|
||||
public class RsajDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public RsajDAC()
|
||||
{
|
||||
}
|
||||
|
||||
public RsajDAC(string connectionConfig, string connectionConfigName)
|
||||
: this()
|
||||
{
|
||||
this._connectionConfig = connectionConfig;
|
||||
this._connectionConfigName = connectionConfigName;
|
||||
}
|
||||
|
||||
public RsajDAC(WQuery query)
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得某年月、某人員薪資加減項紀錄
|
||||
/// </summary>
|
||||
/// <param name="yymm">年月</param>
|
||||
/// <param name="rseno">人員編號</param>
|
||||
/// <param name="rspyn">專案年度編號</param>
|
||||
/// <param name="tran">要加入的交易</param>
|
||||
public DataTable GetRSAJ(DateTime yymm, string rseno, string rspyn, DbTransaction tran)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
@"SELECT RSAMT, RSDOC
|
||||
FROM RSAJ WHERE RSENO=@RSENO AND RSPYN=@RSPYN
|
||||
AND RSYMM = @YYMM");
|
||||
cmd.Parameters.Add(Query.NewParameter("RSENO", rseno));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSPYN", rspyn));
|
||||
cmd.Parameters.Add(Query.NewParameter("YYMM", yymm));
|
||||
cmd.Connection = tran.Connection;
|
||||
cmd.Transaction = tran;
|
||||
DbDataAdapter da = Query.NewDataAdapter(cmd);
|
||||
DataTable result = new DataTable();
|
||||
da.Fill(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 寫特休結算薪資加減項
|
||||
/// </summary>
|
||||
/// <param name="yymm"></param>
|
||||
/// <param name="rseno"></param>
|
||||
/// <param name="rspyn"></param>
|
||||
/// <param name="rsamt"></param>
|
||||
/// <param name="rsdoc"></param>
|
||||
public string WriteAnnualLeaveSalary(DateTime yymm, string rseno, string rspyn, int rsamt, string rsdoc)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
var rsren = GetAnnualLeaveSalaryREN(yymm, rseno, rspyn);
|
||||
if (string.IsNullOrEmpty(rsren) && rsamt > 0)
|
||||
{
|
||||
cmd.CommandText =
|
||||
@"INSERT INTO RSAJ
|
||||
(TRDAT, TRMOD, TRUSR, RSREN, RSENO, RSPYN, RSYMM, RSAMT, RSDOC, APPNO)
|
||||
VALUES
|
||||
(@TRDAT, 'INSERT', @TRUSR, @RSREN, @RSENO, @RSPYN, @RSYMM, @RSAMT, @RSDOC, 1)";
|
||||
cmd.Parameters.Clear();
|
||||
cmd.Parameters.Add(Query.NewParameter("TRDAT", DateTime.UtcNow.AddHours(8)));
|
||||
cmd.Parameters.Add(Query.NewParameter("TRUSR", UserId));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSREN", WGuard1.WNextRen(yymm, "RSAJ", "RSREN", "YYYYMM\"F\"<9999>", "", null)));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSENO", rseno));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSPYN", rspyn));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSYMM", yymm));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSAMT", rsamt));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSDOC", rsdoc));
|
||||
Query.ExecuteNonQuery(cmd);
|
||||
}
|
||||
else if (rsamt == 0)
|
||||
{
|
||||
cmd.CommandText = @"DELETE FROM RSAJ WHERE RSREN = @RSREN";
|
||||
cmd.Parameters.Add(Query.NewParameter("RSREN", rsren));
|
||||
Query.ExecuteNonQuery(cmd);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd.CommandText =
|
||||
@"UPDATE RSAJ
|
||||
SET TRDAT = @TRDAT
|
||||
, TRMOD = 'UPDATE'
|
||||
, TRUSR = @TRUSR
|
||||
, RSENO = @RSENO
|
||||
, RSPYN = @RSPYN
|
||||
, RSYMM = @RSYMM
|
||||
, RSAMT = @RSAMT
|
||||
, RSDOC = @RSDOC
|
||||
, APPNO = APPNO + 1
|
||||
WHERE RSREN = @RSREN";
|
||||
cmd.Parameters.Clear();
|
||||
cmd.Parameters.Add(Query.NewParameter("TRDAT", DateTime.UtcNow.AddHours(8)));
|
||||
cmd.Parameters.Add(Query.NewParameter("TRUSR", UserId));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSENO", rseno));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSPYN", rspyn));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSYMM", yymm));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSAMT", rsamt));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSDOC", rsdoc));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSREN", rsren));
|
||||
Query.ExecuteNonQuery(cmd);
|
||||
}
|
||||
return rsren;
|
||||
}
|
||||
|
||||
public string GetAnnualLeaveSalaryREN(DateTime yymm, string rseno, string rspyn)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
@"SELECT RSREN
|
||||
FROM RSAJ
|
||||
WHERE RSENO=@RSENO
|
||||
AND RSPYN=@RSPYN
|
||||
AND RSYMM=@RSYMM
|
||||
AND RSREN LIKE '______F____'");
|
||||
cmd.Parameters.Add(Query.NewParameter("RSENO", rseno));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSPYN", rspyn));
|
||||
cmd.Parameters.Add(Query.NewParameter("RSYMM", yymm));
|
||||
return GetStringValue(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user