// 修改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 } }
/// <summary> /// 新增VDS_VDM_CONTRACT_MST基本檔資料 /// </summary> /// <param name="ParameterList">合約主檔 /// <param name="ArrList">年度獎勵金 /// <param name="ds">店群門市、單品、獎勵金、目標級距 /// <param name="isResume">是否為新增履歷 public void CreateVendorAgm(ArrayList ParameterList, ArrayList ArrList, DataSet ds, DbTransaction RootDBT, bool isResume, out string V_CNT_NO) { //新增順序: 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(目標級距) bool IsRootTranscation = false; DataTable dt1 = ds.Tables["Table_1"];//VDS_VDM_CONTRACT_STORE DataTable dt2 = ds.Tables["Table_2"];//VDS_VDM_CONTRACT_ITEM DataTable dt3 = ds.Tables["Table_3"];//VDS_VDM_CONTRACT_TARGET DataTable dt4 = ds.Tables["Table_4"];//VDS_VDM_CONTRACT_STORE DataTable dt5 = ds.Tables["Table_5"];//VDS_VDM_TARGET_RANGE DataTable dt6 = ds.Tables["Table_6"];//VDS_VDM_CONTRACT_STORE DataTable dtSUBSIDY2 = ds.Tables["Table_SUBSIDY2"];//VDS_VDM_CONTRACT_STORE 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, N_EDIT_NO; //string V_CNT_NO; //先新增VDS_VDM_CONTRACT_MST合約主檔取得合約編號,以便傳給店群、單品 if (isResume) { dbo.doCreate_VDS_VDM_CONTRACT_MST_Resume(ParameterList, DBT, out N_ID); V_CNT_NO = ParameterList[24].ToString(); N_EDIT_NO = Convert.ToInt16(ParameterList[1]); } else { dbo.doCreate_VDS_VDM_CONTRACT_MST(ParameterList, DBT, out N_ID, out V_CNT_NO); N_EDIT_NO = 1; } int P_ID = N_ID; //新增合約主檔傳回的ID ArrayList arrayList = new ArrayList(); for (int i = 0; i <= dt1.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(獎勵金) 才會有值,其他的給0 arrayList.Add(dt1.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt1.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt1.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[21]);//D_CREATEDATE arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[22]);//V_UPDATEUID arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID 新增合約主檔傳回的ID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } for (int i = 0; i <= dt2.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(dt2.Rows[i]["ITEM"].ToString());//V_ITEM arrayList.Add(dt2.Rows[i]["PERIOD_B"].ToString());//V_PERIOD_B arrayList.Add(dt2.Rows[i]["PERIOD_E"].ToString());//V_PERIOD_E arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(ParameterList[22]);//V_UPDATEUID arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[21]);//D_CREATEDATE arrayList.Add(P_ID);//N_PID dbo.doCreate_VDS_VDM_CONTRACT_ITEM(arrayList, DBT, out N_ID); } for (int i = 0; i <= dt3.Rows.Count - 1; i++) //獎勵金 { 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);//ACCEPT_AMT else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["ACCEPT_AMT"])); if (dt3.Rows[i]["RETURN_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//RETURN_AMT else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["RETURN_AMT"])); if (dt3.Rows[i]["ACCEPT_RATE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//ACCEPT_RATE else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["ACCEPT_RATE"])); if (dt3.Rows[i]["RETURN_RATE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//RETURN_RATE else arrayList.Add(Convert.ToDouble(dt3.Rows[i]["RETURN_RATE"])); if (dt3.Rows[i]["PAY_TYPE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//PAY_TYPE else arrayList.Add(Convert.ToUInt32(dt3.Rows[i]["PAY_TYPE"])); if (dt3.Rows[i]["TARGET_RULE"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//TARGET_RULE else arrayList.Add(Convert.ToUInt32(dt3.Rows[i]["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[22]);//V_UPDATEUID arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[21]);//D_CREATEDATE dbo.doCreate_VDS_VDM_CONTRACT_TARGET(arrayList, DBT, out N_ID); P_ID = N_ID; foreach (DataRow dr in dt4.Rows) 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[21]);//D_CREATEDATE arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[22]);//V_UPDATEUID arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID 新增合約主檔傳回的ID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } } //先新增VDS_VDM_CONTRACT_ANUAL年度獎勵金取得合約編號及ID,以便傳給店群、目標級距 dbo.doCreate_VDS_VDM_CONTRACT_ANNUAL(V_CNT_NO, ArrList, DBT, out N_ID); P_ID = N_ID; //新增年度獎勵金傳回的ID for (int i = 0; i <= dt5.Rows.Count - 1; i++) //目標級距 { arrayList.Clear(); arrayList.Add(P_ID);//N_PID if (dt5.Rows[i]["TARGET_AMT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//ACCEPT_AMT else arrayList.Add(Convert.ToDouble(dt5.Rows[i]["TARGET_AMT"])); if (dt5.Rows[i]["YEAR_TARGET_PERCENT"].ToString().Length == 0) arrayList.Add(System.DBNull.Value);//ACCEPT_AMT else arrayList.Add(Convert.ToDouble(dt5.Rows[i]["YEAR_TARGET_PERCENT"])); arrayList.Add(ParameterList[22]);//V_UPDATEUID arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[21]);//D_CREATEDATE dbo.doCreate_VDS_VDM_TARGET_RANGE(arrayList, DBT, out N_ID); } for (int i = 0; i <= dt6.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(獎勵金) 才會有值,其他給0 arrayList.Add(dt6.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dt6.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(dt6.Rows[i]["STORE"].ToString());//V_STORE arrayList.Add(ParameterList[21]);//D_CREATEDATE arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[22]);//V_UPDATEUID arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID 新增年度獎勵金傳回的ID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } //油價補貼 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[25]); //N_SUBSIDY_TYPE number, arrayList.Add(ParameterList[26]); //N_COUNT_TYPE number, arrayList.Add(ParameterList[28]); //N_PAY_TYPE number, arrayList.Add(ParameterList[27]); //N_SUBSIDY_RATE number, arrayList.Add(ParameterList[22]); //V_UPDATEUID varchar2, arrayList.Add(ParameterList[23]); //D_UPDATEDATE date, arrayList.Add(ParameterList[20]); //V_CREATEUID varchar2, arrayList.Add(ParameterList[21]); //D_CREATEDATE date, arrayList.Add(ParameterList[29]); //V_SUBSIDY_RULE varchar2 dbo.doCreate_VDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT, out N_ID); //離島配送費 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[30]); //N_COUNT_TYPE number, arrayList.Add(ParameterList[32]); //N_PAY_TYPE number, arrayList.Add(ParameterList[31]); //N_SUBSIDY_RATE number, arrayList.Add(ParameterList[22]); //V_UPDATEUID varchar2, arrayList.Add(ParameterList[23]); //D_UPDATEDATE date, arrayList.Add(ParameterList[20]); //V_CREATEUID varchar2, arrayList.Add(ParameterList[21]); //D_CREATEDATE date, arrayList.Add(ParameterList[33]); //V_SUBSIDY_RULE varchar2 dbo.doCreate_VDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT, out N_ID); //離島配送費 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[34]); //N_COUNT_TYPE number, arrayList.Add(DBNull.Value); //N_PAY_TYPE number, arrayList.Add(DBNull.Value); //N_SUBSIDY_RATE number, arrayList.Add(ParameterList[22]); //V_UPDATEUID varchar2, arrayList.Add(ParameterList[23]); //D_UPDATEDATE date, arrayList.Add(ParameterList[20]); //V_CREATEUID varchar2, arrayList.Add(ParameterList[21]); //D_CREATEDATE date, arrayList.Add(DBNull.Value); //V_SUBSIDY_RULE varchar2 dbo.doCreate_VDS_VDM_CONTRACT_SUBSIDY(arrayList, DBT, out N_ID); for (int i = 0; i <= dtSUBSIDY2.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(獎勵金) 才會有值,其他給0 arrayList.Add(dtSUBSIDY2.Rows[i]["COUNT_TYPE"].ToString());//V_COUNT_TYPE arrayList.Add(dtSUBSIDY2.Rows[i]["STORE_GROUP"].ToString());//V_STORE_GROUP arrayList.Add(DBNull.Value);//V_STORE arrayList.Add(ParameterList[21]);//D_CREATEDATE arrayList.Add(ParameterList[20]);//V_CREATEUID arrayList.Add(ParameterList[22]);//V_UPDATEUID arrayList.Add(ParameterList[23]);//D_UPDATEDATE arrayList.Add(P_ID);//N_PID 新增年度獎勵金傳回的ID dbo.doCreate_VDS_VDM_CONTRACT_STORE(arrayList, DBT, out N_ID); } #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 } }