public void UpdateGiftProfile_2(string UserID, string UpdateDate, int accept_days, int out_days, ArrayList ParameterList, DbTransaction RootDBT) { DBO.MaintainAcceptDBO dbo = new DBO.MaintainAcceptDBO(ref USEDB); bool IsRootTranscation = false; try { //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion ArrayList SQLParameters = new ArrayList(); SQLParameters.Clear(); SQLParameters.Add(UserID); //0 string SQLParameters.Add(UpdateDate); //1 string SQLParameters.Add(ParameterList[0]); //2 string SQLParameters.Add(ParameterList[1]); //3 string SQLParameters.Add(ParameterList[2]); //4 string SQLParameters.Add(ParameterList[3]); //5 int 一包裝數 SQLParameters.Add(ParameterList[4]); //6 double 3-10 共八個都是 double (SIZE) SQLParameters.Add(ParameterList[5]); //7 double SQLParameters.Add(ParameterList[6]); //8 double SQLParameters.Add(ParameterList[7]); //9 double SQLParameters.Add(ParameterList[8]); //10 double SQLParameters.Add(ParameterList[9]); //11 double SQLParameters.Add(ParameterList[10]); //12 double SQLParameters.Add(ParameterList[11]); //13 double SQLParameters.Add(ParameterList[12]); //14 string SQLParameters.Add(ParameterList[13]); //15 int SQLParameters.Add(accept_days); //16 int SQLParameters.Add(out_days); //17 int dbo.UpdateMktGiftProfile_2(SQLParameters, DBT); } catch (Exception ex) { #region 交易失敗 if (IsRootTranscation) { //獨立呼叫Transcation失敗 DBT.Rollback(); } #endregion throw ex; } }
public bool UpdateAccept_2(ArrayList ParameterList, DataTable dtDetls, DataTable dtGifts, DbTransaction RootDBT, out string Statue, out string ErrorItem, out string ErrMsg) { bool IsRootTranscation = false; ErrorItem = string.Empty; Statue = string.Empty; ErrMsg = string.Empty; int ID = -1; int PID = -1; string Result = ""; try { string UserID = ParameterList[0].ToString(); string UpdateDate = ParameterList[1].ToString(); string AcceptNo = ParameterList[2].ToString(); string AcceptDate = ParameterList[3].ToString(); string PurchaseNo = ParameterList[4].ToString(); string WaybillNo = ParameterList[5].ToString(); string InvoiceNo = ParameterList[6].ToString(); string TaxAmt = ParameterList[7].ToString(); string UtaxAmt = ParameterList[8].ToString(); string Tax = ParameterList[9].ToString(); DBO.MaintainAcceptDBO VGIDBO = new DBO.MaintainAcceptDBO(ref USEDB); DBO.MaintainAcceptQualityCheck VGIQC = new DBO.MaintainAcceptQualityCheck(strConn); PURDBO.MaintainGoodsInTransit PURDB = new PURDBO.MaintainGoodsInTransit(strConn); IVMDBO.MaintainStockInOut IVMDB = new IVMDBO.MaintainStockInOut(strConn); //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion ArrayList InsertParameter = new ArrayList(); #region 商品明細 //barcode //item //period //purchase_Qty //In_Date //TAcc_Qty //Acc_Qty //Cost //Price //Package_Unit //S_Weight //S_Length //S_Width //S_Height //P_Weight //P_Length //P_Width //P_Height //Product_Source //Produce_Date //Reserved_Period //Valid_Date //AllowAccept_Date //Old_Qty //RowState for (int i = 0; i < dtDetls.Rows.Count; i++) { int DetlID = -1; string Barcode = dtDetls.Rows[i]["barcode"].ToString(); string Item = dtDetls.Rows[i]["item"].ToString(); string Period = dtDetls.Rows[i]["period"].ToString(); string In_Date = dtDetls.Rows[i]["In_Date"].ToString(); string PurchaseQty = dtDetls.Rows[i]["purchase_Qty"].ToString(); string TotalAcceptQty = dtDetls.Rows[i]["TAcc_Qty"].ToString(); string AcceptQty = dtDetls.Rows[i]["Acc_Qty"].ToString(); string OLDQty = dtDetls.Rows[i]["Old_Qty"].ToString(); string DFlag = dtDetls.Rows[i]["RowState"].ToString(); int accept_days = -1; int out_days = -1; //寫入明細檔資料,逐筆寫入 InsertParameter.Clear(); InsertParameter.Add(UserID); InsertParameter.Add(UpdateDate); InsertParameter.Add(AcceptNo); InsertParameter.Add(Barcode); //BarCode InsertParameter.Add(Item); //Item InsertParameter.Add(Period); //Period InsertParameter.Add(AcceptQty); //NewQty InsertParameter.Add(dtDetls.Rows[i]["Cost"].ToString()); //Cost InsertParameter.Add(dtDetls.Rows[i]["Price"].ToString()); //Price InsertParameter.Add(dtDetls.Rows[i]["Package_Unit"].ToString()); //Package_Unit InsertParameter.Add(dtDetls.Rows[i]["S_Weight"].ToString()); //S_Weight InsertParameter.Add(dtDetls.Rows[i]["S_Length"].ToString()); //S_Length InsertParameter.Add(dtDetls.Rows[i]["S_Width"].ToString()); //S_Width InsertParameter.Add(dtDetls.Rows[i]["S_Height"].ToString()); //S_Height InsertParameter.Add(dtDetls.Rows[i]["P_Weight"].ToString()); //P_Weight InsertParameter.Add(dtDetls.Rows[i]["P_Length"].ToString()); //P_Length InsertParameter.Add(dtDetls.Rows[i]["P_Width"].ToString()); //P_Width InsertParameter.Add(dtDetls.Rows[i]["P_Height"].ToString()); //P_Height InsertParameter.Add(dtDetls.Rows[i]["Product_Source"].ToString()); //Product_Source InsertParameter.Add(dtDetls.Rows[i]["Produce_Date"].ToString()); //Produce_Date InsertParameter.Add(dtDetls.Rows[i]["Reserved_Period"].ToString()); //Reserved_Period InsertParameter.Add(dtDetls.Rows[i]["Valid_Date"].ToString()); //Valid_Date InsertParameter.Add(dtDetls.Rows[i]["AllowAccept_Date"].ToString());//AllowAccept_Date InsertParameter.Add(DFlag); //23.FLAG InsertParameter.Add(dtDetls.Rows[i]["UPDATEDATE"]); //OLD UPDATEDATE InsertParameter.Add(dtDetls.Rows[i]["UPDATEUID"]); //OLD UPDATEUID VGIDBO.UpdateAcceptDetl_2(InsertParameter, DBT, out DetlID); //依傳入的明細資料集參數,將正常品資料回寫生效中(enable=1)的商品屬性檔(VDS_ITM_PERIOD_PROFILE)的下列欄位 InsertParameter.Clear(); InsertParameter.Add(Item); InsertParameter.Add(Period); InsertParameter.Add(dtDetls.Rows[i]["Package_Unit"].ToString()); //Package_Unit InsertParameter.Add(dtDetls.Rows[i]["S_Weight"].ToString()); //S_Weight InsertParameter.Add(dtDetls.Rows[i]["S_Length"].ToString()); //S_Length InsertParameter.Add(dtDetls.Rows[i]["S_Width"].ToString()); //S_Width InsertParameter.Add(dtDetls.Rows[i]["S_Height"].ToString()); //S_Height InsertParameter.Add(dtDetls.Rows[i]["P_Weight"].ToString()); //P_Weight InsertParameter.Add(dtDetls.Rows[i]["P_Length"].ToString()); //P_Length InsertParameter.Add(dtDetls.Rows[i]["P_Width"].ToString()); //P_Width InsertParameter.Add(dtDetls.Rows[i]["P_Height"].ToString()); //P_Height InsertParameter.Add(AcceptDate); InsertParameter.Add(AcceptQty); //NewQty InsertParameter.Add(dtDetls.Rows[i]["Valid_Date"].ToString()); //Valid_Date InsertParameter.Add(dtDetls.Rows[i]["AllowAccept_Date"].ToString());//AllowAccept_Date //23.FLAG //24 OldQty UpdateItmPeriodProfile_2(UserID, UpdateDate, InsertParameter, DBT, out accept_days, out out_days); #region 贈品明細 //Barcode 商品條碼 //Item 品號 //Period 期別 //Virtual_Code 虛擬品號 //purchase_Qty 採購數量 //GiftName //Accept_Qty 驗收數量 //accept_accqty 總驗收數 //Old_Qty 驗收數量(原始) //SQty 剩餘數量 //Package_Unit 1包裝數 //S_Weight 單品重量 //S_Length 單品長度 //S_Width 單品寬度 //S_Height 單品高度 //P_Weight 包裝重量 //P_Length 包裝長度 //P_Width 包裝寬度 //P_Height 包裝高度 //UPDATEUID //UPDATEDATE //RowState "U"; if (DFlag == "U") { //更新贈品明細 for (int x = 0; x < dtGifts.Rows.Count; x++) { string GiftBarcode = dtGifts.Rows[x]["Barcode"].ToString(); string GiftItem = dtGifts.Rows[x]["Item"].ToString(); string GiftPeriod = dtGifts.Rows[x]["Period"].ToString(); string GiftVirtualCode = dtGifts.Rows[x]["Virtual_Code"].ToString(); string GFlag = dtGifts.Rows[x]["RowState"].ToString(); string GiftTotalAcceptQty = dtGifts.Rows[x]["accept_accqty"].ToString(); string GiftAcceptQty = dtGifts.Rows[x]["Accept_Qty"].ToString(); string GiftAcceptQty_Old = dtGifts.Rows[x]["Old_Qty"].ToString(); string GiftPurchaseQty = dtGifts.Rows[x]["purchase_Qty"].ToString(); if (Barcode == GiftBarcode && Item == GiftItem && Period == GiftPeriod) { InsertParameter.Clear(); InsertParameter.Add(UserID); //0 InsertParameter.Add(UpdateDate); //1 InsertParameter.Add(DetlID); //2 InsertParameter.Add(dtGifts.Rows[x]["Barcode"].ToString()); //3 Barcode InsertParameter.Add(GiftItem); //4 Item InsertParameter.Add(GiftPeriod); //5 Period InsertParameter.Add(GiftVirtualCode); //6 VirtualCode InsertParameter.Add(AcceptNo); //7 InsertParameter.Add(dtGifts.Rows[x]["purchase_Qty"].ToString());//8 PurchaseQty InsertParameter.Add(dtGifts.Rows[x]["Accept_Qty"].ToString()); //9 AcceptQty InsertParameter.Add(dtGifts.Rows[x]["Package_Unit"].ToString());//10 PackageUnit InsertParameter.Add(dtGifts.Rows[x]["S_Weight"].ToString()); //11 SWeight InsertParameter.Add(dtGifts.Rows[x]["S_Length"].ToString()); //12 SLength InsertParameter.Add(dtGifts.Rows[x]["S_Width"].ToString()); //13 SWidth InsertParameter.Add(dtGifts.Rows[x]["S_Height"].ToString()); //14 SHeigh InsertParameter.Add(dtGifts.Rows[x]["P_Weight"].ToString()); //15 PWeight InsertParameter.Add(dtGifts.Rows[x]["P_Length"].ToString()); //16 PLength InsertParameter.Add(dtGifts.Rows[x]["P_Width"].ToString()); //17 PWidth InsertParameter.Add(dtGifts.Rows[x]["P_Height"].ToString()); //18 PHeigh InsertParameter.Add(dtGifts.Rows[x]["RowState"].ToString()); //19 RowState InsertParameter.Add(dtGifts.Rows[x]["UPDATEDATE"]); //20 OLD UPDATEDATE InsertParameter.Add(dtGifts.Rows[x]["UPDATEUID"]); //21 OLD UPDATEUID VGIDBO.UpdateAcceptGift_2(InsertParameter, DBT); if (GFlag == "U") { //依傳入的贈品明細資料集參數,將贈品資料回寫贈品屬性檔(VDS_MKT_GIFT_PROFILE)的下列欄位 InsertParameter.Clear(); InsertParameter.Add(UserID); //0 InsertParameter.Add(UpdateDate); //1 InsertParameter.Add(GiftItem); //2 Item InsertParameter.Add(GiftPeriod); //3 Period InsertParameter.Add(GiftVirtualCode); //4 VirtualCode InsertParameter.Add(dtGifts.Rows[x]["Package_Unit"].ToString());//5 PackageUnit InsertParameter.Add(dtGifts.Rows[x]["S_Weight"].ToString()); //6 SWeight InsertParameter.Add(dtGifts.Rows[x]["S_Length"].ToString()); //7 SLength InsertParameter.Add(dtGifts.Rows[x]["S_Width"].ToString()); //8 SWidth InsertParameter.Add(dtGifts.Rows[x]["S_Height"].ToString()); //9 SHeigh InsertParameter.Add(dtGifts.Rows[x]["P_Weight"].ToString()); //10 PWeight InsertParameter.Add(dtGifts.Rows[x]["P_Length"].ToString()); //11 PLength InsertParameter.Add(dtGifts.Rows[x]["P_Width"].ToString()); //12 PWidth InsertParameter.Add(dtGifts.Rows[x]["P_Height"].ToString()); //13 PHeigh InsertParameter.Add(AcceptDate); //14 InsertParameter.Add(dtGifts.Rows[x]["Accept_Qty"].ToString()); //15 accept_qty InsertParameter.Add(accept_days); //16 InsertParameter.Add(out_days); //17 DBO.MaintainAcceptDBO dbo = new DBO.MaintainAcceptDBO(ref USEDB); dbo.UpdateMktGiftProfile_2(InsertParameter, DBT); } } } } #endregion } #endregion #region 交易成功 if (IsRootTranscation) { //獨立呼叫Transcation成立 DBT.Commit(); } #endregion return true; } 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 } }