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