예제 #1
0
        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);
            }
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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);
        }