219 lines
7.1 KiB
C#
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);
|
|
}
|
|
} |