chore: 首次簽入 Thinkyu ASP.NET 專案

- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
2026-09-10 09:42:37 +08:00
commit 577060bc78
2496 changed files with 501389 additions and 0 deletions
+292
View File
@@ -0,0 +1,292 @@
using System;
using System.Data;
using System.Configuration;
using System.Data.Common;
using System.Collections;
using System.Collections.Generic;
using Wellan.Data;
using Wellan.Common;
using System.Transactions;
using System.ComponentModel;
/// <summary>
/// 人員差勤簽核檔
/// </summary>
public class RpabDAC : Wellan.Data.WDAC
{
private string _select =
@" SELECT RPREN, RPANO, RPAPN, RPENO, RPDAT, RPAPP, RPDOC, TRDAT, TRMOD, TRUSR FROM RPAB ";
private string _insert =
@"INSERT INTO dbo.RPAB
(RPREN, RPANO, RPAPN, RPENO, RPDAT, RPAPP, RPDOC, TRDAT, TRMOD, TRUSR)
VALUES
(@RPREN, @RPANO, @RPAPN, @RPENO, NULL, NULL, NULL, GETDATE(), 'INSERT', @TRUSR)";
private string _update1 =
@"UPDATE dbo.RPAB SET
RPDAT = @RPDAT,
RPAPP = @RPAPP,
RPDOC = @RPDOC,
TRDAT = GETDATE(),
TRMOD = 'UPDATE',
TRUSR = @TRUSR
WHERE RPREN = @OLD_RPREN
AND RPANO = @OLD_RPANO";
private string _update2 =
@"UPDATE dbo.RPAB SET
RPENO = @RPENO,
RPDAT = NULL,
RPAPP = NULL,
RPDOC = NULL,
TRDAT = GETDATE(),
TRMOD = 'UPDATE',
TRUSR = @TRUSR
WHERE RPREN = @OLD_RPREN
AND RPANO = @OLD_RPANO";
private string _delete =
@"DELETE FROM dbo.RPAB
WHERE RPREN = @OLD_RPREN
AND RPANO = @OLD_RPANO";
public RpabDAC()
{
}
public RpabDAC(WQuery query)
: this()
{
this._query = query;
}
public RpabDAC(string connectionConfig, string connectionConfigName)
: this()
{
this._connectionConfig = connectionConfig;
this._connectionConfigName = connectionConfigName;
}
public DataTable SelectRpren(string RPREN)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " WHERE RPREN=@RPREN ";
AddParam(cmd, "RPREN", RPREN);
return Query.Select(cmd);
}
public DataTable SelectOne(string RPREN, string RPANO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " WHERE RPREN=@RPREN AND RPANO=@RPANO ";
AddParam(cmd, "RPREN", RPREN);
AddParam(cmd, "RPANO", RPANO);
return Query.Select(cmd);
}
public DataTable SelectOne(DbTransaction tran, string RPREN, string RPANO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " WHERE RPREN=@RPREN AND RPANO=@RPANO ";
AddParam(cmd, "RPREN", RPREN);
AddParam(cmd, "RPANO", RPANO);
return Query.Select(cmd, tran);
}
private string NextRPANO(string RPREN)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = "SELECT ISNULL(MAX(RPANO), '0') + 1 FROM RPAB WHERE RPREN=@RPREN AND RPANO <> 'D' ";
AddParam(cmd, "RPREN", RPREN);
string s;
ExecuteScalar(cmd, out s);
return s;
}
private void InsertOne(DbTransaction tran, string RPREN, string RPAPN, string RPANO, string RPENO, object TRUSR)
{
if (string.IsNullOrEmpty(RPREN) || string.IsNullOrEmpty(RPAPN) || string.IsNullOrEmpty(RPANO) || string.IsNullOrEmpty(RPENO))
{
return;
}
if (SelectOne(RPREN, RPANO).Rows.Count > 0)
{
UpdateOne(tran, RPREN, RPANO, RPENO, TRUSR);
}
else
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _insert;
AddParam(cmd, "RPREN", RPREN);
AddParam(cmd, "RPANO", RPANO);
AddParam(cmd, "RPAPN", RPAPN);
AddParam(cmd, "RPENO", RPENO);
AddParam(cmd, "TRUSR", TRUSR);
Query.ExecuteNonQuery(tran.Connection, tran, cmd);
}
}
private void UpdateOne(DbTransaction tran, string RPREN, string RPANO,
object RPENO, object TRUSR)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _update2;
AddParam(cmd, "RPENO", RPENO);
AddParam(cmd, "TRUSR", TRUSR);
AddParam(cmd, "OLD_RPREN", RPREN);
AddParam(cmd, "OLD_RPANO", RPANO);
Query.ExecuteNonQuery(tran.Connection, tran, cmd);
}
private void UpdateOne(DbTransaction tran, string RPREN, string RPANO,
object RPDAT, object RPAPP, object RPDOC, object TRUSR)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _update1;
AddParam(cmd, "RPDAT", RPDAT);
AddParam(cmd, "RPAPP", RPAPP);
AddParam(cmd, "RPDOC", RPDOC);
AddParam(cmd, "TRUSR", TRUSR);
AddParam(cmd, "OLD_RPREN", RPREN);
AddParam(cmd, "OLD_RPANO", RPANO);
Query.ExecuteNonQuery(tran.Connection, tran, cmd);
}
private void DeleteOne(DbTransaction tran, string RPREN, string RPANO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _delete;
AddParam(cmd, "OLD_RPREN", RPREN);
AddParam(cmd, "OLD_RPANO", RPANO);
Query.ExecuteNonQuery(tran.Connection, tran, cmd);
}
public DataTable SelectLastOne(DbTransaction tran, string RPREN)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = "SELECT TOP 1 * FROM RPAB WHERE RPREN=@RPREN AND RPANO <> 'D' ORDER BY RPANO DESC";
AddParam(cmd, "RPREN", RPREN);
return Query.Select(cmd, tran);
}
/// <summary>
/// 送簽
/// </summary>
/// <param name="RPREN">單號</param>
/// <param name="RPENO">簽核人員</param>
public void (DbTransaction tran, string RPREN, string RPAPN, string RPANO, string RPENO, string TRUSR)
{
InsertOne(tran, RPREN, RPAPN, RPANO, RPENO, TRUSR);
}
/// <summary>
/// 抽單
/// </summary>
/// <param name="RPREN">單號</param>
/// <param name="RPENO">簽核人員</param>
public void (DbTransaction tran, string RPREN, string RPENO, string TRUSR)
{
InsertOne(tran, RPREN, "D", "D", RPENO, TRUSR);
}
public string (DbTransaction tran, string RPREN, out string ,
out DateTime , out string , out string )
{
DeleteOne(tran, RPREN, "D");
DataTable t = SelectLastOne(tran, RPREN);
if (t.Rows.Count > 0)
{
= WDAC.GetStringValue(t.Rows[0]["RPANO"]);
= WDAC.GetDateTimeValue(t.Rows[0]["RPDAT"]);
= WDAC.GetStringValue(t.Rows[0]["RPAPP"]);
= WDAC.GetStringValue(t.Rows[0]["RPAPN"]);
return WDAC.GetStringValue(t.Rows[0]["RPENO"]);
}
else
{
= "";
= new DateTime();
= "";
= "";
return "";
}
}
/// <summary>
/// 核准
/// </summary>
/// <param name="RPREN">單號</param>
/// <param name="RPANO">關卡</param>
/// <param name="RPDAT">簽核日期</param>
/// <param name="RPDOC">簽核備註</param>
public void (DbTransaction tran, string RPREN, string RPANO,
DateTime RPDAT, string RPDOC, string TRUSR)
{
UpdateOne(tran, RPREN, RPANO, RPDAT, "Y", RPDOC, TRUSR);
}
/// <summary>
/// 駁回
/// </summary>
/// <param name="RPREN">單號</param>
/// <param name="RPENO">簽核人員</param>
/// <param name="RPDAT">簽核日期</param>
/// <param name="RPDOC">簽核備註</param>
public void (DbTransaction tran, string RPREN, string RPANO,
DateTime RPDAT, string RPDOC, string TRUSR)
{
UpdateOne(tran, RPREN, RPANO, RPDAT, "N", RPDOC, TRUSR);
}
/// <summary>
/// 取消本關簽核
/// </summary>
public void (DbTransaction tran, string RPREN, string , string TRUSR)
{
UpdateOne(tran, RPREN, , DBNull.Value, DBNull.Value, DBNull.Value, TRUSR);
}
/// <summary>
/// 取消本關簽核,並退回上一關
/// </summary>
public string 退(DbTransaction tran, string RPREN, string , string TRUSR)
{
// 抽單
if (.CompareTo("D") == 0)
{
UpdateOne(tran, RPREN, "D", DBNull.Value, DBNull.Value, DBNull.Value, TRUSR);
return "";
}
// 非抽單
else
{
int i本關 = Convert.ToInt32();
if (i本關 > 1)
{
DeleteOne(tran, RPREN, );
UpdateOne(tran, RPREN, Convert.ToString(i本關 - 1), DBNull.Value, DBNull.Value, DBNull.Value, TRUSR);
DataTable t = SelectLastOne(tran, RPREN);
if (t.Rows.Count > 0)
return WDAC.GetStringValue(t.Rows[0]["RPENO"]);
else
return "";
}
else
return "";
}
}
/// <summary>
/// 刪除某張單據的簽核資料
/// </summary>
/// <param name="RPREN"></param>
public void Delete(DbTransaction tran, string RPREN)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText =
@"DELETE FROM dbo.RPAB
WHERE RPREN = @OLD_RPREN";
AddParam(cmd, "OLD_RPREN", RPREN);
Query.ExecuteNonQuery(tran.Connection, tran, cmd);
}
}