protected InventoryPickOrder CreateInventoryPickOrder(IInventoryPickOrderKey pickOrderKey, MovementOrderDTO order)
        {
            LoadCount.AddRead(EntityTypes.PickOrder);

            return new InventoryPickOrder
                {
                    DateCreated = pickOrderKey.InventoryPickOrderKey_DateCreated,
                    Sequence = pickOrderKey.InventoryPickOrderKey_Sequence,

                    Items = CreateInventoryPickOrderItems(pickOrderKey, order).ToList()
                };
        }
        private IEnumerable<InventoryPickOrderItem> CreateInventoryPickOrderItems(IInventoryPickOrderKey pickOrderKey, MovementOrderDTO order)
        {
            var sequence = 0;
            foreach(var orderDetail in order.tblMoveOrderDetails)
            {
                LoadCount.AddRead(EntityTypes.PickOrderItem);

                var product = NewContextHelper.GetProduct(orderDetail.ProdID);
                if(product == null)
                {
                    Log(new CallbackParameters(CallbackReason.OrderItemProductNotFound)
                        {
                            MovementOrder = order,
                            MoveOrderDetail = orderDetail
                        });
                    continue;
                }

                var packaging = NewContextHelper.GetPackagingProduct(orderDetail.PkgID);
                var treatment = NewContextHelper.GetInventoryTreatment(orderDetail.TrtmtID);

                Models.Company customer = null;
                if(!string.IsNullOrWhiteSpace(orderDetail.CustomerID))
                {
                    customer = NewContextHelper.GetCompany(orderDetail.CustomerID, CompanyType.Customer);
                    if(customer == null)
                    {
                        Log(new CallbackParameters(CallbackReason.OrderItemCustomerNotFound)
                            {
                                MovementOrder = order,
                                MoveOrderDetail = orderDetail
                            });
                        continue;
                    }
                }

                yield return new InventoryPickOrderItem
                    {
                        DateCreated = pickOrderKey.InventoryPickOrderKey_DateCreated,
                        OrderSequence = pickOrderKey.InventoryPickOrderKey_Sequence,
                        ItemSequence = ++sequence,

                        ProductId = product.ProductKey.ProductKey_ProductId,
                        PackagingProductId = packaging.Id,
                        TreatmentId = treatment.Id,
                        Quantity = (int)orderDetail.Quantity,
                        CustomerId = customer == null ? (int?)null : customer.Id,
                        CustomerLotCode = orderDetail.CustLot,
                        CustomerProductCode = orderDetail.CustProductCode
                    };
            }
        }
        internal static InventoryPickOrderItem SetOrder(this InventoryPickOrderItem item, IInventoryPickOrderKey pickOrderKey)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            if (pickOrderKey != null)
            {
                item.InventoryPickOrder = null;
                item.DateCreated        = pickOrderKey.InventoryPickOrderKey_DateCreated;
                item.OrderSequence      = pickOrderKey.InventoryPickOrderKey_Sequence;
            }

            return(item);
        }
 public static Expression <Func <InventoryPickOrderItem, bool> > FilterByInventoryPickOrderKey(IInventoryPickOrderKey inventoryPickOrderKey)
 {
     return(i => i.DateCreated == inventoryPickOrderKey.InventoryPickOrderKey_DateCreated &&
            i.OrderSequence == inventoryPickOrderKey.InventoryPickOrderKey_Sequence);
 }
Exemple #5
0
 public SalesOrderKey(IInventoryPickOrderKey inventoryPickOrderKey) : base(inventoryPickOrderKey.InventoryPickOrderKey_DateCreated, inventoryPickOrderKey.InventoryPickOrderKey_Sequence)
 {
 }