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
+235
View File
@@ -0,0 +1,235 @@
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
}
}
+206
View File
@@ -0,0 +1,206 @@
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 BWCPG_DAC : DAC
{
private DbCommand cmdSelect = null;
private DbCommand cmdSelectRight = null;
private DbCommand cmdCheckExist = null;
private DbCommand cmdInsert = null;
private DbCommand cmdUpdate = null;
public BWCPG_DAC()
{
}
public BWCPG_DAC(string connectionConfig, string connectionConfigName)
: base(connectionConfig, connectionConfigName)
{
}
private void PrepareSql()
{
EnsureQuery();
string tblBwcpg = WGuard1.WCFA("BWCPG");
if (cmdSelect == null)
{
cmdSelect = Query.NewCommand(Query.ReplaceParamNamePrefix(
"SELECT B.BPPRG AS BPPRG, B.BPGLP AS BPGLP, A.BPGLP AS BBPGLP, A.BPDSP AS BBPDSP, "
+ " 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("BWEG") + " A "
+ " LEFT OUTER JOIN " + tblBwcpg + " B ON A.BPGLP=B.BPGLP AND B.BPPRG=@BPPRG "
+ " ORDER BY A.BPGLP "));
cmdSelect.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
}
if (cmdCheckExist == null)
{
cmdCheckExist = Query.NewCommand(Query.ReplaceParamNamePrefix("SELECT COUNT(1) FROM " + tblBwcpg + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP"));
cmdCheckExist.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdCheckExist.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString));
}
if (cmdInsert == null)
{
cmdInsert = Query.NewCommand(Query.ReplaceParamNamePrefix(
"INSERT INTO " + tblBwcpg + " (BPPRG, BPGLP, BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP, TRDAT, TRMOD, TRUSR) "
+ " VALUES (@BPPRG, @BPGLP, @BPRT1, @BPRTI, @BPRTM, @BPRTD, @BPRTF, @BPRTP, @TRDAT, 'INSERT', @TRUSR)"));
cmdInsert.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdInsert.Parameters.Add(Query.NewParameter("BPGLP", 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 " + tblBwcpg
+ " SET BPRT1=@BPRT1, BPRTI=@BPRTI, BPRTM=@BPRTM, BPRTD=@BPRTD, BPRTF=@BPRTF,"
+ " BPRTP=@BPRTP, TRDAT=@TRDAT, TRMOD='UPDATE', TRUSR=@TRUSR"
+ " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP"));
cmdUpdate.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdUpdate.Parameters.Add(Query.NewParameter("BPGLP", 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 " + tblBwcpg + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP "));
cmdSelectRight.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
cmdSelectRight.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString));
}
}
public DataTable Select(string bpprg)
{
PrepareSql();
cmdSelect.Parameters["BPPRG"].Value = bpprg;
return Query.Select(cmdSelect);
}
public bool CheckExist(string bpprg, string bpglp)
{
PrepareSql();
cmdCheckExist.Parameters["BPPRG"].Value = bpprg;
cmdCheckExist.Parameters["BPGLP"].Value = bpglp;
int i = Convert.ToInt16(Query.ExecuteScalar(cmdCheckExist));
return i != 0;
}
public void Insert(string bpprg, string bpglp, string bprt1, string bprti,
string bprtm, string bprtd, string bprtf, string bprtp)
{
PrepareSql();
FillParameters(cmdInsert, bpprg, bpglp, bprt1, bprti, bprtm, bprtd, bprtf, bprtp);
Query.ExecuteNonQuery(cmdInsert);
}
public void Update(string bpprg, string bpglp, string bprt1, string bprti,
string bprtm, string bprtd, string bprtf, string bprtp)
{
PrepareSql();
FillParameters(cmdUpdate, bpprg, bpglp, bprt1, bprti, bprtm, bprtd, bprtf, bprtp);
Query.ExecuteNonQuery(cmdUpdate);
}
public void SetAllRight(string bpprg, string bpglp, bool right)
{
string r = right ? "Y" : "N";
if (!CheckExist(bpprg, bpglp))
{
Insert(bpprg, bpglp, r, r, r, r, r, r);
}
else
{
Update(bpprg, bpglp, r, r, r, r, r, r);
}
}
private void FillParameters(DbCommand cmd, string bpprg, string bpglp, string bprt1, string bprti,
string bprtm, string bprtd, string bprtf, string bprtp)
{
cmd.Parameters["BPPRG"].Value = bpprg;
cmd.Parameters["BPGLP"].Value = bpglp;
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="bpglp">群組編號</param>
/// <param name="right">權限</param>
/// <returns>"Y" 表示有權限 "N" 表示無權限 "" 表示未設定</returns>
public string GetRight(string bpprg, string bpglp, 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["BPGLP"].Value = bpglp;
DataTable data = Query.Select(cmdSelectRight);
if (data.Rows.Count != 0)
{
return data.Rows[0][funcName].ToString();
}
return "";
}
}
}
+215
View File
@@ -0,0 +1,215 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using Wellan.Common;
namespace Education
{
/// <summary>
/// 員工群組
/// </summary>
public class BWEH_DAC : DAC
{
DbCommand cmdInsert = null;
DbCommand cmdDelete = null;
public BWEH_DAC()
{
}
public BWEH_DAC(string connectionConfig, string connectionConfigName)
: base(connectionConfig, connectionConfigName)
{
}
private void PrepareSql()
{
EnsureQuery();
if (cmdInsert == null)
{
cmdInsert = Query.NewCommand("INSERT INTO " + WGuard1.WCFA("BWEH") + " (BPGLP, BPENO) VALUES (@BPGLP, @BPENO)");
cmdInsert.Parameters.Add(Query.NewParameter("BPGLP", DbType.String));
cmdInsert.Parameters.Add(Query.NewParameter("BPENO", DbType.String));
}
if (cmdDelete == null)
{
cmdDelete = Query.NewCommand("DELETE FROM " + WGuard1.WCFA("BWEH") + " WHERE BPGLP=@BPGLP AND BPENO=@BPENO");
cmdDelete.Parameters.Add(Query.NewParameter("BPGLP", DbType.String));
cmdDelete.Parameters.Add(Query.NewParameter("BPENO", DbType.String));
}
}
public void SelectByBpglp(string bpglp, out DataTable inGroup, out DataTable outGroup)
{
PrepareSql();
inGroup = Query.Select(
"SELECT E.BPENO AS BPENO, E.BPNME AS BPNME "
+ " FROM " + WGuard1.WCFA("BPSN") + " E," + WGuard1.WCFA("BWEH") + " G"
+ " WHERE G.BPENO=E.BPENO AND G.BPGLP='" + bpglp +"' "
+ " AND E.BPEDY IS NULL "
+ " ORDER BY E.BPENO ");
outGroup = Query.Select(
"SELECT BPENO, BPNME FROM " + WGuard1.WCFA("BPSN")
+ " WHERE BPENO<>'  ' "
+ " AND BPEDY IS NULL "
+ " AND BPENO NOT IN (SELECT E.BPENO AS BPENO "
+ " FROM " + WGuard1.WCFA("BPSN") + " E," + WGuard1.WCFA("BWEH") + " G"
+ " WHERE G.BPENO=E.BPENO AND G.BPGLP='" + bpglp + "' "
+ " AND E.BPEDY IS NULL ) "
+ " ORDER BY BPENO");
}
public string[] GetBpenoListByBpglp(string bpglp)
{
PrepareSql();
DataTable inGroup = Query.Select(
"SELECT E.BPENO AS BPENO "
+ " FROM " + WGuard1.WCFA("BPSN") + " E," + WGuard1.WCFA("BWEH") + " G"
+ " WHERE G.BPENO=E.BPENO AND G.BPGLP='" + bpglp + "' "
+ " AND E.BPEDY IS NULL "
+ " ORDER BY E.BPENO ");
if (inGroup.Rows.Count == 0)
return new string[0];
else
{
string[] result = new string[inGroup.Rows.Count];
for (int i = 0; i < inGroup.Rows.Count; i++)
{
result[i] = inGroup.Rows[i][0].ToString();
}
return result;
}
}
public void UpdateByBpglp(string bpglp, DataTable updateTable)
{
PrepareSql();
DbConnection conn = Query.NewConnection();
cmdDelete.Connection = conn;
cmdInsert.Connection = conn;
conn.Open();
DbTransaction tran = conn.BeginTransaction();
cmdDelete.Transaction = tran;
cmdInsert.Transaction = tran;
try
{
foreach (DataRow row in updateTable.Rows)
{
if (row.RowState == DataRowState.Added)
{
cmdInsert.Parameters["BPGLP"].Value = bpglp;
cmdInsert.Parameters["BPENO"].Value = row["BPENO", DataRowVersion.Current];
cmdInsert.ExecuteNonQuery();
}
if (row.RowState == DataRowState.Deleted)
{
cmdDelete.Parameters["BPGLP"].Value = bpglp;
cmdDelete.Parameters["BPENO"].Value = row["BPENO", DataRowVersion.Original];
cmdDelete.ExecuteNonQuery();
}
}
tran.Commit();
updateTable.AcceptChanges();
}
catch
{
tran.Rollback();
}
finally
{
conn.Close();
cmdInsert.Dispose();
cmdDelete.Dispose();
}
}
public void SelectByBpeno(string bpeno, out DataTable inGroup, out DataTable outGroup)
{
PrepareSql();
inGroup = Query.Select(
"SELECT E.BPGLP AS BPGLP, E.BPDSP AS BPDSP "
+ " FROM " + WGuard1.WCFA("BWEG") + " E," + WGuard1.WCFA("BWEH") + " G"
+ " WHERE E.BPGLP=G.BPGLP AND G.BPENO='" + bpeno + "' "
+ " ORDER BY E.BPGLP ");
outGroup = Query.Select(
"SELECT BPGLP, BPDSP FROM " + WGuard1.WCFA("BWEG")
+ " WHERE BPGLP NOT IN (SELECT BPGLP FROM " + WGuard1.WCFA("BWEH") + " WHERE BPENO='" + bpeno + "')"
+ " ORDER BY BPGLP");
}
public string[] GetBpglpListByBpeno(string bpeno)
{
PrepareSql();
DataTable inGroup = Query.Select(
"SELECT E.BPGLP AS BPGLP "
+ " FROM " + WGuard1.WCFA("BWEG") + " E," + WGuard1.WCFA("BWEH") + " G"
+ " WHERE E.BPGLP=G.BPGLP AND G.BPENO='" + bpeno + "' "
+ " ORDER BY E.BPGLP ");
if (inGroup.Rows.Count == 0)
return new string[0];
else
{
string[] result = new string[inGroup.Rows.Count];
for (int i = 0; i < inGroup.Rows.Count; i++)
{
result[i] = inGroup.Rows[i][0].ToString();
}
return result;
}
}
public void UpdateByBpeno(string bpeno, DataTable updateTable)
{
PrepareSql();
DbConnection conn = Query.NewConnection();
cmdDelete.Connection = conn;
cmdInsert.Connection = conn;
conn.Open();
DbTransaction tran = conn.BeginTransaction();
cmdDelete.Transaction = tran;
cmdInsert.Transaction = tran;
try
{
foreach (DataRow row in updateTable.Rows)
{
if (row.RowState == DataRowState.Added)
{
cmdInsert.Parameters["BPENO"].Value = bpeno;
cmdInsert.Parameters["BPGLP"].Value = row["BPGLP", DataRowVersion.Current];
cmdInsert.ExecuteNonQuery();
}
if (row.RowState == DataRowState.Deleted)
{
cmdDelete.Parameters["BPENO"].Value = bpeno;
cmdDelete.Parameters["BPGLP"].Value = row["BPGLP", DataRowVersion.Original];
cmdDelete.ExecuteNonQuery();
}
}
tran.Commit();
updateTable.AcceptChanges();
}
catch
{
tran.Rollback();
}
finally
{
conn.Close();
cmdDelete.Dispose();
cmdInsert.Dispose();
}
}
}
}
+139
View File
@@ -0,0 +1,139 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using WebLib;
namespace Education
{
[DataObject]
public class DAC_BCLS : DAC
{
public DAC_BCLS()
{ }
public DAC_BCLS(DbConnection conn)
: base(conn)
{ }
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList Get類別資料By大類ForList(string )
{
NameValueList result = new NameValueList();
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BSCLS, BSSCR FROM BCLS WHERE BSPAR=@BSPAR AND (BLOCK='' OR BLOCK IS NULL)";
AddParam(cmd, "BSPAR", );
bool wantClose;
IDataReader reader = ExecuteReader(cmd, out wantClose);
try
{
result.Fill(reader, 1, 0);
cmd.Cancel();
reader.Close();
}
finally
{
cmd.Dispose();
reader.Dispose();
CloseConnection(wantClose);
}
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList Get類別資料By大類ForDropDown(string )
{
NameValueList result = new NameValueList();
result.Add("(請選擇)", DBNull.Value);
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BSCLS, BSSCR FROM BCLS WHERE BSPAR=@BSPAR AND (BLOCK='' OR BLOCK IS NULL)";
AddParam(cmd, "BSPAR", );
bool wantClose;
IDataReader reader = ExecuteReader(cmd, out wantClose);
try
{
result.Fill(reader, 1, 0, false);
cmd.Cancel();
reader.Close();
}
finally
{
cmd.Dispose();
reader.Dispose();
CloseConnection(wantClose);
}
return result;
}
public string Get類別名稱(object , object )
{
if ( == null)
= DBNull.Value;
if ( == null)
= DBNull.Value;
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BSSCR FROM BCLS WHERE BSPAR=@BSPAR AND BSCLS=@BSCLS";
AddParam(cmd, "BSPAR", );
AddParam(cmd, "BSCLS", );
string result;
ExecuteScalar(cmd, out result);
return result;
}
public void UpdateOne(object , object , object )
{
if ( == null)
= DBNull.Value;
if ( == null)
= DBNull.Value;
if ( == null)
= DBNull.Value;
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT COUNT(1) FROM BCLS WHERE BSPAR=@BSPAR AND BSCLS=@BSCLS";
AddParam(cmd, "BSPAR", );
AddParam(cmd, "BSCLS", );
int count;
ExecuteScalar(cmd, out count);
if (count == 0)
{
cmd.CommandText =
@"INSERT INTO BCLS (BSPAR, BSCLS, BSSCR, BLOCK, TRDAT, TRMOD, TRUSR, BSRMK, DB_APPNO)
VALUES (@BSPAR, @BSCLS, @BSSCR, '', GETDATE(), 'INSERT', @TRUSR, '', 1)";
AddParam(cmd, "BSPAR", );
AddParam(cmd, "BSCLS", );
AddParam(cmd, "BSSCR", );
AddParam(cmd, "TRUSR", CurrentUserId);
ExecuteNonQuery(cmd);
}
else
{
cmd.CommandText =
@"UPDATE BCLS
SET BSSCR = @BSSCR ,
TRDAT = GETDATE() ,
TRMOD = 'UPDATE' ,
TRUSR = @TRUSR ,
DB_APPNO = DB_APPNO + 1
WHERE BSPAR = @BSPAR
AND BSCLS = @BSCLS";
AddParam(cmd, "BSPAR", );
AddParam(cmd, "BSCLS", );
AddParam(cmd, "BSSCR", );
AddParam(cmd, "TRUSR", CurrentUserId);
ExecuteNonQuery(cmd);
}
}
}
}
+129
View File
@@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using WebLib;
namespace Education
{
[DataObject]
public class DAC_BPAA: DAC
{
/// <summary>
/// 取得指定年度專案計畫代號與名稱,不含總公司
/// </summary>
/// <param name="year">指定年度</param>
/// <returns></returns>
public DataTable GetBpaa(int year)
{
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPYER=@BPYER) AND (BPCSD IS NULL) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001')
ORDER BY BPPYN";
AddParam(cmd, "BPYER", year - PublicVariable.CY11);
return Select(cmd);
}
/// <summary>
/// 取得所有年度專案計畫代號與名稱,含總公司
/// </summary>
/// <returns></returns>
public DataTable GetBpaaWithTY()
{
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT '000000001' BPPYN, '【非專案人員】' BPPYM
UNION
SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '102JYB00001') AND (BPPYN <> '102TYB00001')
UNION
SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN = '103JYB00001' OR BPPYN = '103TYB00001')
ORDER BY BPPYN";
return Select(cmd);
}
/// <summary>
/// 取得所有年度專案計畫代號與名稱,含總公司,並加上一個空項目
/// </summary>
/// <returns></returns>
public DataTable GetBpaaWithTYPlusNone()
{
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT '' BPPYN, '【全部】' BPPYM
UNION
SELECT '000000001' BPPYN, '【非專案人員】' BPPYM
UNION
SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001')
UNION
SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN = '103JYB00001' OR BPPYN = '103TYB00001')
ORDER BY BPPYN";
return Select(cmd);
}
/// <summary>
/// 取得指定年度專案計畫代號與名稱,含總公司
/// </summary>
/// <param name="year">指定年度</param>
/// <param name="companyID">公司別</param>
/// <returns></returns>
public DataTable GetBpaaWithTY(int year, string companyID)
{
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT '000000001' AS BPPYN, '【非專案人員】' AS BPPYM
UNION
SELECT BPPYN, BPPYM FROM
(
SELECT BPPYN,
ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM AS BPPYM,
(SELECT TOP 1 BPCPY FROM BPRJ WHERE BPRJ.BPPNM=BPAA.BPPNM) AS BPCPY
FROM BPAA WHERE (BPYER=@BPYER) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '102JYB00001') AND (BPPYN <> '102TYB00001')
UNION
SELECT BPPYN,
ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM AS BPPYM,
(SELECT TOP 1 BPCPY FROM BPRJ WHERE BPRJ.BPPNM=BPAA.BPPNM) AS BPCPY
FROM BPAA WHERE (BPPYN = '103JYB00001') OR (BPPYN = '103TYB00001')
) AS TMP1 WHERE BPCPY=@BPCPY
ORDER BY BPPYN";
// @"SELECT '000000001' BPPYN, '【非專案人員】' BPPYM
// UNION
// SELECT BPPYN, '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】' + BPPYM BPPYM
// FROM BPAA WHERE (BPYER=@BPYER) AND (BPPYN <> '000000001')
// ORDER BY BPPYN";
AddParam(cmd, "BPYER", year);
AddParam(cmd, "BPCPY", companyID);
return Select(cmd);
}
/// <summary>
/// 取得指定年度專案計畫代號與名稱,含總公司,並加上一個空項目
/// </summary>
/// <param name="year">指定年度</param>
/// <returns></returns>
public DataTable GetBpaaWithTYPlusNone(int year)
{
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT '' BPPYN, '【全部】' BPPYM
UNION
SELECT '000000001' BPPYN, '【非專案人員】' BPPYM
UNION
SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPYER=@BPYER) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '102JYB00001') AND (BPPYN <> '102TYB00001')
UNION
SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM
FROM BPAA WHERE (BPPYN = '103JYB00001' OR BPPYN = '103TYB00001')
ORDER BY BPPYN";
AddParam(cmd, "BPYER", year - PublicVariable.CY11);
return Select(cmd);
}
}
}
+124
View File
@@ -0,0 +1,124 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using WebLib;
namespace Education
{
[DataObject]
public class DAC_BPSN : DAC
{
public DAC_BPSN()
{ }
public DAC_BPSN(DbConnection conn)
: base(conn)
{ }
public string Get員工姓名(object BPENO)
{
if (BPENO == null)
BPENO = DBNull.Value;
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BPNME FROM BPSNView WHERE BPENO=@BPENO";
AddParam(cmd, "BPENO", BPENO);
string result;
ExecuteScalar(cmd, out result);
return result;
}
public string Get電子郵件(object BPENO)
{
if (BPENO == null)
BPENO = DBNull.Value;
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BPEML FROM BPSNView WHERE BPENO=@BPENO";
AddParam(cmd, "BPENO", BPENO);
string result;
ExecuteScalar(cmd, out result);
return result;
}
public string Get公司電話(object BPENO)
{
if (BPENO == null)
BPENO = DBNull.Value;
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BPOTL FROM BPSNView WHERE BPENO=@BPENO";
AddParam(cmd, "BPENO", BPENO);
string result;
ExecuteScalar(cmd, out result);
return result;
}
public bool Is管理群組(object BPENO)
{
if (BPENO == null)
return false;
DbCommand cmd = NewCommand();
cmd.CommandText =
String.Format(@"SELECT COUNT(1) FROM BWEH WHERE BPENO=@BPENO AND BPGLP IN ({0})", PublicVariable.ManagerGroup);
AddParam(cmd, "BPENO", BPENO);
int i;
ExecuteScalar(cmd, out i);
return i > 0;
}
public bool Is承辦人群組(object BPENO)
{
if (BPENO == null)
return false;
DbCommand cmd = NewCommand();
cmd.CommandText =
String.Format(@"SELECT COUNT(1) FROM BWEH WHERE BPENO=@BPENO AND BPGLP IN ({0})", PublicVariable.WorkerGroup);
AddParam(cmd, "BPENO", BPENO);
int i;
ExecuteScalar(cmd, out i);
return i > 0;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select(string BPENO, string BPNME)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select C.BPENO AS 員工編號, C.BPNME as 員工姓名, C.BPEML as 電子郵件,
D.RAPYN AS 計畫年度編號, ISNULL('【' + I.BSSCR + '】', '') + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSSCR AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱
from BPSNView C
left outer join RASN D on C.BPENO = D.RANUM and D.RAEDT is NULL
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
left outer join BCLS I on I.BSCLS = SUBSTRING(D.RAPYN, LEN(D.RAPYN)-5,1) and I.BSPAR = 'BCUSZON'
where C.BPEDY is null ";
if (BPENO != null && BPENO.Length > 0)
{
cmdSelect.CommandText += " and C.BPENO like @BPENO ";
AddParam(cmdSelect, "BPENO", BPENO + "%");
}
if (BPNME != null && BPNME.Length > 0)
{
cmdSelect.CommandText += " and C.BPNME like @BPNME ";
AddParam(cmdSelect, "BPNME", BPNME + "%");
}
cmdSelect.CommandText += " order by C.BPENO";
return Select(cmdSelect);
}
}
}
+69
View File
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Web;
using WebLib;
namespace Education
{
public class DAC_BRTE : DAC
{
public DAC_BRTE()
{ }
public DAC_BRTE(DbConnection conn)
: base(conn)
{ }
private decimal GetValue(string brtyp)
{
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT TOP 1 BRRTE FROM BRTE WHERE BRTYP=@BRTYP AND BRSDT <= @TODAY ORDER BY BRSDT DESC";
AddParam(cmd, "BRTYP", brtyp);
AddParam(cmd, "TODAY", PublicVariable.TaiwanNow.Date);
ExecuteScalar<decimal>(cmd, out decimal value);
return value;
}
public decimal
{
get
{
return GetValue("領據執行業務所得課稅門檻");
}
}
public decimal
{
get
{
return GetValue("領據薪資課稅門檻");
}
}
public decimal
{
get
{
return GetValue("領據基本工資");
}
}
public decimal
{
get
{
return GetValue("領據執行業務所得稅率");
}
}
public decimal
{
get
{
return GetValue("領據薪資稅率");
}
}
}
}
+92
View File
@@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Web;
using WebLib;
namespace Education
{
public class DAC_BWEX: DAC
{
private const string _tableName = "BWEX";
private const string = "領據關帳年月";
public DAC_BWEX()
{ }
public DAC_BWEX(DbConnection conn)
: base(conn)
{ }
/// <summary>
/// 讀取設定
/// </summary>
/// <param name="bsnum"></param>
/// <param name="bsitm"></param>
/// <returns></returns>
public string ReadSetting(string bsnum, int bsitm)
{
var cmd = NewCommand($"SELECT BSNAM FROM {_tableName} WHERE BSNUM=@BSNUM AND BSITM=@BSITM");
AddParam(cmd, "BSNUM", bsnum);
AddParam(cmd, "BSITM", $"{bsitm,4}");
if (ExecuteScalar<string>(cmd, out string value))
{
return value;
}
else
{
return "";
}
}
/// <summary>
/// 寫入設定
/// </summary>
/// <param name="bsnum"></param>
/// <param name="bsitm"></param>
/// <param name="bsnam"></param>
public void WriteSetting(string bsnum, int bsitm, string bsnam)
{
var cmdRead = NewCommand($"SELECT COUNT(*) FROM {_tableName} WHERE BSNUM=@BSNUM AND BSITM=@BSITM");
AddParam(cmdRead, "BSNUM", bsnum);
AddParam(cmdRead, "BSITM", $"{bsitm,4}");
ExecuteScalar(cmdRead, out int count);
if (count > 0)
{
var cmd = NewCommand($"UPDATE {_tableName} SET BSNAM=@BSNAM, TRDAT=@TRDAT, TRMOD=@TRMOD, TRUSR=@TRUSR WHERE BSNUM=@BSNUM AND BSITM=@BSITM");
AddParam(cmd, "BSNAM", bsnam);
AddParam(cmd, "TRDAT", DateTime.Now);
AddParam(cmd, "TRMOD", "UPDATE");
AddParam(cmd, "TRUSR", CurrentUserId);
AddParam(cmd, "BSNUM", bsnum);
AddParam(cmd, "BSITM", $"{bsitm,4}");
ExecuteNonQuery(cmd);
}
else
{
var cmd = NewCommand($"INSERT INTO {_tableName} (BSNUM, BSITM, BSNAM, TRDAT, TRMOD, TRUSR) VALUES (@BSNUM, @BSITM, @BSNAM, @TRDAT, @TRMOD, @TRUSR)");
AddParam(cmd, "BSNUM", bsnum);
AddParam(cmd, "BSITM", $"{bsitm,4}");
AddParam(cmd, "BSNAM", bsnam);
AddParam(cmd, "TRDAT", DateTime.Now);
AddParam(cmd, "TRMOD", "INSERT");
AddParam(cmd, "TRUSR", CurrentUserId);
ExecuteNonQuery(cmd);
}
}
public string Read領據關帳年月
{
get
{
using (var conn = DAC.NewConnection())
{
var daoBWEX = new DAC_BWEX(conn);
return daoBWEX.ReadSetting(, 1);
}
}
}
}
}
+83
View File
@@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using WebLib;
namespace Education
{
[DataObject]
public class DAC_RASN : DAC
{
public DAC_RASN()
{ }
public DAC_RASN(DbConnection conn)
: base(conn)
{ }
/*
SELECT B.BPENO AS 員工編號, B.BPENO + ' ' + B.BPNME AS 員工姓名,
ISNULL(D.RPCPY, C.RPCPY) AS 公司別,
A.RAPYN AS 專案編號, F.BPPYM AS 專案名稱,
A.RAJNO AS 職稱編號, E.BPJME AS 職稱名稱
FROM BPSN B
INNER JOIN RASN A ON A.RANUM=B.BPENO AND B.BPEDY IS NULL -- 派遣紀錄
LEFT JOIN RPIR C ON A.RANUM=C.RPENO AND C.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A.RANUM) -- 勞健保紀錄
LEFT JOIN RPIB D ON C.RPREN=D.RPREN AND D.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=D.RPREN) -- 勞健保異動紀錄
LEFT JOIN BPJA E ON E.BPPYN=A.RAPYN AND E.BPJNO=A.RAJNO -- 專案年度職稱
LEFT JOIN BPAA F ON F.BPPYN=A.RAPYN -- 專案年度接單
WHERE RAEDT IS NULL
ORDER BY BPENO
*/
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList Select專案人員(string , string )
{
NameValueList result = new NameValueList();
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT 員工編號, 員工姓名 FROM
(
SELECT A.RANUM AS 員工編號, A.RANUM + ' ' + B.BPNME AS 員工姓名, ISNULL(D.RPCPY, C.RPCPY) AS 公司別
FROM RASN A
INNER JOIN BPSNView B ON A.RANUM=B.BPENO AND B.BPEDY IS NULL
LEFT JOIN RPIR C ON A.RANUM=C.RPENO AND C.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A.RANUM)
LEFT JOIN RPIB D ON C.RPREN=D.RPREN AND D.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=D.RPREN)
WHERE A.RAPYN=@專案年度編號
AND RAEDT IS NULL
) AS TMP1
WHERE 公司別=@公司別
ORDER BY 員工編號";
// @"SELECT A.RANUM AS 員工編號, A.RANUM + ' ' + B.BPNME AS 員工姓名
// FROM RASN A
// INNER JOIN BPSN B ON A.RANUM=B.BPENO AND B.BPEDY IS NULL
// WHERE A.RAPYN=@RAPYN
// AND RAEDT IS NULL
// ORDER BY A.RANUM";
AddParam(cmd, "專案年度編號", );
AddParam(cmd, "公司別", );
bool wantClose;
IDataReader reader = ExecuteReader(cmd, out wantClose);
try
{
result.Fill(reader, 1, 0);
cmd.Cancel();
reader.Close();
}
finally
{
cmd.Dispose();
reader.Dispose();
CloseConnection(wantClose);
}
return result;
}
}
}
+132
View File
@@ -0,0 +1,132 @@
using System;
using System.Data;
using System.Data.Common;
using WebLib;
/// <summary>
/// Summary description for Login
/// </summary>
namespace Education
{
public class LoginBPAP : DAC
{
private string _userId = "";
private string _password = "";
private string _userName = "";
private string _errMessage = "";
private string _userLang = "";
private bool _noPassword = false;
public LoginBPAP()
{
}
public string UserId
{
get
{
return _userId;
}
set
{
_userId = value;
}
}
public string Password
{
get
{
return _password;
}
set
{
_password = value;
}
}
public string UserName
{
get
{
return _userName;
}
}
public string ErrorMessage
{
get
{
return _errMessage;
}
}
public bool NoPassword
{
get
{
return _noPassword;
}
}
public string UserLang
{
get
{
return _userLang;
}
set
{
_userLang = value;
}
}
/// <summary>
/// 取得是否登入成功
/// </summary>
/// <returns>登入成功與否。若回傳 false,錯誤訊息將儲存在 ErrorMessage 屬性中</returns>
public bool GetResult()
{
DbConnection conn = NewConnection();
DbCommand cmd = NewCommand("SELECT BPENO, BPNME, BPPWD FROM BPAP WHERE BPENO=@BPENO");
AddParam(cmd, "BPENO", _userId);
DataTable rs = Select(cmd);
_noPassword = false;
if (rs.Rows.Count == 0)
{
_errMessage = "無此使用者代號或是密碼錯誤";
return false;
}
else
{
string pwd1 = GetString(rs.Rows[0]["BPPWD"]);
string pwd2 = EncDec.KeyDec(pwd1);
if (pwd1.CompareTo("\u007f\u007f\u007f\u007f") == 0)
{
_noPassword = true;
pwd2 = "";
}
if (_password.CompareTo(pwd2) != 0)
{
_errMessage = "無此使用者代號或是密碼錯誤";
return false;
}
/*
if (rs.Rows[0]["BPEDY"] != DBNull.Value)
{
_errMessage = "您沒有使用這個系統的權限";
return false;
}
*/
}
_errMessage = "";
_userName = GetString(rs.Rows[0]["BPNME"]);
return true;
}
}
}
+155
View File
@@ -0,0 +1,155 @@
using System;
using System.Data;
using System.Data.Common;
using WebLib;
/// <summary>
/// Summary description for Login
/// </summary>
namespace Education
{
public class LoginBPSN : DAC
{
private string _userId = "";
private string _password = "";
private string _userName = "";
private string _errMessage = "";
private string _userLang = "";
private bool _noPassword = false;
private bool _isManager = false;
private bool _isWorker = false;
public LoginBPSN()
{
}
public string UserId
{
get
{
return _userId;
}
set
{
_userId = value;
}
}
public string Password
{
get
{
return _password;
}
set
{
_password = value;
}
}
public string UserName
{
get
{
return _userName;
}
}
public string ErrorMessage
{
get
{
return _errMessage;
}
}
public bool NoPassword
{
get
{
return _noPassword;
}
}
public string UserLang
{
get
{
return _userLang;
}
set
{
_userLang = value;
}
}
/// <summary>
/// 是否是管理員
/// </summary>
public bool IsManager
{
get
{
return _isManager;
}
}
/// <summary>
/// 是否是承辦人
/// </summary>
public bool IsWorker
{
get
{
return _isWorker;
}
}
/// <summary>
/// 取得是否登入成功
/// </summary>
/// <returns>登入成功與否。若回傳 false,錯誤訊息將儲存在 ErrorMessage 屬性中</returns>
public bool GetResult()
{
DbCommand cmd = NewCommand("SELECT BPENO, BPNME, BPEDY, BPAWD FROM BPSNView WHERE BPENO=@BPENO");
AddParam(cmd, "BPENO", _userId);
DataTable rs = Select(cmd);
_noPassword = false;
if (rs.Rows.Count == 0)
{
_errMessage = "無此使用者代號或是密碼錯誤";
return false;
}
else
{
string pwd1 = GetString(rs.Rows[0]["BPAWD"]);
string pwd2 = EncDec.KeyDec(pwd1);
if (pwd1.CompareTo("\u007f\u007f\u007f\u007f") == 0)
{
_noPassword = true;
pwd2 = "";
}
if (_password.CompareTo(pwd2) != 0)
{
_errMessage = "無此使用者代號或是密碼錯誤";
return false;
}
if (rs.Rows[0]["BPEDY"] != DBNull.Value)
{
_errMessage = "您沒有使用這個系統的權限";
return false;
}
}
_errMessage = "";
_userName = GetString(rs.Rows[0]["BPNME"]);
_isManager = new DAC_BPSN(conn).Is管理群組(_userId);
_isWorker = new DAC_BPSN(conn).Is承辦人群組(_userId);
return true;
}
}
}