Example #1
0
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public MainViewModel()
        {
            PalletItems.Add(new DiagramModel()
            {
                ImagePath = "/Demo.YuriOnIce.Relationship;component/ImagesResource/Yuri.png",
                Name      = "Yuri",
                Detail    = "He has a glass heart.",
                Index     = 1,
            });
            PalletItems.Add(new DiagramModel()
            {
                ImagePath = "/Demo.YuriOnIce.Relationship;component/ImagesResource/Victory.png",
                Name      = "Victory",
                Detail    = "He is Legend!!!",
                Index     = 2,
            });
            PalletItems.Add(new DiagramModel()
            {
                ImagePath = "/Demo.YuriOnIce.Relationship;component/ImagesResource/Yurio.png",
                Name      = "Yurio",
                Detail    = "He is Tigger(Cat?).",
                Index     = 3,
            });
            PalletItems.Add(new DiagramModel()
            {
                ImagePath = "/Demo.YuriOnIce.Relationship;component/ImagesResource/Maccachin.png",
                Name      = "Maccachin",
                Detail    = "Maccachin is dog.",
                Index     = 4,
            });

            _layoutRelationshipMap = new RelationshipMap();
        }
Example #2
0
        public bool AddItemToPallet(Order order, OrderLine orderLine, int caseQuantity, Slotting slotting, double buldToPercentage,
                                    double overflow, bool stable, bool enforceStability, int maxUnstablePackages, double maxUnstablePercentage)
        {
            bool isAdded = false;

            PalletItem palletItem = new PalletItem(order, orderLine.Sku, caseQuantity, slotting);

            if (slotting?.PickMethodCode == PickMethodCode.FullLayer ||                 // If item is a layer item set the layer number
                slotting?.PickMethodCode == PickMethodCode.MixedLayer)
            {
                palletItem.Layer = NextLayerNumber;
            }
            else                                                                                                                                // Else check if the inven already exists on this pallet
            {
                PalletItem palletItemOnPallet = this.GetPalletItemByInventoryId(orderLine.Sku.InventoryId, order.OrderId);

                if (palletItemOnPallet != null)
                {
                    palletItem = palletItemOnPallet;
                }
            }

            if (CanAdd(orderLine, caseQuantity, buldToPercentage, overflow, enforceStability, maxUnstablePackages, maxUnstablePercentage))
            {
                if (PalletItems.Contains(palletItem))                       // If inven already exists on this pallet add to it's quantity
                {
                    palletItem.Quantity += caseQuantity;
                }
                else                                                                                            // Else add the item to the pallet
                {
                    PalletItems.Add(palletItem);
                }

                double itemPercentage = orderLine.CalculatePercentageSkuOfItself(caseQuantity);

                if (!stable)
                {
                    UnstablePercentage += itemPercentage;

                    if (!UnstablePackageIds.Contains(orderLine.Sku.Package.PackageId))
                    {
                        UnstablePackageIds.Add(orderLine.Sku.Package.PackageId);
                    }
                }

                if (!Orders.Contains(order))
                {
                    Orders.Add(order);
                }

                isAdded = true;
            }

            return(isAdded);
        }
Example #3
0
        public void ReverseLayers()
        {
            PalletItems.Reverse();

            int previousLayerNumber = 0;
            int layerNumber         = 1;

            foreach (PalletItem palletItem in PalletItems)
            {
                if (previousLayerNumber != palletItem.Layer)
                {
                    layerNumber += 1;
                }

                previousLayerNumber = palletItem.Layer;
                palletItem.Layer    = layerNumber;
            }
        }
Example #4
0
        public bool AddItemToPalletWithoutCheck(Order order, OrderLine ordLine, int caseQty, Slotting slotting)
        {
            Item       sku        = ordLine.Sku;
            PalletItem palletItem = new PalletItem(order, sku, caseQty, slotting);

            // If item is a layer item set the layer number
            if (slotting?.PickMethodCode == PickMethodCode.FullLayer ||
                slotting?.PickMethodCode == PickMethodCode.MixedLayer)
            {
                palletItem.Layer = NextLayerNumber;
            }
            else
            {
                // Else check if the inven already exists on this pallet
                PalletItem palletItemOnPallet = GetPalletItemByInventoryId(sku.InventoryId, order.OrderId);

                if (palletItemOnPallet != null)
                {
                    palletItem = palletItemOnPallet;
                }
            }


            // If inven already exists on this pallet add to it's quantity
            if (PalletItems.Contains(palletItem))
            {
                palletItem.Quantity += caseQty;
            }
            else
            {
                // Else add the item to the pallet
                PalletItems.Add(palletItem);
            }

            if (!Orders.Contains(order))
            {
                Orders.Add(order);
            }

            return(true);
        }
        public async Task <Pallet> GetPalletById(int id)
        {
            Pallet result = new Pallet();

            try
            {
                result = await DataStore.GetPalletAsync(id);

                var items = new ObservableCollection <PalletItem>(result.PalletItem);
                PalletItems.Clear();
                foreach (var item in items)
                {
                    PalletItems.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }

            return(result);
        }
        public async Task <ActionResult> Edit(Pallet pallet, [Bind("Id,Pallet,StockItem")] PalletItemsViewModel vm)
        {
            var id = _context.StockItems.Where(i => i.Name == vm.StockItem.Name).Select(i => i.Id).FirstOrDefault();

            if (pallet.Id != vm.Pallet.Id)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                try
                {
                    var item = new PalletItems
                    {
                        StockItemId = id,
                        PalletId    = vm.Pallet.Id,
                    };

                    _context.PalletItems.Add(item);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Edit)));
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PalletExists(vm.Pallet.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }


            return(View(vm));
        }
Example #7
0
 public bool ContainsPackage(int packageId) => PalletItems.Any(pi => pi.Sku.Package.PackageId == packageId);
Example #8
0
 private PalletItem GetPalletItemByInventoryId(int inventoryId, string orderId) =>
 PalletItems.FirstOrDefault(pi =>
                            (pi.Layer == 0) &&
                            (pi.Sku.InventoryId == inventoryId) &&
                            (pi.Order.OrderId == orderId));