示例#1
0
        public ActionResult Create(Models.PedidoViewModel Pedido)
        {
            Model.Entities.User usuario = new Model.Entities.User();
            context = new DALContext();

            usuario = context.Users.All().SingleOrDefault(p => p.UserName == User.Identity.Name);

            if (usuario.UserName == "*****@*****.**")
            {
                ViewBag.NomeLogado = "Vilo";
            }
            else
            {
                ViewBag.NomeLogado = "Uriel Silva";
            }

            return(View(Pedido));
        }
示例#2
0
        public ActionResult Save(Models.PedidoViewModel Pedido, string itensPedido)
        {
            try
            {
                context = new DALContext();

                if (ModelState.IsValid)
                {
                    var arrayItensPedido = JArray.Parse(itensPedido);
                    Pedido.Order.Items = ((JArray)arrayItensPedido).Select(x => new Model.Entities.OrderProduct
                    {
                        Id             = (int)x["Id"],
                        OrderId        = (int)x["IdPedido"],
                        SequencialItem = (int)x["SequencialItem"],
                        QuantityOrder  = Convert.ToDecimal(x["QuantityOrder"].ToString()),
                        ProductID      = (int)x["ProductID"],
                        ProductItem    = context.Products.Find((int)x["ProductID"]),
                        UnitPrice      = Convert.ToDecimal(x["UnitPrice"].ToString()),
                        DeadlineItem   = (int)x["DeadlineItem"],
                        ItemDiscount   = 0,
                        TotalPrice     = Convert.ToDecimal(x["TotalPrice"].ToString()),
                        TypeUnitID     = 1,
                    }).ToList();

                    Pedido.Order.OrderTypeID = 1;
                    Pedido.Order.Status      = "PROPOSTA";

                    Pedido.Order.ShippingId = Pedido.Order.ShippingId.HasValue && Pedido.Order.ShippingId.Value == 0 ? null : Pedido.Order.ShippingId;

                    foreach (var item in Pedido.Order.Items.Where(p => p.OrderId > 0))
                    {
                        context.OrdersProducts.Update(item);
                    }

                    foreach (var item in Pedido.Order.Items.Where(p => p.OrderId == 0))
                    {
                        item.OrderId = Pedido.Order.Id;
                        context.OrdersProducts.Create(item);
                    }

                    Pedido.Order.ShippingId = null;
                    if (Pedido.Order.Id > 0)
                    {
                        context.Orders.Update(Pedido.Order);
                    }
                    else
                    {
                        context.Orders.Create(Pedido.Order);
                    }

                    bool pedidoExiste = Pedido.Order.Id > 0;

                    Pedido.Order.Items.ForEach(p =>
                    {
                        p.ProductItem.QuantityCurrentStock -= p.QuantityOrder;
                        context.Products.Update(p.ProductItem);

                        Storage EstoqueProduto = context.Storages.Find(q => q.ProductID == p.ProductID);
                        if (EstoqueProduto != null)
                        {
                            EstoqueProduto.Quantity -= p.QuantityOrder;
                            context.Storages.Update(EstoqueProduto);
                        }
                        else
                        {
                            EstoqueProduto = new Storage
                            {
                                ProductID  = p.ProductID,
                                Quantity   = p.QuantityOrder,
                                UpdateDate = DateTime.Now,
                            };
                            context.Storages.Create(EstoqueProduto);
                        }
                    });

                    if (context.SaveChanges() > 0)
                    {
                        Pedido.Order = Pedido.Order;
                        Pedido.Order.CustomerOrder = Pedido.Customers.Where(p => p.Id == Pedido.Order.CustomerID).FirstOrDefault();

                        if (pedidoExiste)
                        {
                            return(Content(String.Format("<b>Proposta {0}</br> Alterada com Sucesso!</b>;{1}", Pedido.Order.Id, Pedido.Order.Id)));
                        }
                        else
                        {
                            return(Content(String.Format("<b>Proposta {0}</br> Incluída com Sucesso!</b>;{1}", Pedido.Order.Id, Pedido.Order.Id)));
                        }
                    }
                }
                else
                {
                    return(View("Create", Pedido));
                }

                return(View("Create", Pedido));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }