protected void Button1_Click(object sender, EventArgs e) { try { //POS_Library.ShopPos.ShipOut.testShipOut(); //訂單號碼 var ShipId = 123456; //出貨 傳票固定代入0 var Ticket = 0; //呼叫取得store 門市旗艦 = 6 var store = POS_Library.Public.Utility.GetStore(_areaId); //一般扣數不含展售 = 0 var pickType = (int)POS_Library.Public.Utility.ShipPDF.出貨; //如果是特殊扣數含展售 = 5 pickType = (int)POS_Library.Public.Utility.ShipPDF.出貨含展售; //銷售日期(看訂單) var Date = "2014-12-24"; ShipOutDA SO = new ShipOutDA(); //建立撿貨明細List List <TicketShelfTemp> ticketTemp = new List <TicketShelfTemp>(); //For迴圈建立明細----------------------------------- TicketShelfTemp detail = new TicketShelfTemp(); detail.Account = "test"; detail.GuestId = 1; detail.ShipId = ShipId.ToString(); detail.ShipoutDate = Date; //代入產品編號 detail.ProductId = "YA032-40"; //代入產品個數 detail.Quantity = 1; detail.Ticket = Ticket; detail.Store = POS_Library.Public.Utility.GetStore(_areaId); ticketTemp.Add(detail); //------------------------------------------------- //呼叫印單扣數結果 var temp = SO.PrintPickListsShelf(ticketTemp, ShipId, pickType, store, _areaId); } catch (Exception ex) { lbl_Message.Text = ex.Message; } }
/// <summary> /// Grid_RowCommand /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Grid_RowCommand(object sender, GridViewCommandEventArgs e) { try { string Id = e.CommandArgument.ToString(); if (!string.IsNullOrEmpty(Id)) { switch (e.CommandName) { case "Detail": //日期參數 SDay = DateTime.Parse(HandleStartDate); EDay = DateTime.Parse(HandleEndDate); WithoutDate = true; foreach (GridViewRow row in gv_List.Rows) { var tempID = GetCellByName(row, "出貨序號").Text; //判斷是否是按下按鈕的那一行 if (tempID == Id) { GridView gv_Detail = GetCellByName(row, "功能").FindControl("gv_Detail") as GridView; Panel P_Detail = GetCellByName(row, "功能").FindControl("P_Detail") as Panel; if (gv_Detail.Rows.Count == 0) { var temp1 = SO.GetOrderDetails(Id, SDay, EDay, WithoutDate).ToList(); int x = 1; var temp2 = (from i in temp1 select new { 序號 = x++, 型號 = i.ProductId, 條碼 = i.Barcode, 數量 = i.Quantity.ToString(), }).ToList(); gv_Detail.DataSource = temp2; gv_Detail.DataBind(); } P_Detail.Visible = !P_Detail.Visible; } } break; case "Print": foreach (GridViewRow row in gv_List.Rows) { var tempID = GetCellByName(row, "出貨序號").Text; //判斷是否是按下按鈕的那一行 if (tempID == Id) { var 發票號碼 = GetCellByName(row, "發票號碼").Text; var store = POS_Library.Public.Utility.GetStore(_areaId); var order = SO.ShipOut(int.Parse(Id), store); //印單不扣數 //var PrintPickListsShelf = SO.PickDetailCk(int.Parse(Id), (int)Utility.ShipPDF.出貨, store); //印單扣數 //order[0].TicketType存是否扣展售資訊 var PrintPickListsShelf = SO.PrintPickListsShelf(order, int.Parse(Id), order[0].TicketType, store, _areaId); //是否印撿貨單(2015-0813修改) if (SystemSettings.GetNeedPrintPickSheet() == true) { Print p = new Print(); p.PrintPickList(PrintPickListsShelf, 發票號碼, "交易明細(補印)"); } else { var SO2 = new POS_Library.ShopPos.ShipOutDA(); var MSListNewFinal = SO2.GetPerformanceSale(account, (int)POS_Library.Public.Utility.LogisticsType.撿貨, int.Parse(Id), _areaId); } } } break; } } else { lbl_Message.Text = "無資料!!"; } } catch (Exception ex) { lbl_Message.Text = "查詢錯誤!!" + ex.Message; } }
public bool PrintPickList(string OrderID, int pickType, string InvoiceNumberNow) { Log.Add(0, OrderID, OrderStep.ToString(), "OrderStep:2,發票列印完成", ClerkID, PosNo); bool result = false; string[] ItemNo = JsonConvert.DeserializeObject <string[]>(Request["ItemNoList"]); string[] color = JsonConvert.DeserializeObject <string[]>(Request["ColorList"]); string[] quantity = JsonConvert.DeserializeObject <string[]>(Request["QuantityList"]); string[] price = JsonConvert.DeserializeObject <string[]>(Request["PriceList"]); var ShipId = int.Parse(OrderID); var store = POS_Library.Public.Utility.GetStoreForShop(_areaId); List <TicketShelfTemp> ticketTemp = new List <TicketShelfTemp>(); try { #region 建立撿貨明細 var Ticket = 0; var Date = DateTime.Today.ToString("yyyy-MM-dd"); ShipOutDA SO = new ShipOutDA(); for (int i = 0; i < quantity.Length; i++) { TicketShelfTemp detail = new TicketShelfTemp(); detail.Account = ClerkName; detail.GuestId = 1; detail.ShipId = ShipId.ToString(); detail.ShipoutDate = Date; detail.ProductId = ItemNo[i]; detail.Quantity = int.Parse(quantity[i]); detail.ProductColor = color[i]; detail.Ticket = Ticket; detail.Store = store; ticketTemp.Add(detail); } List <TicketShelfTemp> PrintPickListsShelf = new List <TicketShelfTemp>(); string MachineName = HttpContext.Current.Server.MachineName; #endregion #region 扣數 if (pickType != 1) { if (pickType == 0) { PrintPickListsShelf = SO.PrintPickListsShelf(ticketTemp, ShipId, (int)Utility.ShipPDF.出貨, store, _areaId); } if (pickType == 5) { PrintPickListsShelf = SO.PrintPickListsShelf(ticketTemp, ShipId, (int)Utility.ShipPDF.出貨含展售, store, _areaId); } Log.Add(0, OrderID, "3", "OrderStep:3,撿貨完成", ClerkID, PosNo); //判斷設定檔再決定要不要印撿貨單 if (SystemSettings.GetNeedPrintPickSheet() == true) { Print p = new Print(); string PrintResult = p.PrintPickList(PrintPickListsShelf, InvoiceNumberNow, "交易明細"); if (PrintResult == "Success") { Log.Add(0, OrderID, "4", "OrderStep:4,列印撿貨單完成", ClerkID, PosNo); } else { string Event1 = string.Format("發票號碼:{0},產生揀貨單失敗!", InvoiceNumberNow); string Event2 = string.Format("產生失敗原因:{0}", PrintResult); Log.Add(5, OrderID, InvoiceNumberNow, Event1 + Event2, ClerkID, PosNo); } } else { var SO2 = new POS_Library.ShopPos.ShipOutDA(); var MSListNewFinal = SO2.GetPerformanceSale(ClerkName, (int)POS_Library.Public.Utility.LogisticsType.撿貨, ShipId, _areaId); Log.Add(0, OrderID, "4", "OrderStep:4,交易完成,無需印撿貨單", ClerkID, PosNo); } } if (pickType == 1) { PrintPickListsShelf = SO.PrintPickListsShelf(ticketTemp, ShipId, (int)Utility.ShipPDF.出貨重出, store, _areaId); var SO2 = new POS_Library.ShopPos.ShipOutDA(); var MSListNewFinal = SO2.GetPerformanceSale(ClerkName, (int)POS_Library.Public.Utility.LogisticsType.撿貨, ShipId, _areaId); Log.Add(0, OrderID, "3", "OrderStep:3 商品從不可銷庫存扣數完成,不需印檢貨單", ClerkID, PosNo); UpdateReturnsOrderIDRelated(); } result = true; #endregion } catch (Exception ex) { result = false; ErrorMsg = ex.Message; string Event1 = string.Format("訂單編號:{0},發票號碼:{1},揀貨時發生失敗", OrderID, InvoiceNumberNow); string Event2 = string.Format("揀貨失敗原因:{0}", ErrorMsg); Log.Add(5, OrderID, InvoiceNumberNow, Event1 + Event2, ClerkID, PosNo); #region 記錄傳給WMS扣數之前的所有變數資料 var PickListData = new { ticketTemp = ticketTemp, ShipId = ShipId, pickType = pickType, store = store, int_treasurytype = _areaId }; string PickListDataString = JsonConvert.SerializeObject(PickListData); string FilePath = HttpContext.Current.Server.MapPath(".") + string.Format("\\{0:yyyyMMdd}_{1}.txt", DateTime.Today, ShipId); using (System.IO.StreamWriter streamWriter = System.IO.File.AppendText(FilePath)) { streamWriter.WriteLine("{0:yyyy/MM/dd HH:mm:ss ffff}, {1}", DateTime.Now, PickListDataString); } #endregion } return(result); }