258 lines
8.6 KiB
C#
258 lines
8.6 KiB
C#
//
|
|
// 這個檔案是 表單簽核明細 資料表的資料存取類別 檔案二
|
|
// 您可以修改這個檔案,加入您自訂的屬性與方法
|
|
//
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.Common;
|
|
using WebLib;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace Education
|
|
{
|
|
///<summary>
|
|
/// 表單簽核明細 資料存取類別
|
|
///</summary>
|
|
public partial class DAC_表單簽核明細 : WebLib.DAC
|
|
{
|
|
///<summary>
|
|
/// 給查詢畫面用的 Select 方法
|
|
///</summary>
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public 表單簽核明細List Select()
|
|
{
|
|
表單簽核明細List result = new 表單簽核明細List();
|
|
IDataList list = result as IDataList;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = _select + _from + _where;
|
|
|
|
cmdSelect.CommandText += _order;
|
|
Select(cmdSelect, ref list);
|
|
return result;
|
|
}
|
|
|
|
///<summary>
|
|
/// InsertOne 之前會執行此方法
|
|
/// 在這裡可以做一些檢查或是自動編號等動作
|
|
/// 回傳 false 會打斷 InsertOne 的執行
|
|
///</summary>
|
|
protected virtual bool BeforeInsertOne(表單簽核明細 value)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
///<summary>
|
|
/// InsertOne 之後會執行此方法
|
|
///</summary>
|
|
protected virtual void AfterInsertOne(表單簽核明細 value)
|
|
{
|
|
}
|
|
|
|
///<summary>
|
|
/// InsertOne 發生錯誤時會執行此方法
|
|
///</summary>
|
|
protected virtual void OnInsertOneError(Exception error, out bool handled)
|
|
{
|
|
handled = false;
|
|
}
|
|
|
|
///<summary>
|
|
/// UpdateOne 之前會執行此方法
|
|
/// 在這裡可以做一些檢查
|
|
/// 回傳 false 會打斷 UpdateOne 的執行
|
|
///</summary>
|
|
protected virtual bool BeforeUpdateOne(表單簽核明細 value)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
///<summary>
|
|
/// UpdateOne 之後會執行此方法
|
|
///</summary>
|
|
protected virtual void AfterUpdateOne(表單簽核明細 value)
|
|
{
|
|
}
|
|
|
|
///<summary>
|
|
/// UpdateOne 發生錯誤時會執行此方法
|
|
///</summary>
|
|
protected virtual void OnUpdateOneError(Exception error, out bool handled)
|
|
{
|
|
handled = false;
|
|
}
|
|
|
|
///<summary>
|
|
/// DeleteOne 之前會執行此方法
|
|
/// 在這裡可以做一些檢查
|
|
/// 回傳 false 會打斷 DeleteOne 的執行
|
|
///</summary>
|
|
protected virtual bool BeforeDeleteOne(表單簽核明細 value)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
///<summary>
|
|
/// DeleteOne 之後會執行此方法
|
|
///</summary>
|
|
protected virtual void AfterDeleteOne(表單簽核明細 value)
|
|
{
|
|
}
|
|
|
|
///<summary>
|
|
/// DeleteOne 之前會執行此方法
|
|
/// 在這裡可以做一些檢查
|
|
/// 回傳 false 會打斷 DeleteOne 的執行
|
|
///</summary>
|
|
protected virtual bool BeforeDeleteOne(int 簽核ID, string 關ID, int DB_APPNO)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
///<summary>
|
|
/// DeleteOne 之後會執行此方法
|
|
///</summary>
|
|
protected virtual void AfterDeleteOne(int 簽核ID, string 關ID, int DB_APPNO)
|
|
{
|
|
}
|
|
|
|
///<summary>
|
|
/// DeleteOne 發生錯誤時會執行此方法
|
|
///</summary>
|
|
protected virtual void OnDeleteOneError(Exception error, out bool handled)
|
|
{
|
|
handled = false;
|
|
}
|
|
|
|
// 有另外加上去的屬性及方法,請加在這裡
|
|
|
|
/// <summary>
|
|
/// 取得這張表單目前可以簽核的人員
|
|
/// </summary>
|
|
/// <param name="簽核ID"></param>
|
|
/// <returns></returns>
|
|
public 表單簽核明細List GetCanApprove(int 簽核ID)
|
|
{
|
|
表單簽核明細List result = new 表單簽核明細List();
|
|
IDataList list = result as IDataList;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = "select top 1 " + _insert + _from;
|
|
cmdSelect.CommandText += " where 簽核ID = @簽核ID ";
|
|
cmdSelect.CommandText += " order by 關ID desc ";
|
|
AddParam(cmdSelect, "簽核ID", 簽核ID);
|
|
Select(cmdSelect, ref list);
|
|
|
|
for (int i = result.Count - 1; i >= 0; i--)
|
|
{
|
|
if (result[i].簽核結果.Length > 0)
|
|
result.RemoveAt(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取得一張簽核單的最後一筆簽核明細
|
|
/// </summary>
|
|
public 表單簽核明細 GetLast(int 簽核ID)
|
|
{
|
|
表單簽核明細List result = new 表單簽核明細List();
|
|
IDataList list = result as IDataList;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = _select + _from + _where;
|
|
cmdSelect.CommandText += " and 簽核ID = @簽核ID ";
|
|
cmdSelect.CommandText += " order by 關ID desc";
|
|
AddParam(cmdSelect, "簽核ID", 簽核ID);
|
|
Select(cmdSelect, ref list);
|
|
if (result.Count > 0)
|
|
return result[0];
|
|
else
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取得一張簽核單的所有明細
|
|
/// </summary>
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public 表單簽核明細List SelectOneId(int 簽核ID)
|
|
{
|
|
表單簽核明細List result = new 表單簽核明細List();
|
|
IDataList list = result as IDataList;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = _select + _from + _where;
|
|
cmdSelect.CommandText += " and 簽核ID = @簽核ID ";
|
|
cmdSelect.CommandText += " order by 關ID desc";
|
|
AddParam(cmdSelect, "簽核ID", 簽核ID);
|
|
Select(cmdSelect, ref list);
|
|
return result;
|
|
}
|
|
|
|
private 表單簽核明細List Select稽催(int 稽催狀態)
|
|
{
|
|
表單簽核明細List result = new 表單簽核明細List();
|
|
IDataList list = result as IDataList;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = _select + _from + _where;
|
|
cmdSelect.CommandText += " and (簽核結果 <> 'Y' and 簽核結果 <> 'N') ";
|
|
cmdSelect.CommandText += " and (簽核人員 is not null and 簽核人員 <> '') ";
|
|
cmdSelect.CommandText += " and exists (select 1 from 表單簽核主檔 where 表單簽核主檔.簽核ID = 表單簽核明細.簽核ID and 表單簽核主檔.應簽關數 <> 'D' and 表單簽核主檔.已簽關數 <> 'D') ";
|
|
|
|
int daysBefore = 0;
|
|
switch (稽催狀態)
|
|
{
|
|
case 0:
|
|
cmdSelect.CommandText += " and (稽催狀態 is null or 稽催狀態 = 0) ";
|
|
daysBefore = -3;
|
|
break;
|
|
case 1:
|
|
cmdSelect.CommandText += " and (稽催狀態 = 1) ";
|
|
daysBefore = -7;
|
|
break;
|
|
case 2:
|
|
cmdSelect.CommandText += " and (稽催狀態 = 2) ";
|
|
daysBefore = -14;
|
|
break;
|
|
}
|
|
cmdSelect.CommandText += " and DB_CRDAT < @DATE ";
|
|
AddParam(cmdSelect, "DATE", DateTime.UtcNow.AddHours(8).Date.AddDays(daysBefore));
|
|
Select(cmdSelect, ref list);
|
|
return result;
|
|
}
|
|
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public 表單簽核明細List Select第一次稽催()
|
|
{
|
|
return Select稽催(0);
|
|
}
|
|
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public 表單簽核明細List Select第二次稽催()
|
|
{
|
|
return Select稽催(1);
|
|
}
|
|
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public 表單簽核明細List Select第三次稽催()
|
|
{
|
|
return Select稽催(2);
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 表單簽核明細 資料集合類別
|
|
///</summary>
|
|
public partial class 表單簽核明細List : List<表單簽核明細>
|
|
{
|
|
// 有另外加上去的屬性及方法,請加在這裡
|
|
}
|
|
|
|
///<summary>
|
|
/// 表單簽核明細 資料紀錄類別
|
|
///</summary>
|
|
public partial class 表單簽核明細
|
|
{
|
|
// 有另外加上去的屬性及方法,請加在這裡
|
|
}
|
|
}
|