/// <summary> /// 列印儲位明細 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_Print_Click(object sender, EventArgs e) { try { lblMsg.Text = ""; //列印儲位明細 var p = new OBShopWeb.Poslib.Print(); //抓取目前儲位清單 List <TicketShelfTemp> pickList = new List <TicketShelfTemp>(); List <TicketShelfTemp> One = new List <TicketShelfTemp>(); foreach (GridViewRow row in gv_FList.Rows) { var one = new TicketShelfTemp(); one.ProductId = GetCellByName(row, "產品編號").Text; TextBox 調出數 = GetCellByName(row, "調出數").FindControl("txt_num") as TextBox; one.Quantity = (調出數 != null) ? int.Parse(調出數.Text) : 0; one.Division = GetCellByName(row, "儲位編號").Text; //數量防呆 if (one.Quantity < 0) { lblMsg.Text = one.ProductId + " 調出數量不正確!"; return; } if (one.Quantity > 0) { pickList.Add(one); } } //測試500 //pickList = pickList.Take(120).ToList(); 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++; p.PrintPickDetail(One, "", "儲位明細" + xxi.ToString("D2")); Thread.Sleep(1000); } lblMsg.Text = "列印成功!"; } 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); }