chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,669 @@
|
||||
//
|
||||
// 這個檔案是 領據 資料表的資料存取類別 檔案二
|
||||
// 您可以修改這個檔案,加入您自訂的屬性與方法
|
||||
//
|
||||
using Education;
|
||||
using Education.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using WebLib;
|
||||
|
||||
namespace Education
|
||||
{
|
||||
///<summary>
|
||||
/// 領據 資料存取類別
|
||||
///</summary>
|
||||
public partial class DAC_領據 : WebLib.DAC
|
||||
{
|
||||
#region 自動產生的資料存取方法
|
||||
///<summary>
|
||||
/// InsertOne 之前會執行此方法
|
||||
/// 在這裡可以做一些檢查或是自動編號等動作
|
||||
/// 回傳 false 會打斷 InsertOne 的執行
|
||||
///</summary>
|
||||
protected virtual bool BeforeInsertOne(領據Item value)
|
||||
{
|
||||
value.列印次數 = 0;
|
||||
value.作廢 = 0;
|
||||
if (string.IsNullOrEmpty(value.表單編號))
|
||||
{
|
||||
value.表單編號 = Next單號(value.活動日期, _tableName, "表單編號", "YYYYMMDD<9999>", "");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// InsertOne 之後會執行此方法
|
||||
///</summary>
|
||||
protected virtual void AfterInsertOne(領據Item value)
|
||||
{
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// InsertOne 發生錯誤時會執行此方法
|
||||
///</summary>
|
||||
///<param name="handled">錯誤是否已經處理妥當</param>
|
||||
protected virtual void OnInsertOneError(Exception error, out bool handled)
|
||||
{
|
||||
handled = false;
|
||||
}
|
||||
///<summary>
|
||||
/// UpdateOne 之前會執行此方法
|
||||
/// 在這裡可以做一些檢查
|
||||
/// 回傳 false 會打斷 UpdateOne 的執行
|
||||
///</summary>
|
||||
protected virtual bool BeforeUpdateOne(領據Item value)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// UpdateOne 之前會執行此方法
|
||||
/// 在這裡可以做一些檢查
|
||||
/// 回傳 false 會打斷 UpdateOne 的執行
|
||||
///</summary>
|
||||
protected virtual bool BeforeUpdateOne(領據Item value, 領據Item original_value)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// UpdateOne 之後會執行此方法
|
||||
///</summary>
|
||||
protected virtual void AfterUpdateOne(領據Item value)
|
||||
{
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// UpdateOne 之後會執行此方法
|
||||
///</summary>
|
||||
protected virtual void AfterUpdateOne(領據Item value, 領據Item original_value)
|
||||
{
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// UpdateOne 發生錯誤時會執行此方法
|
||||
///</summary>
|
||||
///<param name="handled">錯誤是否已經處理妥當</param>
|
||||
protected virtual void OnUpdateOneError(Exception error, out bool handled)
|
||||
{
|
||||
handled = false;
|
||||
}
|
||||
///<summary>
|
||||
/// DeleteOne 之前會執行此方法
|
||||
/// 在這裡可以做一些檢查
|
||||
/// 回傳 false 會打斷 DeleteOne 的執行
|
||||
///</summary>
|
||||
protected virtual bool BeforeDeleteOne(領據Item value)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// DeleteOne 之後會執行此方法
|
||||
///</summary>
|
||||
protected virtual void AfterDeleteOne(領據Item value)
|
||||
{
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// DeleteOne 之前會執行此方法
|
||||
/// 在這裡可以做一些檢查
|
||||
/// 回傳 false 會打斷 DeleteOne 的執行
|
||||
///</summary>
|
||||
protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// DeleteOne 之後會執行此方法
|
||||
///</summary>
|
||||
protected virtual void AfterDeleteOne(int 編號, int DB_APPNO)
|
||||
{
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// DeleteOne 發生錯誤時會執行此方法
|
||||
///</summary>
|
||||
///<param name="handled">錯誤是否已經處理妥當</param>
|
||||
protected virtual void OnDeleteOneError(Exception error, out bool handled)
|
||||
{
|
||||
handled = false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
// 有另外加上去的屬性及方法,請加在這裡
|
||||
|
||||
///<summary>
|
||||
/// 計算資料庫中符合重複條件的筆數
|
||||
/// 重複條件:活動日期 + 領款人姓名 + 計畫代號 + 活動名稱事由
|
||||
///</summary>
|
||||
public int CountDuplicates(DateTime 活動日期, string 領款人姓名, string 計畫代號, string 活動名稱事由)
|
||||
{
|
||||
DbCommand cmd = NewCommand();
|
||||
cmd.CommandText = "select count(1) from [領據] where 活動日期 = @活動日期 and 領款人姓名 = @領款人姓名 and 計畫代號 = @計畫代號 and ISNULL(活動名稱事由,'') = @活動名稱事由";
|
||||
AddParam(cmd, "活動日期", 活動日期);
|
||||
AddParam(cmd, "領款人姓名", 領款人姓名 ?? "");
|
||||
AddParam(cmd, "計畫代號", 計畫代號 ?? "");
|
||||
AddParam(cmd, "活動名稱事由", 活動名稱事由 ?? "");
|
||||
int count;
|
||||
ExecuteScalar(cmd, out count);
|
||||
return count;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 給查詢畫面用的 SelectPage 方法
|
||||
///</summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public 領據List SelectPageWithRelations(bool noInputReturnAll, int startRowIndex, int maximumRows, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string 領款人姓名 = null, string orderBy = "")
|
||||
{
|
||||
領據List result = new 領據List();
|
||||
bool noInput = true;
|
||||
IDataList list = result as IDataList;
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
|
||||
cmdSelect.CommandText =
|
||||
String.Format("select top {0} * from (", maximumRows)
|
||||
+ "select " + _allFields
|
||||
+ ", row_number() over (order by " + (orderBy == null || orderBy.Length == 0 ? _orderBy : orderBy) + ") as rowid "
|
||||
+ _from + _where;
|
||||
AddWhere(cmdSelect, ref noInput, 活動日期_1, 活動日期_2, 身分別, 講師_非講師編號, 憑證類別, 計畫代號, 計畫名稱, 活動類別, 付款方式, 領款人姓名);
|
||||
cmdSelect.CommandText += ") as TMP1 where rowid > @startRowIndex ";
|
||||
AddParam(cmdSelect, "startRowIndex", startRowIndex);
|
||||
|
||||
if (!noInputReturnAll && noInput)
|
||||
return result;
|
||||
|
||||
Select(cmdSelect, ref list);
|
||||
|
||||
var dao_勞務費 = new DAC_勞務費(conn);
|
||||
var dao_差旅費 = new DAC_差旅費(conn);
|
||||
var dao_BPSN = new DAC_BPSN(conn);
|
||||
|
||||
result.ForEach(item =>
|
||||
{
|
||||
item.DB_CRUSR_NAME = dao_BPSN.Get員工姓名(item.DB_CRUSR);
|
||||
item.DB_TRUSR_NAME = dao_BPSN.Get員工姓名(item.DB_TRUSR);
|
||||
|
||||
var 勞務費 = dao_勞務費.SelectOne(item.編號).FirstOrDefault();
|
||||
var 差旅費 = dao_差旅費.SelectOne(item.編號).FirstOrDefault();
|
||||
|
||||
if (勞務費 != null)
|
||||
{
|
||||
item.勞務費_編號 = 勞務費.編號;
|
||||
item.勞務費_費用別 = 勞務費.費用別;
|
||||
item.勞務費_單價 = 勞務費.單價;
|
||||
item.勞務費_數量 = 勞務費.數量;
|
||||
item.勞務費_單位 = 勞務費.單位;
|
||||
item.勞務費_扣繳類別 = 勞務費.扣繳類別;
|
||||
item.勞務費_扣繳類別名稱 = 扣繳類別.GetName(勞務費.扣繳類別);
|
||||
item.勞務費_合計金額 = 勞務費.合計金額;
|
||||
item.勞務費_應扣繳稅額 = 勞務費.應扣繳稅額;
|
||||
item.勞務費_服務費 = 勞務費.服務費;
|
||||
item.勞務費_作廢 = 勞務費.作廢;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.勞務費_編號 = string.Empty;
|
||||
item.勞務費_費用別 = string.Empty;
|
||||
item.勞務費_單價 = 0;
|
||||
item.勞務費_數量 = 0;
|
||||
item.勞務費_單位 = string.Empty;
|
||||
item.勞務費_扣繳類別 = string.Empty;
|
||||
item.勞務費_扣繳類別名稱 = string.Empty;
|
||||
item.勞務費_合計金額 = 0;
|
||||
item.勞務費_應扣繳稅額 = 0;
|
||||
item.勞務費_服務費 = 0;
|
||||
item.勞務費_作廢 = 0;
|
||||
}
|
||||
|
||||
if (差旅費 != null)
|
||||
{
|
||||
item.差旅費_編號 = 差旅費.編號;
|
||||
item.差旅費_票價資訊 = 差旅費.票價資訊;
|
||||
item.差旅費_費用別 = 差旅費.費用別;
|
||||
item.差旅費_起點 = 差旅費.起點;
|
||||
item.差旅費_訖點 = 差旅費.訖點;
|
||||
item.差旅費_捷運公車 = 差旅費.捷運公車;
|
||||
item.差旅費_火車 = 差旅費.火車;
|
||||
item.差旅費_計程車 = 差旅費.計程車;
|
||||
item.差旅費_高鐵飛機 = 差旅費.高鐵飛機;
|
||||
item.差旅費_自行開車 = 差旅費.自行開車;
|
||||
item.差旅費_過路費停車費 = 差旅費.過路費停車費;
|
||||
item.差旅費_住宿費 = 差旅費.住宿費;
|
||||
item.差旅費_合計 = 差旅費.合計;
|
||||
item.差旅費_作廢 = 差旅費.作廢;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.差旅費_編號 = string.Empty;
|
||||
item.差旅費_票價資訊 = string.Empty;
|
||||
item.差旅費_費用別 = string.Empty;
|
||||
item.差旅費_起點 = string.Empty;
|
||||
item.差旅費_訖點 = string.Empty;
|
||||
item.差旅費_捷運公車 = 0;
|
||||
item.差旅費_火車 = 0;
|
||||
item.差旅費_計程車 = 0;
|
||||
item.差旅費_高鐵飛機 = 0;
|
||||
item.差旅費_自行開車 = 0;
|
||||
item.差旅費_過路費停車費 = 0;
|
||||
item.差旅費_住宿費 = 0;
|
||||
item.差旅費_合計 = 0;
|
||||
item.差旅費_作廢 = 0;
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public 個人費用彙整表List SelectSummary(bool noInputReturnAll, int startRowIndex, int maximumRows, DateTime? 起日, DateTime? 迄日, string 身分別, string 付款方式)
|
||||
{
|
||||
個人費用彙整表List tempData = new 個人費用彙整表List();
|
||||
bool noInput = true;
|
||||
IDataList list = tempData as IDataList;
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
|
||||
// 取出明細資料
|
||||
cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows)
|
||||
+ @"select A.講師_非講師編號, A.領款人姓名, A.活動日期, A.身分證字號, 1 堂數
|
||||
, ISNULL(B.合計金額, 0) - ISNULL(B.應扣繳稅額, 0) - ISNULL(B.服務費, 0) + ISNULL(C.合計, 0) 付款金額
|
||||
, row_number() over (order by A.領款人姓名) as rowid
|
||||
from 領據 A
|
||||
left join 勞務費 B on A.編號 = B.領據編號 and B.編號 is not NULL and B.編號 <> ''
|
||||
left join 差旅費 C on A.編號 = C.領據編號 and C.編號 is not NULL and C.編號 <> ''
|
||||
where 1=1
|
||||
";
|
||||
|
||||
AddWhere(cmdSelect, ref noInput, 起日, 迄日, 身分別, null, null, null, null, null, 付款方式);
|
||||
cmdSelect.CommandText += ") as TMP1 where 付款金額 > 0 and rowid > @startRowIndex ";
|
||||
AddParam(cmdSelect, "startRowIndex", startRowIndex);
|
||||
|
||||
if (!noInputReturnAll && noInput)
|
||||
return tempData;
|
||||
|
||||
Select(cmdSelect, ref list);
|
||||
|
||||
var dao付款設定 = new DAC_付款設定(conn);
|
||||
foreach (var r in tempData)
|
||||
{
|
||||
// 加入付款設定資料
|
||||
var paymentSetting = dao付款設定.SelectRecentlyActivated(r.講師_非講師編號, r.活動日期);
|
||||
if (paymentSetting != null)
|
||||
{
|
||||
r.扣繳類別 = 扣繳類別.GetActuralValue(paymentSetting.扣繳類別);
|
||||
r.扣繳類別名稱 = 扣繳類別.GetName(paymentSetting.扣繳類別);
|
||||
r.帳戶名 = paymentSetting.匯款戶名;
|
||||
r.匯款帳號 = paymentSetting.匯款帳號;
|
||||
r.銀行分行代碼 = paymentSetting.銀行分行代碼;
|
||||
r.銀行分行 = paymentSetting.銀行分行;
|
||||
}
|
||||
}
|
||||
|
||||
// 彙整
|
||||
// 這裡要用領款人姓名 + 身分證字號 + 扣繳類別 + 帳戶名 + 匯款帳號 + 銀行分行代碼 來彙總
|
||||
// 加總堂數 和 付款金額
|
||||
個人費用彙整表List result = new 個人費用彙整表List();
|
||||
|
||||
// 按照 (領款人姓名、身分證字號、扣繳類別、帳戶名、匯款帳號、銀行分行代碼) 分組彙總
|
||||
var groupedData = tempData.GroupBy(x => new
|
||||
{
|
||||
x.領款人姓名,
|
||||
x.身分證字號,
|
||||
x.扣繳類別,
|
||||
x.扣繳類別名稱,
|
||||
x.帳戶名,
|
||||
x.匯款帳號,
|
||||
x.銀行分行代碼,
|
||||
x.銀行分行
|
||||
});
|
||||
|
||||
foreach (var group in groupedData)
|
||||
{
|
||||
var summaryItem = new 個人費用彙整表Item
|
||||
{
|
||||
領款人姓名 = group.Key.領款人姓名,
|
||||
身分證字號 = group.Key.身分證字號,
|
||||
扣繳類別 = group.Key.扣繳類別,
|
||||
扣繳類別名稱 = group.Key.扣繳類別名稱,
|
||||
帳戶名 = group.Key.帳戶名,
|
||||
匯款帳號 = group.Key.匯款帳號,
|
||||
銀行分行代碼 = group.Key.銀行分行代碼,
|
||||
銀行分行 = group.Key.銀行分行,
|
||||
// 堂數是數量,加總所有同組的數量
|
||||
堂數 = group.Sum(x => x.堂數),
|
||||
// 付款金額直接加總
|
||||
付款金額 = group.Sum(x => x.付款金額)
|
||||
};
|
||||
result.Add(summaryItem);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<扣繳匯總Item> SelectDetail(bool noInputReturnAll, int startRowIndex, int maximumRows,
|
||||
DateTime? 起日, DateTime? 迄日, string 身分別, string 憑證類別)
|
||||
{
|
||||
DAC_講師 dao講師 = new DAC_講師(this.conn);
|
||||
DAC_非講師 dao非講師 = new DAC_非講師(this.conn);
|
||||
|
||||
扣繳明細List tempData = new 扣繳明細List();
|
||||
bool noInput = true;
|
||||
IDataList list = tempData as IDataList;
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
|
||||
// 取出明細資料
|
||||
cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows)
|
||||
+ @"select A.編號, A.講師_非講師編號, A.領款人姓名, A.身分證字號, A.身分別, A.郵件已發送
|
||||
, ISNULL(B.合計金額, 0) - ISNULL(B.應扣繳稅額, 0) - ISNULL(B.服務費, 0) 講師勞務費
|
||||
, ISNULL(B.應扣繳稅額, 0) 應扣繳稅額
|
||||
, ISNULL(B.服務費, 0) 服務費
|
||||
, B.扣繳類別
|
||||
, A.計畫代號
|
||||
, CONVERT(varchar(10), A.活動日期, 121) 活動日期
|
||||
, A.活動名稱事由
|
||||
, A.憑證類別
|
||||
, B.編號 領據編號
|
||||
, B.費用別
|
||||
, B.單價
|
||||
, B.數量
|
||||
, B.單位
|
||||
, row_number() over (order by A.領款人姓名) as rowid
|
||||
from 領據 A
|
||||
join 勞務費 B on A.編號 = B.領據編號 and B.編號 is not NULL and B.編號 <> ''
|
||||
where 1=1";
|
||||
|
||||
List<WhereItem> wheres = new List<WhereItem>();
|
||||
if (起日 != null && 迄日 != null)
|
||||
{
|
||||
noInput = false;
|
||||
wheres.Add(WhereItem.GreatThanOrEqual(fieldName: "A.活動日期", value: 起日));
|
||||
wheres.Add(WhereItem.LessThan(fieldName: "A.活動日期", value: 迄日.Value.AddDays(1)));
|
||||
}
|
||||
else if (起日 != null && 迄日 == null)
|
||||
{
|
||||
noInput = false;
|
||||
wheres.Add(WhereItem.GreatThanOrEqual(fieldName: "A.活動日期", value: 起日));
|
||||
}
|
||||
else if (起日 == null && 迄日 != null)
|
||||
{
|
||||
noInput = false;
|
||||
wheres.Add(WhereItem.LessThan(fieldName: "A.活動日期", value: 迄日.Value.AddDays(1)));
|
||||
}
|
||||
if (身分別 != null && 身分別.Length > 0)
|
||||
{
|
||||
noInput = false;
|
||||
wheres.Add(WhereItem.Equal(fieldName: "A.身分別", value: 身分別));
|
||||
}
|
||||
if (憑證類別 != null && 憑證類別.Length > 0)
|
||||
{
|
||||
noInput = false;
|
||||
wheres.Add(WhereItem.Equal(fieldName: "A.憑證類別", value: 憑證類別));
|
||||
}
|
||||
AddWhere(cmdSelect, wheres);
|
||||
cmdSelect.CommandText += ") as TMP1 where rowid > @startRowIndex ";
|
||||
AddParam(cmdSelect, "startRowIndex", startRowIndex);
|
||||
|
||||
if (!noInputReturnAll && noInput)
|
||||
return new List<扣繳匯總Item>();
|
||||
|
||||
Select(cmdSelect, ref list);
|
||||
|
||||
// 加入付款設定資料
|
||||
var dao付款設定 = new DAC_付款設定(conn);
|
||||
foreach (var r in tempData)
|
||||
{
|
||||
r.扣繳類別名稱 = 扣繳類別.GetName(r.扣繳類別);
|
||||
r.扣繳類別 = 扣繳類別.GetActuralValue(r.扣繳類別);
|
||||
}
|
||||
|
||||
// 分組彙整
|
||||
List<扣繳匯總Item> result = new List<扣繳匯總Item>();
|
||||
var groupedData = tempData.GroupBy(x => new
|
||||
{
|
||||
x.講師_非講師編號,
|
||||
x.領款人姓名,
|
||||
x.身分證字號,
|
||||
x.身分別,
|
||||
x.扣繳類別,
|
||||
x.扣繳類別名稱,
|
||||
});
|
||||
|
||||
foreach (var group in groupedData)
|
||||
{
|
||||
var 戶籍地址 = string.Empty;
|
||||
var 電子郵件 = string.Empty;
|
||||
if (group.Key.身分別 == "講師")
|
||||
{
|
||||
var t = dao講師.SelectOne(DAC.GetInt32(group.Key.講師_非講師編號)).FirstOrDefault();
|
||||
if (t != null)
|
||||
{
|
||||
戶籍地址 = string.Format("{0}{1}{2}", t.戶籍地址_縣市, t.戶籍地址_鄉鎮市區, t.戶籍地址_街道地址);
|
||||
電子郵件 = t.電子郵件;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var t = dao非講師.SelectOne(group.Key.講師_非講師編號).FirstOrDefault();
|
||||
if (t != null)
|
||||
{
|
||||
戶籍地址 = string.Format("{0}{1}{2}", t.戶籍地址_縣市, t.戶籍地址_鄉鎮市區, t.戶籍地址_街道地址);
|
||||
電子郵件 = t.電子郵件;
|
||||
}
|
||||
}
|
||||
|
||||
var summaryItem = new 扣繳匯總Item
|
||||
{
|
||||
講師_非講師編號 = group.Key.講師_非講師編號,
|
||||
領款人姓名 = group.Key.領款人姓名,
|
||||
身分證字號 = group.Key.身分證字號,
|
||||
戶籍地址 = 戶籍地址,
|
||||
電子郵件 = 電子郵件,
|
||||
扣繳類別 = group.Key.扣繳類別,
|
||||
扣繳類別名稱 = group.Key.扣繳類別名稱,
|
||||
講師勞務費合計 = group.Sum(x => x.講師勞務費),
|
||||
應扣繳稅額合計 = group.Sum(x => x.應扣繳稅額),
|
||||
服務費合計 = group.Sum(x => x.服務費)
|
||||
};
|
||||
|
||||
var i = 1;
|
||||
foreach (var detail in group.ToList())
|
||||
{
|
||||
summaryItem.明細.Add(detail);
|
||||
}
|
||||
result.Add(summaryItem);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///領據 資料集合類別
|
||||
///</summary>
|
||||
public partial class 領據List : List<領據Item>
|
||||
{
|
||||
// 有另外加上去的屬性及方法,請加在這裡
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///個人費用彙整表 資料集合類別
|
||||
///</summary>
|
||||
public partial class 個人費用彙整表List : List<個人費用彙整表Item>, IDataList
|
||||
{
|
||||
public void Fill(DbDataReader reader)
|
||||
{
|
||||
DAC.FillData<個人費用彙整表Item>(reader, this);
|
||||
}
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///扣繳明細 資料集合類別
|
||||
///</summary>
|
||||
public partial class 扣繳明細List : List<扣繳明細Item>, IDataList
|
||||
{
|
||||
public void Fill(DbDataReader reader)
|
||||
{
|
||||
DAC.FillData<扣繳明細Item>(reader, this);
|
||||
}
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///個人費用彙整表 資料紀錄類別
|
||||
///</summary>
|
||||
[Serializable]
|
||||
public partial class 個人費用彙整表Item : DataItemBase
|
||||
{
|
||||
/// <summary>講師/非講師編號 (用於內部查詢)</summary>
|
||||
public string 講師_非講師編號 { get; set; }
|
||||
|
||||
/// <summary>領款人姓名</summary>
|
||||
public string 領款人姓名 { get; set; }
|
||||
|
||||
/// <summary>活動日期 (用於查詢付款設定)</summary>
|
||||
public DateTime? 活動日期 { get; set; }
|
||||
|
||||
/// <summary>身分證字號</summary>
|
||||
public string 身分證字號 { get; set; }
|
||||
|
||||
/// <summary>堂數 (數量)</summary>
|
||||
[DataObjectField(false)]
|
||||
public int 堂數 { get; set; }
|
||||
|
||||
/// <summary>付款金額</summary>
|
||||
[DataObjectField(false)]
|
||||
public int 付款金額 { get; set; }
|
||||
|
||||
/// <summary>扣繳類別</summary>
|
||||
[DataObjectField(false)]
|
||||
public string 扣繳類別 { get; set; }
|
||||
|
||||
/// <summary>扣繳類別名稱 (顯示用)</summary>
|
||||
[DataObjectField(false)]
|
||||
public string 扣繳類別名稱 { get; set; }
|
||||
|
||||
/// <summary>帳戶名</summary>
|
||||
[DataObjectField(false)]
|
||||
public string 帳戶名 { get; set; }
|
||||
|
||||
/// <summary>匯款帳號</summary>
|
||||
[DataObjectField(false)]
|
||||
public string 匯款帳號 { get; set; }
|
||||
|
||||
/// <summary>銀行分行代碼</summary>
|
||||
[DataObjectField(false)]
|
||||
public string 銀行分行代碼 { get; set; }
|
||||
|
||||
/// <summary>銀行分行</summary>
|
||||
[DataObjectField(false)]
|
||||
public string 銀行分行 { get; set; }
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///領據 資料紀錄類別
|
||||
///</summary>
|
||||
public partial class 領據Item
|
||||
{
|
||||
// 有另外加上去的屬性及方法,請加在這裡
|
||||
public bool 已關帳 { get { return string.Compare(PublicVariable.領據關帳年月, string.Format("{0:yyyy-MM}", 活動日期)) >= 0; } }
|
||||
public string DB_CRUSR_NAME { get; set; }
|
||||
public string DB_TRUSR_NAME { get; set; }
|
||||
public string 勞務費_編號 { get; set; }
|
||||
public string 勞務費_費用別 { get; set; }
|
||||
public int? 勞務費_單價 { get; set; }
|
||||
public decimal? 勞務費_數量 { get; set; }
|
||||
public string 勞務費_單位 { get; set; }
|
||||
public string 勞務費_扣繳類別 { get; set; }
|
||||
public string 勞務費_扣繳類別名稱 { get; set; }
|
||||
public int? 勞務費_合計金額 { get; set; }
|
||||
public int? 勞務費_應扣繳稅額 { get; set; }
|
||||
public int? 勞務費_服務費 { get; set; }
|
||||
public int? 勞務費_作廢 { get; set; }
|
||||
public string 差旅費_編號 { get; set; }
|
||||
public string 差旅費_票價資訊 { get; set; }
|
||||
public string 差旅費_費用別 { get; set; }
|
||||
public string 差旅費_起點 { get; set; }
|
||||
public string 差旅費_訖點 { get; set; }
|
||||
public int? 差旅費_捷運公車 { get; set; }
|
||||
public int? 差旅費_火車 { get; set; }
|
||||
public int? 差旅費_計程車 { get; set; }
|
||||
public int? 差旅費_高鐵飛機 { get; set; }
|
||||
public int? 差旅費_自行開車 { get; set; }
|
||||
public int? 差旅費_過路費停車費 { get; set; }
|
||||
public int? 差旅費_住宿費 { get; set; }
|
||||
public int? 差旅費_合計 { get; set; }
|
||||
public int? 差旅費_作廢 { get; set; }
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///扣繳明細 資料紀錄類別
|
||||
///</summary>
|
||||
[Serializable]
|
||||
public partial class 扣繳匯總Item : DataItemBase
|
||||
{
|
||||
public string 講師_非講師編號 { get; set; }
|
||||
public string 領款人姓名 { get; set; }
|
||||
public string 身分證字號 { get; set; }
|
||||
public string 戶籍地址 { get; set; }
|
||||
public string 電子郵件 { get; set; }
|
||||
public string 扣繳類別 { get; set; }
|
||||
public string 扣繳類別名稱 { get; set; }
|
||||
public int 應扣繳稅額合計 { get; set; }
|
||||
public int 服務費合計 { get; set; }
|
||||
public int 講師勞務費合計 { get; set; }
|
||||
public List<扣繳明細Item> 明細 { get; set; }
|
||||
public 扣繳匯總Item()
|
||||
{
|
||||
明細 = new List<扣繳明細Item>();
|
||||
}
|
||||
}
|
||||
|
||||
public partial class 扣繳匯總郵件Item : DataItemBase
|
||||
{
|
||||
public string 收件人姓名 { get; set; }
|
||||
public string 收件人郵箱 { get; set; }
|
||||
public string 主旨 { get; set; }
|
||||
public string 內文 { get; set; }
|
||||
public List<扣繳明細Item> 明細 { get; set; }
|
||||
public int 講師勞務費合計 { get; set; }
|
||||
public int 應扣繳稅額合計 { get; set; }
|
||||
public int 服務費合計 { get; set; }
|
||||
public 扣繳匯總郵件Item()
|
||||
{
|
||||
明細 = new List<扣繳明細Item>();
|
||||
}
|
||||
}
|
||||
|
||||
public class 扣繳明細Item : DataItemBase
|
||||
{
|
||||
public int 編號 { get; set; }
|
||||
public string 講師_非講師編號 { get; set; }
|
||||
public string 領款人姓名 { get; set; }
|
||||
public string 身分證字號 { get; set; }
|
||||
public string 身分別 { get; set; }
|
||||
public string 戶籍地址 { get; set; }
|
||||
public string 電子郵件 { get; set; }
|
||||
public string 活動日期 { get; set; }
|
||||
public string 計畫代號 { get; set; }
|
||||
public string 活動名稱事由 { get; set; }
|
||||
public string 扣繳類別 { get; set; }
|
||||
public string 扣繳類別名稱 { get; set; }
|
||||
public string 憑證類別 { get; set; }
|
||||
public string 領據編號 { get; set; }
|
||||
public string 費用別 { get; set; }
|
||||
public int 單價 { get; set; }
|
||||
public decimal 數量 { get; set; }
|
||||
public string 單位 { get; set; }
|
||||
public int 講師勞務費 { get; set; }
|
||||
public int 應扣繳稅額 { get; set; }
|
||||
public int 服務費 { get; set; }
|
||||
public string 郵件已發送 { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user