// 修改VDS_VDM_CONTRACT_MST基本檔資料(VDM022審核確認、合約解除使用) public void UpdateVDM_Contract(ArrayList ParameterList, ArrayList ArrList, DataSet ds, DbTransaction RootDBT) { // 1. VDS_VDM_CONTRACT_MST(合約主檔) // 2. VDS_VDM_CONTRACT_STORE(店群門市 -- 補貼運費 --> 要使用合約主檔的ID) // 3. VDS_VDM_CONTRACT_ITEM(單品 -- 多筆) // 4. VDS_VDM_CONTRACT_TARGET(獎勵金 -- 多筆) // 5. VDS_VDM_CONTRACT_STORE(店群門市 -- 獎勵金 --> 要使用獎勵金的ID) // 6. VDS_VDM_CONTRACT_ANUAL(年度獎勵金) // 7. VDS_VDM_CONTRACT_STORE(店群門市 -- 年度獎勵金 --> 要使用年度獎勵金的ID) // 8. VDS_VDM_TARGET_RANGE(目標級距) //ds.Tables["Table_0"];//VDS_VDM_CONTRACT_MST //ds.Tables["Table_1"];//VDS_VDM_CONTRACT_STORE //ds.Tables["Table_2"];//VDS_VDM_CONTRACT_ITEM //ds.Tables["Table_3"];//VDS_VDM_CONTRACT_TARGET //ds.Tables["Table_4"];//VDS_VDM_CONTRACT_STORE //ds.Tables["Table_5"];//VDS_VDM_TARGET_RANGE //ds.Tables["Table_6"];//VDS_VDM_CONTRACT_STORE //ds.Tables["Table_7"];//VDS_VDM_CONTRACT_ANNUAL bool IsRootTranscation = false; try { DBO.VDM_VendorAgmDBO dbo = new VDM_VendorAgmDBO(ref USEDB); //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion int N_ID; dbo.UpdateVDS_VDM_CONTRACT_MST(ParameterList, DBT); //修改VDS_VDM_CONTRACT_MST合約主檔 dbo.UpdateVDS_VDM_CONTRACT_ANNUAL(ArrList, DBT); //修改VDS_VDM_CONTRACT_ANUAL年度獎勵金 int P_ID = Int32.Parse(ds.Tables["Table_0"].Rows[0]["ID"].ToString());//使用合約主檔現有的ID string V_CNT_NO = ds.Tables["Table_0"].Rows[0]["CNT_NO"].ToString();//因為都沒有動到DataSet,所以DataSet的資料就是原始資料 int N_EDIT_NO = Int32.Parse(ds.Tables["Table_0"].Rows[0]["EDIT_NO"].ToString()); #region 店群門市、單品 DataTable dt_i = ds.Tables["Table_1"].GetChanges(DataRowState.Added); DataTable dt_m = ds.Tables["Table_1"].GetChanges(DataRowState.Modified); DataTable dt_d = ds.Tables["Table_1"].GetChanges(DataRowState.Deleted); ArrayList arrayList = new ArrayList(); if (dt_i != null) { for (int i = 0; i <= dt_i.Rows.Count - 1; i++)//店群門市 -- 補貼運費 -> 新增 { arrayList.Clear(); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(0);//V_TARGET_NO 獎勵金對應編號,只有COUNT_TYPE=2(獎勵金) 才會有值 arrayList.Add(dt_i.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt_i.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt_i.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//D_CREATEDATE arrayList.Add(ParameterList[29]);//V_CREATEUID arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } dt_i.Clear(); } if (dt_m != null) { for (int i = 0; i <= dt_m.Rows.Count - 1; i++)//店群門市 -- 補貼運費 -> 修改 { arrayList.Clear(); arrayList.Add(dt_m.Rows[i]["ID"].ToString());//V_CNT_NO arrayList.Add(DateTime.Parse(dt_m.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_m.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_m.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_m.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(0);//V_TARGET_NO 獎勵金對應編號,只有COUNT_TYPE=2(獎勵金) 才會有值 arrayList.Add(dt_m.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt_m.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt_m.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_UPDATEDATE dbo.UpdateVDS_VDM_CONTRACT_STORE(arrayList, DBT); } dt_m.Clear(); } if (dt_d != null) { for (int i = 0; i <= dt_d.Rows.Count - 1; i++)//店群門市 -- 補貼運費 -> 刪除 { arrayList.Clear(); arrayList.Add(dt_d.Rows[i]["ID", DataRowVersion.Original].ToString());//N_ID arrayList.Add(DateTime.Parse(dt_d.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_d.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_d.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_d.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[28]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_UPDATEDATE dbo.DeleteVDS_VDM_CONTRACT_STORE(arrayList, DBT); } dt_d.Clear(); } dt_i = ds.Tables["Table_2"].GetChanges(DataRowState.Added); dt_m = ds.Tables["Table_2"].GetChanges(DataRowState.Modified); dt_d = ds.Tables["Table_2"].GetChanges(DataRowState.Deleted); if (dt_i != null) { for (int i = 0; i <= dt_i.Rows.Count - 1; i++)//單品 -- 補貼運費 -> 新增 { arrayList.Clear(); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(dt_i.Rows[i]["ITEM"].ToString());//V_ITEM arrayList.Add(dt_i.Rows[i]["PERIOD_B"].ToString());//V_PERIOD_B arrayList.Add(dt_i.Rows[i]["PERIOD_E"].ToString());//V_PERIOD_E arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_CREATEDATE arrayList.Add(ParameterList[28]);//V_CREATEUID arrayList.Add(P_ID);//N_PID dbo.doCreate_VDS_VDM_CONTRACT_ITEM(arrayList, DBT, out N_ID); } dt_i.Clear(); } if (dt_m != null) { for (int i = 0; i <= dt_m.Rows.Count - 1; i++)//單品 -- 補貼運費 -> 修改 { arrayList.Clear(); arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(dt_m.Rows[i]["ID"].ToString());//N_EDIT_NO 2009/11/30 改成ID(因原條件可能會有多筆的情況) arrayList.Add(DateTime.Parse(dt_m.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_m.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_m.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_m.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(dt_m.Rows[i]["ITEM"].ToString());//V_ITEM arrayList.Add(dt_m.Rows[i]["PERIOD_B"].ToString());//V_PERIOD_B arrayList.Add(dt_m.Rows[i]["PERIOD_E"].ToString());//V_PERIOD_E arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_UPDATEUID dbo.UpdateVDS_VDM_CONTRACT_ITEM(arrayList, DBT); } dt_m.Clear(); } if (dt_d != null) { for (int i = 0; i <= dt_d.Rows.Count - 1; i++)//單品 -- 補貼運費 -> 刪除 { arrayList.Clear(); arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(dt_d.Rows[i]["ID", DataRowVersion.Original].ToString());//N_EDIT_NO 2009/12/04 改成ID(因原條件可能會有多筆的情況) arrayList.Add(DateTime.Parse(dt_d.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString()));//V_ITEM arrayList.Add(dt_d.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString());//V_PERIOD_B arrayList.Add(dt_d.Rows[i]["CREATEUID", DataRowVersion.Original].ToString());//V_PERIOD_E arrayList.Add(DateTime.Parse(dt_d.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString()));//V_ITEM arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_UPDATEUID dbo.DeleteVDS_VDM_CONTRACT_ITEM(arrayList, DBT); } dt_d.Clear(); } #endregion #region 獎勵金、店群門市 //把舊資料全部移除 arrayList.Clear(); arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_UPDATEUID dbo.DeleteBath_VDS_VDM_CONTRACT_TARGET(arrayList, DBT); // VDS_VDM_CONTRACT_TARGET和VDS_VDM_CONTRACT_STORE DataTable dt3 = ds.Tables["Table_3"]; DataTable dt4 = ds.Tables["Table_4"]; for (int i = 0; i <= dt3.Rows.Count - 1; i++) //獎勵金全部新增 { if (dt3.Rows[i].RowState != DataRowState.Deleted) { arrayList.Clear(); arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(Convert.ToUInt32(dt3.Rows[i]["TARGET_TYPE"]));//N_TARGET_TYPE arrayList.Add(ParameterList[0]);//V_VENDOR_CODE if (dt3.Rows[i]["ACCEPT_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value); else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["ACCEPT_AMT"]));//N_ACCEPT_AMT if (dt3.Rows[i]["RETURN_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value); else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["RETURN_AMT"]));//N_RETURN_AMT if (dt3.Rows[i]["ACCEPT_RATE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value); else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["ACCEPT_RATE"]));//N_ACCEPT_RATE if (dt3.Rows[i]["RETURN_RATE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value); else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["RETURN_RATE"]));//N_RETURN_RATE if (dt3.Rows[i]["PAY_TYPE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value); else arrayList.Add(Convert.ToUInt32(dt3.Rows[i]["PAY_TYPE"]));//N_PAY_TYPE if (dt3.Rows[i]["TARGET_RULE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value); else arrayList.Add(Convert.ToUInt32(dt3.Rows[i]["TARGET_RULE"]));//N_TARGET_RULE arrayList.Add(dt3.Rows[i]["NOTES"].ToString());//V_NOTES if (dt3.Rows[i]["MIN_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//N_MIN_AMT else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["MIN_AMT"])); arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_CREATEUID arrayList.Add(ParameterList[28]);//D_CREATEDATE dbo.doCreate_VDS_VDM_CONTRACT_TARGET(arrayList, DBT, out N_ID); P_ID = N_ID; if (dt4 != null) foreach (DataRow dr in dt4.Rows) if (dr.RowState != DataRowState.Deleted) { if (dt3.Rows[i]["ID"].ToString() == dr["PID"].ToString()) { arrayList.Clear(); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(dr["TARGET_NO"].ToString());//V_TARGET_NO 獎勵金對應編號 arrayList.Add(dr["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dr["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dr["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//D_CREATEDATE arrayList.Add(ParameterList[29]);//V_CREATEUID arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID 新增獎勵金傳回的ID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } } DataRow[] drs = ds.Tables["Table_3"].Select("ID='" + dt3.Rows[i]["ID"].ToString() + "'"); drs[0]["ID"] = P_ID; } } #endregion #region 年度獎勵金、目標級距、店群門市 P_ID = Int32.Parse(ds.Tables["Table_7"].Rows[0]["ID"].ToString()); //年度獎勵金的ID dt_i = ds.Tables["Table_5"].GetChanges(DataRowState.Added); dt_m = ds.Tables["Table_5"].GetChanges(DataRowState.Modified); dt_d = ds.Tables["Table_5"].GetChanges(DataRowState.Deleted); if (dt_i != null) { for (int i = 0; i <= dt_i.Rows.Count - 1; i++) //目標級距 -> 新增 { arrayList.Clear(); arrayList.Add(P_ID);//N_PID if (dt_i.Rows[i]["TARGET_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//N_TARGET_AMT else arrayList.Add(Convert.ToDouble(dt_i.Rows[i]["TARGET_AMT"])); if (dt_i.Rows[i]["YEAR_TARGET_PERCENT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//YEAR_TARGET_PERCENT else arrayList.Add(Convert.ToDouble(dt_i.Rows[i]["YEAR_TARGET_PERCENT"])); arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_CREATEUID arrayList.Add(ParameterList[28]);//D_CREATEDATE dbo.doCreate_VDS_VDM_TARGET_RANGE(arrayList, DBT, out N_ID); } dt_i.Clear(); } if (dt_m != null) { for (int i = 0; i <= dt_m.Rows.Count - 1; i++) //目標級距 -> 修改 { arrayList.Clear(); arrayList.Add(dt_m.Rows[i]["ID", DataRowVersion.Original].ToString());//N_PID arrayList.Add(dt_m.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_m.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_m.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_m.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); if (dt_m.Rows[i]["TARGET_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//N_TARGET_AMT else arrayList.Add(Convert.ToDouble(dt_m.Rows[i]["TARGET_AMT"])); if (dt_m.Rows[i]["YEAR_TARGET_PERCENT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//YEAR_TARGET_PERCENT else arrayList.Add(Convert.ToDouble(dt_m.Rows[i]["YEAR_TARGET_PERCENT"])); arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_UPDATEUID dbo.UpdateVDS_VDM_TARGET_RANGE(arrayList, DBT); } dt_m.Clear(); } if (dt_d != null) { for (int i = 0; i <= dt_d.Rows.Count - 1; i++) //目標級距 -> 刪除 { arrayList.Clear(); arrayList.Add(dt_d.Rows[i]["ID", DataRowVersion.Original].ToString());//N_PID arrayList.Add(dt_d.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_d.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_d.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_d.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(ParameterList[29]);//V_UPDATEUID dbo.DeleteVDS_VDM_TARGET_RANGE(arrayList, DBT); } dt_d.Clear(); } dt_i = ds.Tables["Table_6"].GetChanges(DataRowState.Added); dt_m = ds.Tables["Table_6"].GetChanges(DataRowState.Modified); dt_d = ds.Tables["Table_6"].GetChanges(DataRowState.Deleted); if (dt_i != null) { for (int i = 0; i <= dt_i.Rows.Count - 1; i++)//店群門市 -- 年度獎勵金 -> 新增 { arrayList.Clear(); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(0);//V_TARGET_NO 獎勵金對應編號,只有COUNT_TYPE=2(獎勵金) 才會有值 arrayList.Add(dt_i.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt_i.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt_i.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//D_CREATEDATE arrayList.Add(ParameterList[29]);//V_CREATEUID arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } dt_i.Clear(); } if (dt_m != null) { for (int i = 0; i <= dt_m.Rows.Count - 1; i++)//店群門市 -- 年度獎勵金 -> 修改 { arrayList.Clear(); arrayList.Add(dt_m.Rows[i]["ID"].ToString());//N_ID arrayList.Add(DateTime.Parse(dt_m.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_m.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_m.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_m.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(0);//V_TARGET_NO 獎勵金對應編號,只有COUNT_TYPE=2(獎勵金) 才會有值 arrayList.Add(dt_m.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt_m.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt_m.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_UPDATEDATE dbo.UpdateVDS_VDM_CONTRACT_STORE(arrayList, DBT); } dt_m.Clear(); } if (dt_d != null) { for (int i = 0; i <= dt_d.Rows.Count - 1; i++)//店群門市 -- 年度獎勵金 -> 刪除 { arrayList.Clear(); arrayList.Add(dt_d.Rows[i]["ID", DataRowVersion.Original].ToString());//N_ID arrayList.Add(DateTime.Parse(dt_d.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_d.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_d.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_d.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[28]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_UPDATEDATE dbo.DeleteVDS_VDM_CONTRACT_STORE(arrayList, DBT); } dt_d.Clear(); } #endregion //先把舊資料刪除再重新寫入 #region 油價補貼 異動 //刪除油價補貼(3&4) arrayList.Clear(); arrayList.Add(ParameterList[1]); //0.V_OLD_CNT_NO varchar2, arrayList.Add(ParameterList[2]); //1.N_OLD_EDIT_NO number, arrayList.Add(2); //2.N_OLD_SUBSIDY_TYPE number, arrayList.Add(ParameterList[6]); //3.V_OLD_UPDATEUID varchar2, arrayList.Add(ParameterList[5]); //4.D_OLD_UPDATEDATE date, arrayList.Add(ParameterList[28]); //5.D_NEW_UPDATEDATE date, arrayList.Add(ParameterList[29]); //6.V_NEW_UPDATEUID dbo.DeleteVDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT); arrayList.Clear(); arrayList.Add(ParameterList[1]); //V_OLD_CNT_NO varchar2, arrayList.Add(ParameterList[2]); //N_OLD_EDIT_NO number, arrayList.Add(3); //N_OLD_SUBSIDY_TYPE number, arrayList.Add(ParameterList[6]); //V_OLD_UPDATEUID varchar2, arrayList.Add(ParameterList[5]); //D_OLD_UPDATEDATE date, arrayList.Add(ParameterList[28]); //D_NEW_UPDATEDATE date, arrayList.Add(ParameterList[29]); //V_NEW_UPDATEUID dbo.DeleteVDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT); //新增油價補貼 arrayList.Clear(); arrayList.Add(V_CNT_NO); //V_CNT_NO varchar2, arrayList.Add(N_EDIT_NO); //N_EDIT_NO number, arrayList.Add(ParameterList[0]); //V_VENDOR_CODE varchar2, arrayList.Add(ParameterList[30]); //N_SUBSIDY_TYPE number, arrayList.Add(ParameterList[31]); //N_COUNT_TYPE number, arrayList.Add(ParameterList[33]); //N_PAY_TYPE number, arrayList.Add(ParameterList[32]); //N_SUBSIDY_RATE number, arrayList.Add(ParameterList[29]); //V_UPDATEUID varchar2, arrayList.Add(ParameterList[28]); //D_UPDATEDATE date, arrayList.Add(ParameterList[4]); //V_CREATEUID varchar2, arrayList.Add(ParameterList[3]); //D_CREATEDATE date, arrayList.Add(ParameterList[34]); //V_SUBSIDY_RULE varchar2 dbo.doCreate_VDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT, out N_ID); dt_i = ds.Tables["Table_SUBSIDY2"].GetChanges(DataRowState.Added); dt_m = ds.Tables["Table_SUBSIDY2"].GetChanges(DataRowState.Modified); dt_d = ds.Tables["Table_SUBSIDY2"].GetChanges(DataRowState.Deleted); if (dt_d != null) { for (int i = 0; i <= dt_d.Rows.Count - 1; i++)//店群門市 -- 補貼運費 -> 刪除 { arrayList.Clear(); arrayList.Add(dt_d.Rows[i]["ID", DataRowVersion.Original].ToString());//N_ID arrayList.Add(DateTime.Parse(dt_d.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_d.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_d.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_d.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[28]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_UPDATEDATE dbo.DeleteVDS_VDM_CONTRACT_STORE(arrayList, DBT); } dt_d.Clear(); } if (dt_i != null) { for (int i = 0; i <= dt_i.Rows.Count - 1; i++)//店群門市 -- 補貼運費 -> 新增 { arrayList.Clear(); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(0);//V_TARGET_NO 獎勵金對應編號,只有COUNT_TYPE=2(獎勵金) 才會有值 arrayList.Add(dt_i.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt_i.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt_i.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//D_CREATEDATE arrayList.Add(ParameterList[29]);//V_CREATEUID arrayList.Add(ParameterList[29]);//V_UPDATEUID arrayList.Add(ParameterList[28]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } dt_i.Clear(); } if (dt_m != null) { for (int i = 0; i <= dt_m.Rows.Count - 1; i++)//店群門市 -- 補貼運費 -> 修改 { arrayList.Clear(); arrayList.Add(dt_m.Rows[i]["ID"].ToString());//V_CNT_NO arrayList.Add(DateTime.Parse(dt_m.Rows[i]["CREATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(dt_m.Rows[i]["CREATEUID", DataRowVersion.Original].ToString()); arrayList.Add(dt_m.Rows[i]["UPDATEUID", DataRowVersion.Original].ToString()); arrayList.Add(DateTime.Parse(dt_m.Rows[i]["UPDATEDATE", DataRowVersion.Original].ToString())); arrayList.Add(ParameterList[0]);//V_VENDOR_CODE arrayList.Add(V_CNT_NO);//V_CNT_NO arrayList.Add(N_EDIT_NO);//N_EDIT_NO arrayList.Add(0);//V_TARGET_NO 獎勵金對應編號,只有COUNT_TYPE=2(獎勵金) 才會有值 arrayList.Add(dt_m.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt_m.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt_m.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[28]);//V_UPDATEUID arrayList.Add(ParameterList[29]);//D_UPDATEDATE dbo.UpdateVDS_VDM_CONTRACT_STORE(arrayList, DBT); } dt_m.Clear(); } #endregion #region 離島配送費 異動 //刪除離島配送費 arrayList.Clear(); arrayList.Add(ParameterList[1]); //V_OLD_CNT_NO varchar2, arrayList.Add(ParameterList[2]); //N_OLD_EDIT_NO number, arrayList.Add(1); //N_OLD_SUBSIDY_TYPE number, arrayList.Add(ParameterList[6]); //V_OLD_UPDATEUID varchar2, arrayList.Add(ParameterList[5]); //D_OLD_UPDATEDATE date, arrayList.Add(ParameterList[28]); //D_NEW_UPDATEDATE date, arrayList.Add(ParameterList[29]); //V_NEW_UPDATEUID dbo.DeleteVDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT); //新增離島配送費 arrayList.Clear(); arrayList.Add(V_CNT_NO); //V_CNT_NO varchar2, arrayList.Add(N_EDIT_NO); //N_EDIT_NO number, arrayList.Add(ParameterList[0]); //V_VENDOR_CODE varchar2, arrayList.Add(1); //N_SUBSIDY_TYPE number, arrayList.Add(ParameterList[35]); //N_COUNT_TYPE number, arrayList.Add(ParameterList[37]); //N_PAY_TYPE number, arrayList.Add(ParameterList[36]); //N_SUBSIDY_RATE number, arrayList.Add(ParameterList[29]); //V_UPDATEUID varchar2, arrayList.Add(ParameterList[28]); //D_UPDATEDATE date, arrayList.Add(ParameterList[4]); //V_CREATEUID varchar2, arrayList.Add(ParameterList[3]); //D_CREATEDATE date, arrayList.Add(ParameterList[38]); //V_SUBSIDY_RULE varchar2 dbo.doCreate_VDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT, out N_ID); #endregion #region 轉運費 異動 //刪除轉運費 arrayList.Clear(); arrayList.Add(ParameterList[1]); //V_OLD_CNT_NO varchar2, arrayList.Add(ParameterList[2]); //N_OLD_EDIT_NO number, arrayList.Add(4); //N_OLD_SUBSIDY_TYPE number, arrayList.Add(ParameterList[6]); //V_OLD_UPDATEUID varchar2, arrayList.Add(ParameterList[5]); //D_OLD_UPDATEDATE date, arrayList.Add(ParameterList[28]); //D_NEW_UPDATEDATE date, arrayList.Add(ParameterList[29]); //V_NEW_UPDATEUID dbo.DeleteVDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT); //新增轉運費 arrayList.Clear(); arrayList.Add(V_CNT_NO); //V_CNT_NO varchar2, arrayList.Add(N_EDIT_NO); //N_EDIT_NO number, arrayList.Add(ParameterList[0]); //V_VENDOR_CODE varchar2, arrayList.Add(4); //N_SUBSIDY_TYPE number, arrayList.Add(ParameterList[39]); //N_COUNT_TYPE number, arrayList.Add(DBNull.Value); //N_PAY_TYPE number, arrayList.Add(DBNull.Value); //N_SUBSIDY_RATE number, arrayList.Add(ParameterList[29]); //V_UPDATEUID varchar2, arrayList.Add(ParameterList[28]); //D_UPDATEDATE date, arrayList.Add(ParameterList[4]); //V_CREATEUID varchar2, arrayList.Add(ParameterList[3]); //D_CREATEDATE date, arrayList.Add(DBNull.Value); //V_SUBSIDY_RULE varchar2 dbo.doCreate_VDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT, out N_ID); #endregion #region 交易成功 if (IsRootTranscation) { //獨立呼叫Transcation成立 DBT.Commit(); } #endregion } catch (Exception ex) { #region 交易失敗 //if (IsRootTranscation) //{ //獨立呼叫Transcation失敗 DBT.Rollback(); //} #endregion throw ex; } finally { #region 判斷是否關閉交易連線 if (IsRootTranscation) { //獨立呼叫Transcation,關閉連線 if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } } #endregion } }