Ejemplo n.º 1
0
        private void CarregaLista()
        {
            List <Produto> listaProdutos = _context.Produto.ToList();


            List <Produto> lista = new List <Produto>();
            Produto        item;
            int            id_estoque = 0;
            Estoque        estoque;
            Fornecedor     fornecedor;

            foreach (var ls in listaProdutos)
            {
                id_estoque = _daoProdutoEstoque.RetornarIdEstoque(ls.Id);
                estoque    = _context.Estoque.Find(id_estoque);
                fornecedor = _context.Fornecedor.Find(ls.FornecedorId);

                item = new Produto
                {
                    Id            = ls.Id,
                    Nome          = ls.Nome,
                    Descricao     = ls.Descricao,
                    PrecoUnitario = ls.PrecoUnitario,
                    Quantidade    = estoque.Quantidade,
                    UnidadeMedida = ls.UnidadeMedida,
                    LinkFoto      = ls.LinkFoto,
                    Fornecedor    = fornecedor
                };
                lista.Add(item);
            }

            ViewBag.ListaProdutos = lista;
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([Bind("Id,Data,Total,VendedorId,ClienteId,ListaProdutos")] Venda venda)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    venda.Data = DateTime.Now;

                    var tam   = venda.Total.ToString().Count() - 2;
                    var total = venda.Total.ToString().Insert(tam, ".");

                    venda.Total = Convert.ToDouble(total);

                    //inserir na tabela venda
                    _context.Add(venda);

                    await _context.SaveChangesAsync();

                    //recuperar id da venda
                    var id_venda = _context.Venda.OrderByDescending(o => o.Id).First().Id;


                    //Serializar o JSON da lista de produtos selecionados e gravar na tabela itens_venda
                    List <ItemVenda> lista_produtos = JsonConvert.DeserializeObject <List <ItemVenda> >(venda.ListaProdutos);
                    for (var i = 0; i < lista_produtos.Count; i++)
                    {
                        //inserir na tabela ItensVenda
                        var itemVenda = new ItemVenda()
                        {
                            VendaId           = id_venda,
                            ProdutoId         = lista_produtos[i].ProdutoId,
                            QuantidadeProduto = lista_produtos[i].QuantidadeProduto,
                            PrecoProduco      = lista_produtos[i].PrecoProduco
                        };

                        _context.ItensVenda.Add(itemVenda);

                        //recuperar id do estoque
                        var id_estoque = _daoProdutoEstoque.RetornarIdEstoque(itemVenda.ProdutoId);

                        //Baixar quantidade do estoque
                        var estoque = _context.Estoque.Find(id_estoque);

                        estoque.Quantidade = estoque.Quantidade - itemVenda.QuantidadeProduto;
                        _context.Estoque.Update(estoque);

                        await _context.SaveChangesAsync();
                    }

                    TempData["MSG_S"] = Mensagem.MSG_S001;
                }
                catch (Exception e)
                {
                    return(RedirectToAction(nameof(Error), new { message = "Erro ao registar venda. Tente novamente mais tarde. \n\n" + e.Message }));
                }
            }
            else if (venda.ListaProdutos == null)
            {
                TempData["MSG"]        = "Lista de produtos vazia. Adicione algum item para registrar a venda.";
                ViewData["ClienteId"]  = new SelectList(_context.Cliente, "Id", "Nome", venda.ClienteId);
                ViewData["VendedorId"] = new SelectList(_context.Vendedor, "Id", "Email", venda.VendedorId);
                CarregarDados();
                return(View());
            }
            ViewData["ClienteId"]  = new SelectList(_context.Cliente, "Id", "Nome", venda.ClienteId);
            ViewData["VendedorId"] = new SelectList(_context.Vendedor, "Id", "Email", venda.VendedorId);
            CarregarDados();
            return(RedirectToAction(nameof(Index)));
        }