Пример #1
0
        public PartInputItem(ReceiveDetail rd)
        {
            this.PartCode = rd.PartCode;
            this.Comment = rd.DealerComment;
            this.InputDate = rd.ReceiveHeader.ReceiveDate;

            this.OrderQuantity = rd.OrderQuantity;
            #warning change from Quotation to ShippingQuantity
            this.Quotation = rd.ShippingQuantity;
            this.Good = rd.GoodQuantity;
            this.Broken = rd.BrokenQuantity;
            this.Lack = rd.LackQuantity;
            this.Wrong = rd.WrongQuantity;

            this.Amount = this.UnitPrice * (this.Good + this.Broken + this.Wrong + this.Lack);
        }
Пример #2
0
 public AbnormalReceiveDetail(ReceiveDetail rd, string eng, string vn)
 {
     this.BrokenQuantity = rd.BrokenQuantity;
     this.EnglishName = eng;
     this.GoodQuantity = rd.GoodQuantity;
     this.LackQuantity = rd.LackQuantity;
     this.OrderQuantity = rd.OrderQuantity;
     this.PartCode = rd.PartCode;
     #warning change from Quotation to ShippingQuantity
     this.Quotation = rd.ShippingQuantity;
     this.ReceiveDetailId = rd.ReceiveDetailId;
     this.VietNamName = vn;
     this.WrongQuantity = rd.WrongQuantity;
     if (rd.ReceiveHeaderId > 0) NotGoodNumber = rd.ReceiveHeader.NotGoodNumber;
 }
Пример #3
0
 private void detach_ReceiveDetails(ReceiveDetail entity)
 {
     this.SendPropertyChanging();
     entity.ReceiveHeader = null;
 }
Пример #4
0
 private void attach_ReceiveDetails(ReceiveDetail entity)
 {
     this.SendPropertyChanging();
     entity.OrderHeader = this;
 }
Пример #5
0
        /// <summary>
        /// Do the auto receive
        /// </summary>
        /// <param name="IssueNumber">The issue number</param>
        public static void AutoReceive(string IssueNumber)
        {
            var db = DCFactory.GetDataContext<PartDataContext>();
            var rd = new List<ReceiveDetail>();
            var list = db.IShippings.Where(p => p.IssueNumber == IssueNumber).ToList();
            var oh = db.OrderHeaders.Single(p => p.OrderHeaderId == list[0].VDMSOrderId);

            // collect data
            var rh = new ReceiveHeader
            {
                DealerCode = oh.ToDealer,
                HasUndo = false,
                IsAutomatic = true,
                IsLocked = false,
                IssueNumber = IssueNumber,
                OrderHeaderId = oh.OrderHeaderId,
                ReceiveDate = DateTime.Now,
                WarehouseId = oh.ToLocation
            };

            foreach (var item in list)
            {
                if (item.ShippingQuantity != 0)
                {
                    var od = db.OrderDetails.FirstOrDefault(p => p.OrderHeaderId == oh.OrderHeaderId && p.PartCode == item.PartCode);
                    if (od == null) continue;

                    var rcvd = new ReceiveDetail
                    {
                        BrokenQuantity = 0,
                        DealerComment = string.Empty,
                        GoodQuantity = item.ShippingQuantity,
                        LackQuantity = 0,
                        OrderHeaderId = oh.OrderHeaderId,
                        OrderQuantity = od.OrderQuantity,
                        PartCode = item.PartCode,
                        ShippingQuantity = item.ShippingQuantity,
                        WrongQuantity = 0,
                        ReceiveHeader = rh
                    };
                    rd.Add(rcvd);
                }
            }

            db.ReceiveHeaders.InsertOnSubmit(rh);
            db.SubmitChanges();

            // update current inventory, inventory day
            rd.ForEach(p =>
            {
                PartDAO.StockAdjust(p.PartCode, "P", oh.ToDealer, oh.ToLocation, null, DateTime.Now, InventoryAction.NormalImport, p.UnitPrice * p.GoodQuantity, p.GoodQuantity, p.DealerComment, string.Empty, null);
            });
            db.SubmitChanges();

            //// update has in stock flag
            //oh.AlreadyInStock = true;
            //oh.AutoInStockDate = DateTime.Now;
            //oh.Status = OrderStatus.OrderClosedNormal;
            //db.SubmitChanges();
        }
Пример #6
0
    bool GetData()
    {
        var r = true;
        var WarehouseId = OrderDAO.GetOrderHeader(OrderId).ToLocation;
        foreach (var row1 in lv.Items)
        {
            var issue = ((Label)row1.FindControl("litIssue")).Text;
            var ngnumber = ((Label)row1.FindControl("litNGNumber")).Text;
            if (!string.IsNullOrEmpty(ngnumber)) receiveNG = true;
            var lvItems = (ListView)row1.FindControl("lvItems");
            if (lvItems.Enabled == false) continue;
            var hId = (long)lv.DataKeys[row1.DataItemIndex].Value;
            if (hId == 0)
            {
                rHeader.Add(new ReceiveHeader
                {
                    ReceiveHeaderId = hId,
                    IssueNumber = issue,
                    NotGoodNumber = ngnumber,
                    OrderHeaderId = OrderId,
                    DealerCode = UserHelper.DealerCode,
                    WarehouseId = WarehouseId,
                    ReceiveDate = DateTime.Now,
                    IsLocked = false,
                    IsAutomatic = false,
                    HasUndo = false,
                    HasNGForm = false
                });
            }
            foreach (var row in lvItems.Items)
            {
                var s = int.Parse(((Literal)row.FindControl("litSQ")).Text);
                var q = int.Parse(((Literal)row.FindControl("litQQ")).Text);
                var g = int.Parse(((TextBox)row.FindControl("t1")).Text.Length == 0 ? "0" : ((TextBox)row.FindControl("t1")).Text);
                var b = int.Parse(((TextBox)row.FindControl("t2")).Text.Length == 0 ? "0" : ((TextBox)row.FindControl("t2")).Text);
                var w = int.Parse(((TextBox)row.FindControl("t3")).Text.Length == 0 ? "0" : ((TextBox)row.FindControl("t3")).Text);
                var l = int.Parse(((TextBox)row.FindControl("t4")).Text.Length == 0 ? "0" : ((TextBox)row.FindControl("t4")).Text);
                var c = ((TextBox)row.FindControl("t5")).Text;

                if (s != g + b + w + l || (s != g && string.IsNullOrEmpty(c)))
                {
                    ((HtmlTableRow)row.FindControl("tr")).Attributes["class"] = "error";
                    r = false;
                }
                else ((HtmlTableRow)row.FindControl("tr")).Attributes["class"] = row.DataItemIndex % 2 == 0 ? "event" : "old";
                if (s != g) receiveOk = false;

                var tr = (HtmlTableRow)row.FindControl("tr");
                var dId = (long)lvItems.DataKeys[row.DataItemIndex].Value;
                var detail = new ReceiveDetail
                {
                    ReceiveDetailId = dId,
                    GoodQuantity = g,
                    BrokenQuantity = b,
                    WrongQuantity = w,
                    LackQuantity = l,
                    DealerComment = c,
                    OrderHeaderId = OrderId,
                    PartCode = tr.Cells[0].InnerText.Trim(),
                    ShippingQuantity = s,
                    ReceiveHeader = hId == 0 ? rHeader[rHeader.Count - 1] : null,
                    IssueNumber = issue,
                    EnglishName = tr.Cells[1].InnerText.Trim(),
                    VietnamName = ((Literal)row.FindControl("litVN")).Text,
                    UnitPrice = int.Parse(tr.Cells[4].InnerText.Trim())
                };
                if (rowChanged.Contains(dId) || dId == 0) rDetail.Add(detail);
            }
        }
        return r && rHeader.Count > 0;
    }