Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 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;
            }
        }
Exemplo n.º 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);
        }