Files
thinkyu/教育訓練系統/Web/DAC/人派/BWCPE_DAC.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

236 lines
8.4 KiB
C#
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Text;
using Wellan.Common;
using System.Data;
using System.Data.Common;
namespace Education
{
/// <summary>
/// 員工權限
/// </summary>
public class BWCPE_DAC : DAC
{
private DbCommand cmdSelect = null;
private DbCommand cmdSelectRight = null;
private DbCommand cmdCheckExist = null;
private DbCommand cmdInsert = null;
private DbCommand cmdUpdate = null;
public BWCPE_DAC()
{
}
public BWCPE_DAC(string connectionConfig, string connectionConfigName)
: base(connectionConfig, connectionConfigName)
{
}
private void PrepareSql()
{
EnsureQuery();
string tblBwcpe = WGuard1.WCFA("BWCPE");
if (cmdSelect == null)
{
cmdSelect = Query.NewCommand(Query.ReplaceParamNamePrefix(
"SELECT B.BPPRG AS BPPRG, B.BPENO AS BPENO, A.BPENO AS BBPENO, A.BPNME AS BBPNME, "
+ " B.BPRT1 AS BPRT1, B.BPRTI AS BPRTI, B.BPRTM AS BPRTM, B.BPRTD AS BPRTD, "
+ " B.BPRTF AS BPRTF, B.BPRTP AS BPRTP, B.TRDAT AS TRDAT, B.TRMOD AS TRMOD, "
+ " B.TRUSR AS TRUSR "
+ " FROM " + WGuard1.WCFA("BPSN") + " A "
+ " LEFT OUTER JOIN " + tblBwcpe + " B ON A.BPENO=B.BPENO AND B.BPPRG=@BPPRG "
+ " WHERE A.BPEDY IS NULL AND A.BPENO <> '  ' "
+ " ORDER BY A.BPENO "));
cmdSelect.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
}
if (cmdCheckExist == null)
{
cmdCheckExist = Query.NewCommand(Query.ReplaceParamNamePrefix("SELECT COUNT(1) FROM " + tblBwcpe + " WHERE BPPRG=@BPPRG AND BPENO=@BPENO"));
cmdCheckExist.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdCheckExist.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString));
}
if (cmdInsert == null)
{
cmdInsert = Query.NewCommand(Query.ReplaceParamNamePrefix(
"INSERT INTO " + tblBwcpe + " (BPPRG, BPENO, BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP, TRDAT, TRMOD, TRUSR) "
+ " VALUES (@BPPRG, @BPENO, @BPRT1, @BPRTI, @BPRTM, @BPRTD, @BPRTF, @BPRTP, @TRDAT, 'INSERT', @TRUSR)"));
cmdInsert.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime));
cmdInsert.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString));
}
if (cmdUpdate == null)
{
cmdUpdate = Query.NewCommand(Query.ReplaceParamNamePrefix(
"UPDATE " + tblBwcpe
+ " SET BPRT1=@BPRT1, BPRTI=@BPRTI, BPRTM=@BPRTM, BPRTD=@BPRTD, BPRTF=@BPRTF,"
+ " BPRTP=@BPRTP, TRDAT=@TRDAT, TRMOD='UPDATE', TRUSR=@TRUSR"
+ " WHERE BPPRG=@BPPRG AND BPENO=@BPENO"));
cmdUpdate.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime));
cmdUpdate.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString));
}
if (cmdSelectRight == null)
{
cmdSelectRight = Query.NewCommand(Query.ReplaceParamNamePrefix(
"SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP "
+ " FROM " + tblBwcpe + " WHERE BPPRG=@BPPRG AND BPENO=@BPENO "));
cmdSelectRight.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdSelectRight.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString));
}
}
public DataTable Select(string bpprg)
{
PrepareSql();
cmdSelect.Parameters["BPPRG"].Value = bpprg;
return Query.Select(cmdSelect);
}
public bool CheckExist(string bpprg, string bpeno)
{
PrepareSql();
cmdCheckExist.Parameters["BPPRG"].Value = bpprg;
cmdCheckExist.Parameters["BPENO"].Value = bpeno;
int i = Convert.ToInt16(Query.ExecuteScalar(cmdCheckExist));
return !(i == 0);
}
public void Insert(string bpprg, string bpeno, string bprt1, string bprti,
string bprtm, string bprtd, string bprtf, string bprtp)
{
PrepareSql();
FillParameters(cmdInsert, bpprg, bpeno, bprt1, bprti, bprtm, bprtd, bprtf, bprtp);
Query.ExecuteNonQuery(cmdInsert);
}
public void Update(string bpprg, string bpeno, string bprt1, string bprti,
string bprtm, string bprtd, string bprtf, string bprtp)
{
PrepareSql();
FillParameters(cmdUpdate, bpprg, bpeno, bprt1, bprti, bprtm, bprtd, bprtf, bprtp);
Query.ExecuteNonQuery(cmdUpdate);
}
public void SetAllRight(string bpprg, string bpeno, bool right)
{
string r = right ? "Y" : "N";
if (!CheckExist(bpprg, bpeno))
{
Insert(bpprg, bpeno, r, r, r, r, r, r);
}
else
{
Update(bpprg, bpeno, r, r, r, r, r, r);
}
}
private void FillParameters(DbCommand cmd, string bpprg, string bpeno, string bprt1, string bprti,
string bprtm, string bprtd, string bprtf, string bprtp)
{
cmd.Parameters["BPPRG"].Value = bpprg;
cmd.Parameters["BPENO"].Value = bpeno;
cmd.Parameters["BPRT1"].Value = bprt1 == "Y" || bprt1 == "N" ? bprt1 : "N";
cmd.Parameters["BPRTI"].Value = bprti == "Y" || bprti == "N" ? bprti : "N";
cmd.Parameters["BPRTM"].Value = bprtm == "Y" || bprtm == "N" ? bprtm : "N";
cmd.Parameters["BPRTD"].Value = bprtd == "Y" || bprtd == "N" ? bprtd : "N";
cmd.Parameters["BPRTF"].Value = bprtf == "Y" || bprtf == "N" ? bprtf : "N";
cmd.Parameters["BPRTP"].Value = bprtp == "Y" || bprtp == "N" ? bprtp : "N";
cmd.Parameters["TRDAT"].Value = DateTime.UtcNow.AddHours(8);
cmd.Parameters["TRUSR"].Value = WGuard1.CUSR;
}
/// <summary>
/// 取得員工權限<para></para>
/// "Y" 表示有權限 "N" 表示無權限 "" 表示未設定
/// </summary>
/// <param name="bpprg">程式名稱</param>
/// <param name="bpeno">員工編號</param>
/// <param name="right">權限</param>
/// <returns>"Y" 表示有權限 "N" 表示無權限 "" 表示未設定</returns>
public string GetRight(string bpprg, string bpeno, WRightName right)
{
PrepareSql();
string funcName = "";
switch (right)
{
case WRightName.Execute:
funcName = "BPRT1";
break;
case WRightName.Insert:
funcName = "BPRTI";
break;
case WRightName.Update:
funcName = "BPRTM";
break;
case WRightName.Delete:
funcName = "BPRTD";
break;
case WRightName.Search:
funcName = "BPRTF";
break;
case WRightName.Print:
funcName = "BPRTP";
break;
}
cmdSelectRight.Parameters["BPPRG"].Value = bpprg;
cmdSelectRight.Parameters["BPENO"].Value = bpeno;
DataTable data = Query.Select(cmdSelectRight);
if (data.Rows.Count != 0)
{
return data.Rows[0][funcName].ToString();
}
return "";
}
}
public enum WRightName
{
/// <summary>
/// 主檔
/// </summary>
Execute,
/// <summary>
/// 新增
/// </summary>
Insert,
/// <summary>
/// 更正
/// </summary>
Update,
/// <summary>
/// 刪除
/// </summary>
Delete,
/// <summary>
/// 查詢
/// </summary>
Search,
/// <summary>
/// 印表
/// </summary>
Print
}
}