コード例 #1
0
        private static tblOutgoing CreateOutgoing(TreatmentOrder order, tblMoveDetail oldDetail, int quantitySign = 1)
        {
            var quantity = oldDetail.Quantity * quantitySign;

            var result = new tblOutgoing
            {
                EntryDate       = DateTime.UtcNow.ConvertUTCToLocal().RoundMillisecondsForSQL(),
                Lot             = oldDetail.Lot,
                TTypeID         = (int?)TransType.FrmTrmt,
                PkgID           = oldDetail.PkgID,
                Tote            = null,
                Quantity        = quantity,
                NetWgt          = oldDetail.tblPackaging.NetWgt,
                TtlWgt          = quantity * oldDetail.tblPackaging.NetWgt,
                LocID           = oldDetail.LocID,
                TrtmtID         = oldDetail.TrtmtID,
                EmployeeID      = order.InventoryShipmentOrder.PickedInventory.EmployeeId,
                BOMID           = 0,
                BatchLot        = 0,
                MoveNum         = order.InventoryShipmentOrder.MoveNum,
                MDetail         = oldDetail.MDetail,
                CustProductCode = oldDetail.CustProductCode
            };

            return(result);
        }
コード例 #2
0
        private void SetPickedInventory(InventoryShipmentOrder newOrder, tblMove oldOrder, ref bool commitNewContext)
        {
            var MDetail            = OldContext.tblMoveDetails.Any() ? OldContext.tblMoveDetails.Max(m => m.MDetail).AddSeconds(1) : DateTime.UtcNow.ConvertUTCToLocal();
            var oldDetailsToRemove = oldOrder.tblMoveDetails.ToList();

            foreach (var newItem in newOrder.PickedInventory.Items)
            {
                var oldItem = oldDetailsToRemove.FirstOrDefault(d => d.MDetail == newItem.DetailID) ?? oldDetailsToRemove.FirstOrDefault();
                if (oldItem == null)
                {
                    oldItem = new tblMoveDetail
                    {
                        MDetail = MDetail
                    };
                    OldContext.tblMoveDetails.AddObject(oldItem);
                    MDetail = MDetail.AddSeconds(1);
                }
                else
                {
                    oldDetailsToRemove.Remove(oldItem);
                }

                oldItem.MoveNum         = newOrder.MoveNum.Value;
                oldItem.Lot             = LotNumberParser.BuildLotNumber(newItem);
                oldItem.TTypeID         = (int?)newOrder.OrderType.ToTransType();
                oldItem.PkgID           = OldContextHelper.GetPackaging(newItem.PackagingProduct).PkgID;
                oldItem.Quantity        = newItem.Quantity;
                oldItem.NetWgt          = (decimal?)newItem.PackagingProduct.Weight;
                oldItem.TtlWgt          = (decimal?)(newItem.Quantity * newItem.PackagingProduct.Weight);
                oldItem.LocID           = newItem.FromLocation.LocID.Value;
                oldItem.Move2           = newItem.CurrentLocation.LocID.Value;
                oldItem.TrtmtID         = OldContextHelper.GetTreatment(newItem).TrtmtID;
                oldItem.EmployeeID      = newOrder.PickedInventory.EmployeeId;
                oldItem.CustProductCode = newItem.CustomerProductCode;
                oldItem.CustLot         = newItem.CustomerLotCode;

                if (newItem.DetailID != oldItem.MDetail)
                {
                    commitNewContext = true;
                    newItem.DetailID = oldItem.MDetail;
                }
            }

            foreach (var o in oldDetailsToRemove)
            {
                OldContext.tblMoveDetails.DeleteObject(o);
            }
        }