Esempio n. 1
0
        public ActionResult Save(Models.PedidoCompraViewModel Pedido, string itensPedido)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    context = new DALContext();
                    Pedido.PurchaseOrder.InsertDate = DateTime.Now;
                    Pedido.PurchaseOrder.Status     = "PEDIDO_ABERTO";

                    if (Pedido.PurchaseOrder.Id > 0)
                    {
                        context.PurchaseOrders.Update(Pedido.PurchaseOrder);
                    }
                    else
                    {
                        context.PurchaseOrders.Create(Pedido.PurchaseOrder);
                    }

                    if (context.SaveChanges() > 0)
                    {
                        var arrayItensPedido = JArray.Parse(itensPedido);
                        Pedido.PurchaseOrder.Items = ((JArray)arrayItensPedido).Select(x => new Model.Entities.PurchaseOrderItem
                        {
                            Id = (int)x["Id"],
                            PurchaseOrderId = (int)x["IdPedido"],
                            SequencialItem  = (int)x["SequencialItem"],
                            QuantityOrder   = Convert.ToDecimal(x["QuantityOrder"].ToString()),
                            QuantityDeliver = 0,
                            ProductID       = (int)x["ProductID"],
                            UnitPrice       = Convert.ToDecimal(x["UnitPrice"].ToString()),
                            ItemDiscount    = Convert.ToDecimal(x["ItemDiscount"].ToString()),
                            TotalPrice      = Convert.ToDecimal(x["TotalPrice"].ToString())
                        }).ToList();


                        foreach (var item in Pedido.PurchaseOrder.Items.Where(p => p.Id > 0))
                        {
                            context.PurchaseOrderItem.Update(item);
                        }

                        foreach (var item in Pedido.PurchaseOrder.Items.Where(p => p.Id == 0))
                        {
                            item.PurchaseOrderId = Pedido.PurchaseOrder.Id;
                            context.PurchaseOrderItem.Create(item);
                        }

                        context.SaveChanges();
                    }
                }
                else
                {
                    return(Content("Ordem de Compra inválida;0"));
                }

                return(Content("Ordem de Compra salva <br>com Sucesso!;" + Pedido.PurchaseOrder.Id.ToString()));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }
Esempio n. 2
0
        public ActionResult SaveConferencia(Models.PedidoCompraViewModel Pedido, string itensPedido)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    context = new DALContext();

                    if (Pedido.PurchaseOrder.Id > 0)
                    {
                        Pedido.PurchaseOrder.Status     = "PEDIDO_ENTREGUE";
                        Pedido.PurchaseOrder.ProviderID = Pedido.PurchaseOrder.ProviderPurchaseOrder.Id;
                        context.PurchaseOrders.Update(Pedido.PurchaseOrder);
                    }

                    if (context.SaveChanges() > 0)
                    {
                        var arrayItensPedido = JArray.Parse(itensPedido);
                        Pedido.PurchaseOrder.Items = ((JArray)arrayItensPedido).Select(x => new Model.Entities.PurchaseOrderItem
                        {
                            Id = (int)x["Id"],
                            PurchaseOrderId = (int)x["IdPedido"],
                            SequencialItem  = (int)x["SequencialItem"],
                            QuantityOrder   = Convert.ToDecimal(x["QuantityOrder"].ToString()),
                            QuantityDeliver = Convert.ToDecimal(x["QuantityDeliver"].ToString()),
                            ProductID       = (int)x["ProductID"],
                            ProductItem     = context.Products.Find((int)x["ProductID"]),
                            UnitPrice       = Convert.ToDecimal(x["UnitPrice"].ToString()),
                            ItemDiscount    = Convert.ToDecimal(x["ItemDiscount"].ToString()),
                            TotalPrice      = Convert.ToDecimal(x["TotalPrice"].ToString())
                        }).ToList();


                        foreach (var item in Pedido.PurchaseOrder.Items)
                        {
                            context.PurchaseOrderItem.Update(item);
                            Storage EstoqueProduto = context.Storages.Find(p => p.ProductID == item.ProductID);
                            if (EstoqueProduto != null)
                            {
                                EstoqueProduto.Quantity += item.QuantityDeliver;
                                context.Storages.Update(EstoqueProduto);
                            }
                            else
                            {
                                EstoqueProduto = new Storage
                                {
                                    ProductID  = item.ProductID,
                                    Quantity   = item.QuantityDeliver,
                                    UpdateDate = DateTime.Now,
                                };
                                context.Storages.Create(EstoqueProduto);
                            }
                            context.SaveChanges();
                        }

                        Pedido.PurchaseOrder.Items.ForEach(p =>
                        {
                            p.ProductItem.QuantityCurrentStock += p.QuantityDeliver;
                            context.Products.Update(p.ProductItem);
                        });

                        context.SaveChanges();
                    }
                }
                else
                {
                    return(Content("Ordem de compra inválida;0"));
                }

                return(Content("Ordem de compra recebida com<br> Sucesso ! <br> Estoque Atualizado!;" + Pedido.PurchaseOrder.Id.ToString()));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }
Esempio n. 3
0
 public ActionResult Create(Models.PedidoCompraViewModel Pedido)
 {
     return(View(Pedido));
 }