public ActionResult ComponentDelivery_Delete(ComponentDelivery componentDelivery) { ComponentDelivery componentDeliveryToRemove = _context.Set <ComponentDelivery>() .Include(item => item.ComponentDelivered).Where(x => x.Id == componentDelivery.Id).FirstOrDefault(); componentDeliveryToRemove.Active = false; _componentDeliveryRepository.Update(componentDeliveryToRemove); return(RedirectToAction("ComponentDelivery_List")); }
public ActionResult ComponentDelivery_Delete(int id) { ComponentDelivery componentDelivery = _context.Set <ComponentDelivery>() .Include(item => item.ComponentDelivered).Include(item => item.ItemDelivered).Where(x => x.Id == id).FirstOrDefault(); if (componentDelivery.Amount == componentDelivery.LeftOver) { return(View(componentDelivery)); } else { return(RedirectToAction("ComponentDelivery_List")); } }
public ActionResult ComponentDelivery_Create(ComponentDelivery componentDelivery) { if (componentDelivery.ComponentDelivered != null) { componentDelivery.ComponentDelivered = _componentRepository.GetByID(componentDelivery.ComponentDelivered.Id); } if (componentDelivery.ItemDelivered != null) { componentDelivery.ItemDelivered = _itemRepository.GetByID(componentDelivery.ItemDelivered.Id); } componentDelivery.CoffeShop = _coffeShopRepository.GetByID(componentDelivery.CoffeShop.Id); componentDelivery.DeliveryTime = DateTime.Now; componentDelivery.Active = true; componentDelivery.LeftOver = componentDelivery.Amount; _componentDeliveryRepository.Add(componentDelivery); return(RedirectToAction("ComponentDelivery_List")); }
public ActionResult Order_Accept(List <int> items) { if (HttpContext.Session.GetString("userRole") == null) { return(RedirectToAction("Login", "Account")); } List <Item> orderedItems = (from item in items select _itemRepository.GetByID(item)).ToList(); User employee = _userRepository.GetByID((int)HttpContext.Session.GetInt32("userId")); OrderVM acceptedOrder = new OrderVM(orderedItems, employee); double FinalPrice = 0.0; foreach (var orderedItem in orderedItems) { FinalPrice += orderedItem.Price; } acceptedOrder.FinalPrice = FinalPrice; Order order = new Order { CreatorUser = employee }; // order.OrderItems = order.FinalPrice = FinalPrice; order.OrderDateTime = DateTime.Now; order.Active = true; List <OrderItem> OrderItems = new List <OrderItem>(); foreach (var orderedItem in orderedItems) { OrderItems.Add(new OrderItem() { Item = orderedItem, ItemId = orderedItem.Id }); } //Przeniesc do servisu foreach (var orderItem in OrderItems) { List <ItemComponent> ItemComponents = _context.Set <Item>().Include(y => y.ItemComponents) .Where(x => x.Id == orderItem.Item.Id).FirstOrDefault().ItemComponents; ItemComponents = (from ItemComponent in ItemComponents select _context.Set <ItemComponent>().Include(y => y.CurrentComponent).Where(y => y.Id == ItemComponent.Id) .FirstOrDefault()).ToList(); if (ItemComponents.Count == 0) { List <ComponentDelivery> deliveries = _context.Set <ComponentDelivery>().Include(y => y.ItemDelivered) .Where(y => y.AlreadyUsed == false && y.ItemDelivered.Id == orderItem.Item.Id).OrderByDescending(x => x.DeliveryTime).ToList(); ComponentDelivery currentDelivery = deliveries.FirstOrDefault(); if (currentDelivery != null) { orderItem.ItemCost = currentDelivery.DeliveryPrice / currentDelivery.Amount; currentDelivery.LeftOver -= 1; if (currentDelivery.LeftOver == 0) { currentDelivery.AlreadyUsed = true; } } } else { foreach (var itemComponent in ItemComponents) { List <ComponentDelivery> deliveries = _context.Set <ComponentDelivery>().Include(x => x.ComponentDelivered). Where(y => y.AlreadyUsed == false && y.ComponentDelivered.Id == itemComponent.CurrentComponent.Id).OrderByDescending(x => x.DeliveryTime).ToList(); ComponentDelivery currentDelivery = deliveries.FirstOrDefault(); if (currentDelivery != null) { orderItem.ItemCost += itemComponent.Amount / currentDelivery.Amount * currentDelivery.DeliveryPrice; if (currentDelivery.LeftOver >= itemComponent.Amount) { currentDelivery.LeftOver -= itemComponent.Amount; } else { double toRemove = itemComponent.Amount - currentDelivery.LeftOver; currentDelivery.LeftOver = 0; currentDelivery.AlreadyUsed = true; deliveries[1].LeftOver -= toRemove; } } } } orderItem.ItemPrice = orderItem.Item.Price; // _context.Set<OrderItem>().Add(orderItem); } order.OrderItems = OrderItems; foreach (var orderItem in OrderItems) { order.OrderCost += orderItem.ItemCost; } _context.Set <Order>().Add(order); _context.SaveChanges(); return(View(acceptedOrder)); }