protected void Page_Load(object sender, EventArgs e) { var pickType = 0; var ticketId = 0; var store = 0; var area = 0; try { if (Session["Account"] == null) { Response.Write(" <script> parent.document.location= 'logout.aspx' </script> "); Response.End(); } else { if (Request["pickType"] == null || Request["tick"] == null || Request["area"] == null || Request["store"] == null) { throw new Exception("資料錯誤,無法印單!"); } ticketId = int.Parse(Request["tick"].ToString()); area = int.Parse(Request["area"].ToString()); store = int.Parse(Request["store"].ToString()); pickType = int.Parse(Request["pickType"].ToString()); var shipDa = new ShipOutDA(); var pickList = shipDa.LeaveWith(ticketId, pickType, store, area); if (pickList.Any()) { var p = new OBShopWeb.Poslib.Print(); //p.PrintPickList(pickList, "", "調出明細"); List <TicketShelfTemp> One = new List <TicketShelfTemp>(); var listCount = pickList.Count; var xxi = 0; //web.config設定每頁幾筆 var pernum = _PrintPageSize; while (xxi * pernum < listCount) { One = pickList.Skip(xxi * pernum).Take(pernum).ToList(); xxi++; var result = p.PrintPickList(One, "", ticketId + " 調出明細" + xxi.ToString("D2")); Thread.Sleep(1000); } Page.RegisterClientScriptBlock("checkinput", @"<script>alert('成功!');window.close();</script>"); } else { Page.RegisterClientScriptBlock("checkinput", @"<script>alert('無此調撥資料!!請重試!');window.close();</script>"); } } } catch (Exception ex) { Response.Write("系統發生錯誤 " + ex.Message); } }
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; } }
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); }