Files
thinkyu/Web/App_Code/DAC/BsgpDAC.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

219 lines
7.1 KiB
C#

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>
[DataObject]
public class BsgpDAC : Wellan.Data.WDAC
{
private string _select =
@" SELECT BSPYN, BSFLW, BSLVL, BSENO, TRDAT, TRMOD, TRUSR,
CASE WHEN SUBSTRING(BSENO, 1, 1) = 'Z'
THEN (SELECT TOP 1 BPNME FROM BPAP WHERE BPENO=BSENO)
ELSE (SELECT TOP 1 BPNME FROM BPSNView WHERE BPENO=BSENO) END AS BSNME,
CASE WHEN SUBSTRING(BSENO, 1, 1) = 'Z'
THEN (SELECT TOP 1 BPEML FROM BPAP WHERE BPENO=BSENO)
ELSE (SELECT TOP 1 BPEML FROM BPSNView WHERE BPENO=BSENO) END AS BSEML
FROM BSGP ";
private string _insert =
@"INSERT INTO dbo.BSGP
(BSPYN, BSFLW, BSLVL, BSENO, TRDAT, TRMOD, TRUSR)
VALUES
(@BSPYN, @BSFLW, @BSLVL, @BSENO, GETDATE(), 'INSERT', @TRUSR)";
private string _update =
@"UPDATE BSGP SET
BSPYN = @BSPYN,
BSFLW = @BSFLW,
BSLVL = @BSLVL,
BSENO = @BSENO,
TRDAT = GETDATE(),
TRMOD = 'UPDATE',
TRUSR = @TRUSR
WHERE BSPYN = @OLD_BSPYN
AND BSFLW = @OLD_BSFLW
AND BSLVL = @OLD_BSLVL
AND BSENO = @OLD_BSENO";
private string _delete =
@"DELETE FROM BSGP
WHERE BSPYN = @OLD_BSPYN
AND BSFLW = @OLD_BSFLW
AND BSLVL = @OLD_BSLVL
AND BSENO = @OLD_BSENO";
public BsgpDAC()
{
}
public BsgpDAC(string connectionConfig, string connectionConfigName)
: this()
{
this._connectionConfig = connectionConfig;
this._connectionConfigName = connectionConfigName;
}
public BsgpDAC(WQuery query)
{
this._query = query;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable SelectAll()
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " ORDER BY BSPYN, BSFLW, BSLVL, BSENO ";
return Query.Select(cmd);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable SelectOne(string BSPYN, string BSFLW, int BSLVL, string BSENO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " WHERE BSPYN = @BSPYN AND BSFLW = @BSFLW AND BSLVL = @BSLVL AND BSENO = @BSENO ";
AddParam(cmd, "BSPYN", BSPYN);
AddParam(cmd, "BSFLW", BSFLW);
AddParam(cmd, "BSLVL", BSLVL);
AddParam(cmd, "BSENO", BSENO);
return Query.Select(cmd);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable SelectByLevel(string BSPYN, string BSFLW, int BSLVL)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " WHERE BSPYN = @BSPYN AND BSFLW = @BSFLW AND BSLVL = @BSLVL ORDER BY BSENO ";
AddParam(cmd, "BSPYN", BSPYN);
AddParam(cmd, "BSFLW", BSFLW);
AddParam(cmd, "BSLVL", BSLVL);
return Query.Select(cmd);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable SelectForDropdown(string BSPYN, string BSFLW, int BSLVL)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _select + " WHERE BSPYN = @BSPYN AND BSFLW = @BSFLW AND BSLVL = @BSLVL ORDER BY BSENO ";
//@"SELECT NULL AS BSPYN, NULL AS BSFLW, NULL AS BSLVL, NULL AS BSENO, NULL AS TRDAT,
// NULL AS TRMOD, NULL AS TRUSR, NULL AS BSNME
// UNION ALL "
// + _select + " WHERE BSPYN = @BSPYN AND BSFLW = @BSFLW AND BSLVL = @BSLVL ORDER BY BSENO ";
AddParam(cmd, "BSPYN", BSPYN);
AddParam(cmd, "BSFLW", BSFLW);
AddParam(cmd, "BSLVL", BSLVL);
return Query.Select(cmd);
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne(string BSPYN, string BSFLW, int BSLVL, string BSENO, string TRUSR)
{
if (SelectOne(BSPYN, BSFLW, BSLVL, BSENO).Rows.Count > 0)
return;
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _insert;
AddParam(cmd, "BSPYN", BSPYN);
AddParam(cmd, "BSFLW", BSFLW);
AddParam(cmd, "BSLVL", BSLVL);
AddParam(cmd, "BSENO", BSENO);
AddParam(cmd, "TRUSR", TRUSR);
Query.ExecuteNonQuery(cmd);
}
[DataObjectMethod(DataObjectMethodType.Update)]
public void UpdateOne(string OLD_BSPYN, string OLD_BSFLW, int OLD_BSLVL, string OLD_BSENO,
string BSPYN, string BSFLW, int BSLVL, string BSENO, string TRUSR)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _update;
AddParam(cmd, "BSPYN", BSPYN);
AddParam(cmd, "BSFLW", BSFLW);
AddParam(cmd, "BSLVL", BSLVL);
AddParam(cmd, "BSENO", BSENO);
AddParam(cmd, "OLD_BSPYN", OLD_BSPYN);
AddParam(cmd, "OLD_BSFLW", OLD_BSFLW);
AddParam(cmd, "OLD_BSLVL", OLD_BSLVL);
AddParam(cmd, "OLD_BSENO", OLD_BSENO);
AddParam(cmd, "TRUSR", TRUSR);
Query.ExecuteNonQuery(cmd);
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public void DeleteOne(string OLD_BSPYN, string OLD_BSFLW, int OLD_BSLVL, string OLD_BSENO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText = _delete;
AddParam(cmd, "OLD_BSPYN", OLD_BSPYN);
AddParam(cmd, "OLD_BSFLW", OLD_BSFLW);
AddParam(cmd, "OLD_BSLVL", OLD_BSLVL);
AddParam(cmd, "OLD_BSENO", OLD_BSENO);
Query.ExecuteNonQuery(cmd);
}
public bool 是否是主要簽核(string BSENO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText =
@"SELECT COUNT(1)
FROM BSGP
WHERE BSLVL IN (1, 3) AND BSENO=@BSENO";
AddParam(cmd, "BSENO", BSENO);
return GetInt32Value(Query.ExecuteScalar(cmd)) > 0;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable 我督導的專案(string BSENO)
{
DbCommand cmd = Query.NewCommand();
cmd.CommandText =
@"SELECT A.BSPYN, B.BPPYM
FROM BSGP A
INNER JOIN BPAA B ON A.BSPYN=B.BPPYN
WHERE BSLVL=3 AND BSENO=@BSENO
ORDER BY BSPYN";
AddParam(cmd, "BSENO", BSENO);
return Query.Select(cmd);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable 我可簽核的專案(int Year1, int Year2, string BSENO)
{
string yearWhere = "";
if (Year1 > 0 && Year2 > 0)
yearWhere = " AND B.BPYER>=@BPYER1 AND B.BPYER<=@BPYER2 ";
if (Year1 > 0 && Year2 == 0)
yearWhere = " AND B.BPYER=@BPYER1 ";
if (Year1 == 0 && Year2 > 0)
yearWhere = " AND B.BPYER=@BPYER2 ";
DbCommand cmd = Query.NewCommand();
cmd.CommandText = String.Format(
@"SELECT A.BSPYN, B.BPPYM
FROM BSGP A
INNER JOIN BPAA B ON A.BSPYN=B.BPPYN {0}
WHERE BSLVL IN (1, 3) AND BSENO=@BSENO
UNION
SELECT A.BSPYN, B.BPPYM
FROM BSGP A
INNER JOIN BPAA B ON A.BSPYN=B.BPPYN
WHERE BSLVL IN (1, 3) AND BSENO=@BSENO AND (BPPYN = '103TYB00001' OR BPPYN = '103JYB00001')
ORDER BY BSPYN", yearWhere);
AddParam(cmd, "BPYER1", Year1);
AddParam(cmd, "BPYER2", Year2);
AddParam(cmd, "BSENO", BSENO);
return Query.Select(cmd);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable 我可簽核的專案(int Year, string BSENO)
{
return 我可簽核的專案(Year, 0, BSENO);
}
}