示例#1
0
        public IPurchaseOrder ResolveSingleItemKitSelection(IPurchaseOrder entity)
        {
            var modified = false;

            foreach (var orderItem in entity.Items)
            {
                var kit = m_kitProductRepository.GetKitForOrderItem(entity, orderItem).ToList();
                if (!kit.Any())
                {
                    continue;
                }

                foreach (var kitItem in kit)
                {
                    var groupItems = kitItem.GroupItems.ToList();
                    if (kitItem.SelectedItem != null || groupItems.Count != 1)
                    {
                        // Item already selected or it should be chosen by the operator
                        continue;
                    }

                    m_kitProductRepository.SetKitItemSelection(entity, orderItem, groupItems.Single().Id, kitItem.KitItemIndex);
                    modified = true;
                }
            }

            if (!modified)
            {
                return(entity);
            }

            return(m_orderRepository.GetOrder(entity.Id));
        }
示例#2
0
        public PackingOrderModel SelectKitItem(long orderId, long orderItemId, int kitItemId, int kitItemIndex)
        {
            using (var tx = m_database.OpenTransaction())
            {
                var order = m_orderRepository.GetOrder(orderId);
                if (order == null)
                {
                    throw new InvalidOperationException("Objednavka nenalezena");
                }

                var item = order.Items.FirstOrDefault(i => i.Id == orderItemId);
                if (item == null)
                {
                    throw new InvalidOperationException("Polozka objednavky nenalezena");
                }

                m_kitProductRepository.SetKitItemSelection(order, item, kitItemId, kitItemIndex);

                var result = MapOrder(order);

                tx.Commit();

                return(result);
            }
        }