Exemple #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Account"] == null)
            {
                Response.Write(" <script> parent.document.location= 'logout.aspx' </script> ");
                Response.End();
            }
            else
            {
                account = Session["Account"].ToString();
                if (!IsPostBack)
                {
                    if (Request["storage"] == null || Request["ticketType"] == null || Request["flowType"] == null || Request["pagekey"] == null || Request["areaId"] == null || Request["importType"] == null)
                    {
                        lbl_Message.Text = "資料錯誤!!";
                        return;
                    }
                    var shelf      = Request["storage"];
                    var importType = Request["importType"];
                    var ticketType = Request["ticketType"];
                    var flowType   = int.Parse(Request["flowType"].ToString());
                    var pagekey    = Request["pagekey"];
                    var areaId     = Request["areaId"];
                    ViewState["flowType"]   = flowType;
                    ViewState["pagekey"]    = pagekey;
                    ViewState["areaId"]     = areaId;
                    ViewState["importType"] = importType;
                    ViewState["ticketType"] = ticketType;
                    lbl_Storage_NO.Text     = shelf;
                    if (Session["ProductDatas"] != null)
                    {
                        tempallproduct          = Session["ProductDatas"] as List <ImportClass.ProductData>;
                        Session["ProductDatas"] = null;
                    }
                    else
                    {
                        lbl_Message.Text = "時間過長!!請重新動做!!";
                        return;
                    }
                    //改成function(2014-0425修改)
                    var flowT = FlowType(flowType);
                    if (flowT == 0)
                    {
                        lbl_Message.Text = "無此類型入庫!!";
                        return;
                    }

                    var shipDa = new POS_Library.ShopPos.ShipInDA();
                    var ticks  = tempallproduct.Select(x => int.Parse(x.Ticket)).Distinct().ToList();
                    int store  = POS_Library.Public.Utility.GetStore(int.Parse(areaId));
                    var issue  = shipDa.GetIssueReports(ticks, store, flowType).Where(x => string.IsNullOrEmpty(x.HandleAuditot)).ToList();

                    //依驗貨完的傳票尋找是否有回報問題的傳票產品
                    var diffs = issue.Select(x => new ImportClass.ProductData()
                    {
                        Ticket = x.TicketId.Value.ToString(), Name = x.ProductId, Quantity = x.Quantity, IsQuantity = x.IsQuantity
                    }).ToList();

                    if (tempallproduct.Count > 0)
                    {
                        lbl_ProductNormal.Text = "內容:<br />";

                        CompositeListBox(tempallproduct, false);
                    }
                    else
                    {
                        btn_Check.Visible     = false;
                        listboxNormal.Visible = false;
                    }
                    if (issue.Any())
                    {
                        lbl_ProductDiff.Text = "差異:<br />";
                        CompositeListBox(diffs, true);
                    }
                    else
                    {
                        listboxDiff.Visible = false;
                    }

                    //顯示儲位類型
                    lbl_Storage_NO_Type.Text = CF.TypeToName(shipDa.CheckStorage(lbl_Storage_NO.Text, int.Parse(areaId)));
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 回報
        /// </summary>
        /// <returns></returns>
        protected MsgStatus Report()
        {
            try
            {
                var shipDa     = new POS_Library.ShopPos.ShipInDA();
                var flowType   = int.Parse(ViewState["flowType"].ToString());
                var box        = ViewState["pagekey"].ToString();
                var importType = int.Parse(ViewState["importType"].ToString());
                var ticketType = int.Parse(ViewState["ticketType"].ToString());

                var areaId = int.Parse(ViewState["areaId"].ToString());
                var result = new MsgStatus();

                //正確驗貨產品
                var products = new List <ImportClass.ProductData>();

                for (int i = 0; i < listboxNormal.Items.Count; i++)
                {
                    var      product = new ImportClass.ProductData();
                    string[] array   = listboxNormal.Items[i].Value.Split(',');
                    product.Ticket     = array[0];
                    product.Name       = array[1].Trim().ToUpper();
                    product.Quantity   = int.Parse(array[2]);
                    product.IsQuantity = true;
                    product.Id         = array[4];
                    products.Add(product);
                }
                //差異產品
                var diffs = new List <ImportClass.ProductData>();
                for (int i = 0; i < listboxDiff.Items.Count; i++)
                {
                    var      diff  = new ImportClass.ProductData();
                    string[] array = listboxDiff.Items[i].Value.Split(',');
                    diff.Shelf      = box;
                    diff.Ticket     = array[0];
                    diff.Name       = array[1].Trim().ToUpper();
                    diff.Quantity   = int.Parse(array[2]);
                    diff.IsQuantity = bool.Parse(array[3]);
                    diff.Id         = array[4];
                    diffs.Add(diff);
                }

                #region ※比對差異回報有無異常防呆(2014-0425新增)

                var ticks  = products.Select(x => int.Parse(x.Ticket)).Distinct().ToList();
                int store  = POS_Library.Public.Utility.GetStoreForShop(areaId);
                var p      = products.Select(x => x.Name).ToArray();
                var issue  = shipDa.GetIssueReports(ticks, store, flowType).Where(x => string.IsNullOrEmpty(x.HandleAuditot) && p.Contains(x.ProductId)).ToList();
                var diffs2 = issue.Where(x => !x.IsQuantity).Select(x => new ImportClass.ProductData()
                {
                    Ticket = x.TicketId.Value.ToString(), Name = x.ProductId, Quantity = x.Quantity, IsQuantity = x.IsQuantity
                }).ToList();
                var diffC = diffs2.Count;
                for (int i = 0; i < diffC; i++)
                {
                    if ((products.Count(x => x.Name == diffs2[i].Name) == 0))
                    {
                        diffs2.Remove(diffs2[i]);
                    }
                }
                //foreach (var item in diffs2)
                //{
                //    //產品沒驗到就不顯示少的(2013-0411新增)
                //    if ((products.Count(x => x.Name == item.Name) == 0) && !item.IsQuantity)
                //    {
                //        diffs2.Remove(item);
                //        if (!diffs2.Any())
                //            break;
                //    }
                //}

                if (diffs.Count(x => !x.IsQuantity) != diffs2.Count)
                {
                    return(POS_Library.Public.Utility.GetMessage("0", "差異回報筆數異常!請重新驗貨進入此頁面!"));
                }

                #endregion ※比對差異回報有無異常防呆(2014-0425新增)

                //依驗貨完的傳票尋找是否有回報問題的傳票產品
                var ckNormals = shipDa.CkNormals(products, diffs);
                if (ckNormals.Result == "0")
                {
                    return(ckNormals);
                }

                if (products.Count > 0)
                {
                    result = shipDa.SetTempShelfProduct(lbl_Storage_NO.Text, products, account, true, flowType, areaId);
                    if (result.Result == "0")
                    {
                        return(result);
                    }
                }
                if (diffs.Count > 0)
                {
                    result = shipDa.SetTempDiffEdit(lbl_Storage_NO.Text, diffs, importType, ticketType, flowType, account, store, areaId);
                }

                return(result);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }