コード例 #1
0
ファイル: VendaController.cs プロジェクト: cursoTestes/serpro
        public ActionResult Add(VendaModel model)
        {
            bool vendaOk = true;

            if (String.IsNullOrEmpty(model.Valor))
            {
                vendaOk = false;
            }
            if (String.IsNullOrEmpty(model.Vendedor))
            {
                vendaOk = false;
            }
            if (DateTime.Compare(model.DataVenda, DateTime.Now) > 0)
            {
                vendaOk = false;
            }

            if (vendaOk)
            {
                ViewData["Message"] = "Venda Salva com sucesso!";
                return(RedirectToAction("Index", "Home"));
            }

            ViewData["Message"] = "Algumas condições para o cadastro na venda nao sao satisfatorias!";
            return(View());
        }
コード例 #2
0
        public IActionResult Put(int id, VendaModel venda)
        {
            VendaBO      vendaBO;
            ObjectResult response;

            try
            {
                _log.LogInformation($"Starting Put( {id}, '{JsonConvert.SerializeObject(venda, Formatting.None)}')");

                vendaBO = new VendaBO(_loggerFactory, _config);

                venda.ID = id;
                venda    = vendaBO.Update(venda);

                response = Ok(venda);

                _log.LogInformation($"Finishing Put( {id} )");
            }
            catch (Exception ex)
            {
                _log.LogError(ex.Message);
                response = StatusCode(500, ex.Message);
            }

            return(response);
        }
コード例 #3
0
        public VendaModel SaleProcess(string[] data)
        {
            VendaModel sale = new VendaModel();

            for (int i = 0; i < data.Length; i++)
            {
                switch (i)
                {
                case 0:
                    int identifier;
                    int.TryParse(data[i], out identifier);
                    sale.Identifier = identifier;
                    break;

                case 1:
                    int SaleID;
                    int.TryParse(data[i], out SaleID);
                    sale.SaleID = SaleID;
                    break;

                case 2:
                    sale.Itens = itemProcess(data[i]);
                    break;

                case 3:
                    sale.Name = data[i];
                    break;

                default:
                    break;
                }
            }

            return(sale);
        }
コード例 #4
0
        public async Task <RequestResult> GetVendaPaginated(VendaModel vendaModel)
        {
            var result = new RequestResult(StatusResult.Success);

            try
            {
                using (var unitOfWork = UnitOfWorkFactory.CreateUnitOfWork())
                {
                    var vendaQuantidade = await unitOfWork.Repository.Count <Venda>(x => x.DataVenda >= vendaModel.DataInicial && x.DataVenda <= vendaModel.DataFinal);

                    var albumList = unitOfWork.Repository.Get <Venda>(x => x.DataVenda >= vendaModel.DataInicial && x.DataVenda <= vendaModel.DataFinal).OrderByDescending(x => x.DataVenda)
                                    .Skip(vendaModel.Skip)
                                    .Take(vendaModel.Take).ToList();
                    var resultPaginated = new VendaResponse {
                        Venda = albumList, Quantidade = vendaQuantidade
                    };

                    result.Data = resultPaginated;
                }
            }
            catch (Exception ex)
            {
                result.Status = StatusResult.Danger;
                result.Messages.Add(new Message(string.Format(_localizer["UnexpectedError"], ex.Message)));
            }

            return(result);
        }
コード例 #5
0
        public IActionResult Post([FromBody] VendaModel venda)
        {
            VendaBO      vendaBO;
            ObjectResult response;

            try
            {
                _log.LogInformation($"Starting Post('{JsonConvert.SerializeObject(venda, Formatting.None)}')");

                vendaBO = new VendaBO(_loggerFactory, _config);

                venda = vendaBO.Insert(venda);

                response = Ok(venda);

                _log.LogInformation($"Finishing Post");
            }
            catch (Exception ex)
            {
                _log.LogError(ex.Message);
                response = StatusCode(500, ex.Message);
            }

            return(response);
        }
コード例 #6
0
        public async Task <RegistrarVendaModel> Inserir(RegistrarVendaModel venda)
        {
            var _vendaModel = new VendaModel()
            {
                DataVenda  = venda.DataVenda,
                Id         = GeradorIdVenda.GerarNovoId(),
                Status     = venda.Status,
                VendedorId = venda.CodigoVendedor
            };

            _vendaModel.Vendedor = this._apiContext.Vendedores.Where(i => i.Codigo == venda.CodigoVendedor).Single();

            foreach (var _veiculoId in venda.ListaVeiculos)
            {
                _vendaModel.ListaVeiculos.Add(this._apiContext.Veiculos.Where(i => i.Codigo == _veiculoId).Single());
            }

            await this._apiContext.Vendas.AddAsync(_vendaModel);

            await this._apiContext.SaveChangesAsync();

            venda.Id = _vendaModel.Id;

            return(venda);
        }
コード例 #7
0
        public ActionResult Delete(VendaModel ven)
        {
            VendaDAO obj = new VendaDAO();

            obj.Excluir(ven.Idvenda);
            return(RedirectToAction(nameof(Index)));
        }
コード例 #8
0
        public List <VendaModel> VerificaStatusVenda()
        {
            Banco     banco    = new Banco();
            DataTable dados    = new DataTable();
            var       lstModel = new List <VendaModel>();

            banco.command.CommandText = @"SELECT v.numero, v.status, c.razao FROM TabPedVenda v INNER JOIN TabClientes c
                                        ON(v.CodCli = c.Codigo)
                                        WHERE STATUS = 'L' ORDER BY numero";

            try
            {
                dados = banco.ExecutarSelect();
                if (dados.Rows.Count > 0)
                {
                    int i = 1;
                    foreach (DataRow row in dados.Rows)
                    {
                        var model = new VendaModel();
                        model.VendaId     = Convert.ToInt32(row["numero"]);
                        model.Status      = row["status"].ToString();
                        model.NomeCliente = row["razao"].ToString();
                        model.Ordem       = i;
                        i++;
                        lstModel.Add(model);
                    }
                }
            }
            catch { }

            return(lstModel);
        }
コード例 #9
0
        private bool IsAtualizacaoStatusValida(VendaModel venda, StatusVenda novoStatus)
        {
            if (venda.Status == StatusVenda.ConfirmacaoPagamento && novoStatus == StatusVenda.PagamentoAprovado)
            {
                return(true);
            }
            else if (venda.Status == StatusVenda.ConfirmacaoPagamento && novoStatus == StatusVenda.Cancelada)
            {
                return(true);
            }
            else if (venda.Status == StatusVenda.PagamentoAprovado && novoStatus == StatusVenda.EmTransporte)
            {
                return(true);
            }
            else if (venda.Status == StatusVenda.PagamentoAprovado && novoStatus == StatusVenda.Cancelada)
            {
                return(true);
            }
            else if (venda.Status == StatusVenda.EmTransporte && novoStatus == StatusVenda.Entregue)
            {
                return(true);
            }

            return(false);
        }
コード例 #10
0
        public Task <HttpResponseMessage> CriarVenda(VendaModel model)
        {
            HttpResponseMessage response;

            try
            {
                var venda   = Mapper.Map <Venda>(model);
                var usuario = new Usuario
                {
                    UsuarioCodigo = ObterCodigoUsuarioLogado()
                };
                venda.Usuario = usuario;
                _vendaService.CriarVenda(venda);
                response = ReturnSuccess();
            }
            catch (DbEntityValidationException e)
            {
                response = ReturnError(e);
            }
            catch (Exception ex)
            {
                response = ReturnError(ex);
            }

            var tsc = new TaskCompletionSource <HttpResponseMessage>();

            tsc.SetResult(response);
            return(tsc.Task);
        }
コード例 #11
0
ファイル: VendasContext.cs プロジェクト: myrp-alexandre/amcom
        public bool Gravar(VendaModel model)
        {
            try
            {
                var saveOk = false;
                var result = 0;

                using (var db = new SQLiteConnection(ConnString))
                {
                    db.Open();

                    using (var transaction = db.BeginTransaction())
                    {
                        var clienteId = new ClienteContext(ConnString).GetClientId(model.NomeCliente);

                        using (var cmd = new SQLiteCommand())
                        {
                            cmd.CommandText =
                                "INSERT INTO Vendas (Id,Data,ClienteId,Total) VALUES (@Id,@Data,@ClienteId,@Total)";
                            cmd.Connection = db;
                            cmd.Prepare();
                            cmd.Parameters.AddWithValue("@Id", model.VendaId);
                            cmd.Parameters.AddWithValue("@Data", model.DataVenda);
                            cmd.Parameters.AddWithValue("@ClienteId", clienteId);
                            cmd.Parameters.AddWithValue("@Total", model.Total);
                            result = cmd.ExecuteNonQuery();
                        }


                        foreach (var prodItem in model.Produtos)
                        {
                            using (var cmd = new SQLiteCommand())
                            {
                                cmd.CommandText =
                                    "INSERT INTO VendaProdutos (VendaId,ProdutoId,Quantidade,Valor) VALUES (@VendaId,@ProdutoId,@Quantidade,@Valor)";
                                cmd.Connection = db;
                                cmd.Prepare();
                                cmd.Parameters.AddWithValue("@VendaId", prodItem.IdVenda);
                                cmd.Parameters.AddWithValue("@ProdutoId", prodItem.ProdutoId);
                                cmd.Parameters.AddWithValue("@Quantidade", prodItem.Quantidade);
                                cmd.Parameters.AddWithValue("@Valor", prodItem.Subtotal);
                                result = cmd.ExecuteNonQuery();
                            }
                        }

                        transaction.Commit();

                        saveOk = result > 0;
                    }

                    db.Close();
                }

                return(saveOk);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gravar venda: " + ex.Message);
            }
        }
コード例 #12
0
        public List <VendaModel> listarVendas()
        {
            MySqlCommand cmd = new MySqlCommand();

            cmd.CommandText = @"select C.nome as cliente, V.idvenda, V.data, 
                            V.total, Ve.nome as vendedor
                            from cliente C
                            inner join venda V
                            on C.idcliente = V.fk_idcliente
                            inner join vendedor Ve
                            on Ve.idvendedor = V.fk_idvendedor
                            order by idvenda desc";

            InstrucaoDAO      objDAL = new InstrucaoDAO();
            DataTable         dt     = objDAL.retornoDataTable(cmd);
            List <VendaModel> lista  = new List <VendaModel>();

            if (dt != null)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    VendaModel item = new VendaModel
                    {
                        Idvenda  = Convert.ToInt32(dt.Rows[i]["idvenda"].ToString()),
                        Data     = Convert.ToDateTime(dt.Rows[i]["data"].ToString()).ToString("dd/MM/yyyy"),
                        Total    = Convert.ToDecimal(dt.Rows[i]["total"].ToString()),
                        Cliente  = dt.Rows[i]["cliente"].ToString(),
                        Vendedor = dt.Rows[i]["vendedor"].ToString()
                    };
                    lista.Add(item);
                }
            }
            return(lista);
        }
コード例 #13
0
        private List <VendaModel> Load(DataSet data)
        {
            List <VendaModel> vendas;
            VendaModel        venda;

            try
            {
                vendas = new List <VendaModel>();

                foreach (DataRow row in data.Tables[0].Rows)
                {
                    venda = new VendaModel();

                    venda.ID            = row.Field <int>("ID");
                    venda.ID_cliente    = row.Field <int>("ID_cliente");
                    venda.ID_end        = row.Field <int>("ID_end");
                    venda.total         = row.Field <decimal>("total");
                    venda.ID_venda_item = row.Field <int>("ID_venda_item");

                    vendas.Add(venda);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(vendas);
        }
コード例 #14
0
        public VendaModel ConsultarID(int id)
        {
            MySqlCommand cmd = new MySqlCommand();

            cmd.CommandText = @"select *
                            from venda
                            where idvenda=@id";

            cmd.Parameters.AddWithValue("id", id);

            InstrucaoDAO objDAL = new InstrucaoDAO();
            DataTable    dt     = objDAL.retornoDataTable(cmd);
            VendaModel   item   = new VendaModel();

            if (dt != null)
            {
                item = new VendaModel
                {
                    Idvenda  = Convert.ToInt32(dt.Rows[0]["idvenda"].ToString()),
                    Data     = dt.Rows[0]["data"].ToString(),
                    Total    = Convert.ToDecimal(dt.Rows[0]["total"].ToString()),
                    Cliente  = dt.Rows[0]["fk_idcliente"].ToString(),
                    Vendedor = dt.Rows[0]["fk_idvendedor"].ToString()
                };
            }
            else
            {
                item = null;
            }
            return(item);
        }
コード例 #15
0
        public async Task <IActionResult> Edit(int id, [Bind("VendaId,DataDaVenda,ClienteId,DataPrevistaDaEntrega,CodigoDoRastreamento")] VendaModel vendaModel)
        {
            if (id != vendaModel.VendaId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(vendaModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!VendaModelExists(vendaModel.VendaId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ClienteId"] = new SelectList(_context.ClienteModel, "ClienteId", "ClienteId", vendaModel.ClienteId);
            return(View(vendaModel));
        }
コード例 #16
0
        public void TestCriarVendaComItem()
        {
            var vendaModel = new VendaModel
            {
                Cliente          = new ClienteModel(int.MinValue, "Cliente"),
                FormaDePagamento = DINHEIRO,
                Itens            = new List <VendaItemModel> {
                    new VendaItemModel {
                        Descricao                = "Produto1",
                        QuantidadeComprada       = 10,
                        QuantidadePromocional    = 10,
                        ValorUnitario            = 10,
                        ValorUnitarioPromocional = 10
                    },
                    new VendaItemModel {
                        Descricao                = "Produto2",
                        QuantidadeComprada       = 20,
                        QuantidadePromocional    = 20,
                        ValorUnitario            = 20,
                        ValorUnitarioPromocional = 20
                    }
                }
            };
            IMapper             mapper             = PegarMapper();
            IVendaEntityFactory vendaEntityFactory = new VendaEntityFactory(mapper);

            VendaEntity venda = vendaEntityFactory.Criar(vendaModel);

            Assert.Equal(2, venda.Itens.Count());
        }
コード例 #17
0
        public ActionResult FinalizaVenda()
        {
            VendaModel vm = new VendaModel();

            vm.ListagemProdutosVenda = (List <ProdutoDto>)Session["ListaVenda"];

            Venda v = new Venda();

            v.Preco    = vm.Acumulador();
            v.DataHora = DateTime.Now;

            VendaDados vd = new VendaDados();

            vd.Inserir(v);

            ProdVenda      pv      = new ProdVenda();
            ProdVendaDados pvDados = new ProdVendaDados();

            foreach (ProdutoDto p in vm.ListagemProdutosVenda)
            {
                pv.Venda      = v;
                pv.Produto    = p.Produto;
                pv.Quantidade = p.Quantidade;
                pvDados.Inserir(pv);
            }

            return(RedirectToAction("ArmazenamentoVenda"));
        }
コード例 #18
0
ファイル: VendaBusiness.cs プロジェクト: brunocardosodev/SMN
        public VendaViewModel GetListProdutosByPeriodo(DateTime dtInicial, DateTime dtFinal)
        {
            try
            {
                var vendas = new DataAccess.VendaDataAccess().GetList();
                var filter = vendas.AsEnumerable().Where(x => x.dtVenda >= dtInicial && x.dtVenda <= dtFinal).ToList();

                filter = filter.OrderByDescending(x => x.dtVenda).ToList();

                var result = new VendaViewModel();

                foreach (var item in filter)
                {
                    var produto = new ProdutoBusiness().Get(item.idProduto);
                    if (produto != null)
                    {
                        var venda = new VendaModel(item.nuCNPJ, item.dtVenda, item.idProduto, produto.nmProduto, produto.vrProduto);
                        result.Vendas.Add(venda);
                    }
                }

                return(result);
            }
            catch (Exception e)
            {
                return(new VendaViewModel(e.Message));
            }
        }
コード例 #19
0
        private void BtnAdicionar_Click(object sender, EventArgs e)
        {
            //OK ADICIONANDO NA LISTA
            LBITEM.Items.Clear();
            VendaController venda  = new VendaController();
            VendaModel      vendaM = new VendaModel();

            vendaM = venda.ListarVendasPendentesPorId(TxtId.Text);

            if (String.IsNullOrEmpty(vendaM.ValorPendente))
            {
                MessageBox.Show("Venda não encontrada");
            }
            else
            {
                LBITEM.Items.Add(vendaM.ValorPendente);
                IdParaDecrementar = Convert.ToString(vendaM.Id);
                TxtId.Text        = "";
                TxtId.Focus();

                //CALCULAR TOTAL
                Decimal VT = 0;
                VT            = Convert.ToDecimal(vendaM.ValorPendente);
                TxtTotal.Text = Convert.ToString(VT);
            }
        }
コード例 #20
0
 public IActionResult Registrar(VendaModel venda)
 {
     venda.Vendedor_Id = httpContext.HttpContext.Session.GetString("IdUsuarioLogado");
     venda.Inserir();
     CarregarDados();
     return(View());
 }
コード例 #21
0
        public ActionResult Comprar()
        {
            ViewBag.Admin       = CurrentUser == null || CurrentUser.Perfil == PerfilUsuario.Cliente ? false : true;
            ViewBag.User        = CurrentUser == null ? "Logar" : "Bem Vindo";
            ViewBag.ExibeFooter = true;

            CarrinhoModel carrinho = null;

            if (CurrentUser != null)
            {
                carrinho = db.CarrinhoDB.Find(p => p.UsuarioId == CurrentUser.Id).FirstOrDefault();
            }

            if (carrinho != null)
            {
                decimal valorTotal = carrinho.Produtos.Sum(p => p.Quantidade * p.PrecoUnitario);
                var     model      = new VendaModel()
                {
                    UsuarioId  = carrinho.UsuarioId,
                    DataVenda  = DateTime.Now,
                    ValorTotal = valorTotal,
                    VendaItens = carrinho.Produtos
                };
                db.VendaDB.InsertOne(model);
                db.CarrinhoDB.DeleteMany(p => p.UsuarioId == CurrentUser.Id);
                return(RedirectToAction("Index", "Home", null));
            }

            return(View());
        }
コード例 #22
0
        public IActionResult RelatorioVendas(RelatorioModel relatorio)
        {
            List <VendaModel> listaVendas = new VendaModel().ListaVendas(relatorio.DataInicio, relatorio.DataFim, false);

            ViewBag.listaVendas = listaVendas;

            return(View());
        }
コード例 #23
0
 public IActionResult Registrar(VendaModel venda)
 {
     ViewBag.listaClientes   = new ClienteModel().ListarTodosClientes();
     ViewBag.listaVendedores = new VendedorModel().ListarTodosVendedores();
     ViewBag.listaProdutos   = new ProdutoModel().ListagemDeProdutos();
     venda.Inserir();
     return(View());
 }
コード例 #24
0
        public ActionResult ConsultaVenda()
        {
            VendaModel vm = new VendaModel();

            vm.ListagemProdutosVenda = (List <ProdutoDto>)Session["ListaVenda"];

            return(View(vm));
        }
コード例 #25
0
        public IActionResult RelatorioVendas()
        {
            List <VendaModel> listaVendas = new VendaModel().ListaVendas(null, null, false);

            ViewBag.listaVendas = listaVendas;

            return(View());
        }
コード例 #26
0
 public IActionResult Registrar(VendaModel venda)
 {
     //captura o id do vendedor logado no sistema para fazer o resgistro da venda dele
     venda.VendedorId = httpContext.HttpContext.Session.GetString("IdUsuarioLogado");
     venda.Inserir();
     CarregarDados(); // necessário colocar aqui o método pois caso contrário ao renderizar as View as ViewBags estarão vazias
     return(View());
 }
コード例 #27
0
        }//CANCELA UMA VENDA POR DEVOLUCAO

        public VendaModel PegarIdDaUltimaVenda()
        {
            VendaModel venda = new VendaModel();
            DAOVenda   dao   = new DAOVenda();

            venda = dao.PegarUltimaVendaParaGerarRecibo();

            return(venda);
        }
コード例 #28
0
        public int Salvar(VendaModel vendaModel)
        {
            var ret = 0;

            var model = RecuperarPeloId(vendaModel.Id);

            if (model == null)
            {
                Connection();

                using (SqlCommand command = new SqlCommand("INSERT INTO VendaProduto ( DataVenda,          " +
                                                           "                           IdCliente,          " +
                                                           "                           NumeroVenda,        " +
                                                           "                           ValorTotalNota,     " +
                                                           "                           ValorDesconto,      " +
                                                           "                           IdFormaPagamento,   " +
                                                           "                           ValorPago,          " +
                                                           "                           ValorFrete,         " +
                                                           "                           IdFretePorConta,    " +
                                                           "                           ValorProduto,       " +
                                                           "                           DataCadastro,       " +
                                                           "                           ValorAcrescimo      " +
                                                           "                         )                     " +
                                                           "                  VALUES ( @DataVenda,         " +
                                                           "                           @IdCliente,         " +
                                                           "                           @NumeroVenda,       " +
                                                           "                           @ValorTotalNota,    " +
                                                           "                           @ValorDesconto,     " +
                                                           "                           @IdFormaPagamento,  " +
                                                           "                           @ValorPago,         " +
                                                           "                           @ValorFrete,        " +
                                                           "                           @IdFretePorConta,   " +
                                                           "                           @ValorProduto,      " +
                                                           "                           @DataCadastro,      " +
                                                           "                           @ValorAcrescimo     " +
                                                           "                         );                    " +
                                                           " select convert(int, scope_identity())", con))
                {
                    con.Open();

                    command.Parameters.AddWithValue("@DataVenda", SqlDbType.VarChar).Value      = vendaModel.DataVenda;
                    command.Parameters.AddWithValue("@IdCliente", SqlDbType.VarChar).Value      = vendaModel.IdCliente;
                    command.Parameters.AddWithValue("@NumeroVenda", SqlDbType.VarChar).Value    = vendaModel.NumeroVenda;
                    command.Parameters.AddWithValue("@ValorTotalNota", SqlDbType.Decimal).Value = vendaModel.ValorTotalNota;
                    command.Parameters.AddWithValue("@ValorDesconto", SqlDbType.Decimal).Value  = vendaModel.ValorDesconto;
                    command.Parameters.AddWithValue("@IdFormaPagamento ", SqlDbType.Int).Value  = vendaModel.IdFormaPagamento;
                    command.Parameters.AddWithValue("@ValorPago", SqlDbType.Decimal).Value      = vendaModel.ValorPago;
                    command.Parameters.AddWithValue("@ValorFrete", SqlDbType.Decimal).Value     = vendaModel.ValorFrete;
                    command.Parameters.AddWithValue("@IdFretePorConta", SqlDbType.Int).Value    = vendaModel.IdFretePorConta;
                    command.Parameters.AddWithValue("@ValorProduto", SqlDbType.Decimal).Value   = vendaModel.ValorProduto;
                    command.Parameters.AddWithValue("@DataCadastro", SqlDbType.VarChar).Value   = vendaModel.DataCadastro;
                    command.Parameters.AddWithValue("@ValorAcrescimo", SqlDbType.Decimal).Value = vendaModel.ValorAcrescimo;
                    ret = (int)command.ExecuteScalar();
                }
            }
            return(ret);
        }
コード例 #29
0
        }//LISTAR VENDAS PENDENTES

        public VendaModel ListarVendasPendentesPorId(String id)
        {
            VendaModel venda = new VendaModel();
            DAOVenda   dao   = new DAOVenda();

            venda = dao.ListarVendasPendentesPorId(id);

            return(venda);
        }//LISTAR VENDA PENDENTE PELO ID
コード例 #30
0
        public void Inserir(VendaModel ven)
        {
            MySqlCommand cmd = new MySqlCommand();

            cmd.CommandText = @"insert into venda(data, total, fk_idvendedor, fk_idcliente)
                            values (@data, @total, @fk_idvendedor, @fk_idcliente)";

            cmd.Parameters.AddWithValue("data", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
            cmd.Parameters.AddWithValue("total", ven.Total);
            cmd.Parameters.AddWithValue("fk_idvendedor", ven.Vendedor);
            cmd.Parameters.AddWithValue("fk_idcliente", ven.Cliente);

            InstrucaoDAO objDAL = new InstrucaoDAO();

            objDAL.executarSQL(cmd);

            //Recuper o ID da venda
            cmd.CommandText = @"select LAST_INSERT_ID();";
            DataTable dt      = objDAL.retornoDataTable(cmd);
            string    IDvenda = dt.Rows[0][0].ToString();

            //Deserializar o JSON de produtos
            cmd.CommandText = @"insert into itens_venda(fk_idvenda, fk_idproduto, qtd, valor)
                            values (@venda_id, @produto_id, @qtde_produto, @preco_produto)";
            cmd.Parameters.AddWithValue("venda_id", IDvenda);

            //Comando SQL para baixa do produto
            MySqlCommand baixa = new MySqlCommand();

            baixa.CommandText = @"update produto 
                                set quantidade = quantidade - @qt_produto
                                where idproduto = @prod_id";

            List <Itens_VendaModel> lstProdutos =
                JsonConvert.DeserializeObject <List <Itens_VendaModel> >(ven.ListaProdutosJSON);

            foreach (var item in lstProdutos)
            {
                //Inserir Itens da Venda
                cmd.Parameters.AddWithValue("produto_id", item.Fk_idproduto);
                cmd.Parameters.AddWithValue("qtde_produto", item.Qtd);
                cmd.Parameters.AddWithValue("preco_produto", Convert.ToDouble(item.Valor));
                objDAL.executarSQL(cmd);

                //Efetivar baixa de produto do estoque
                baixa.Parameters.AddWithValue("prod_id", item.Fk_idproduto);
                baixa.Parameters.AddWithValue("qt_produto", item.Qtd);
                objDAL.executarSQL(baixa);

                //Limpar Parâmetros
                cmd.Parameters.RemoveAt("produto_id");
                cmd.Parameters.RemoveAt("qtde_produto");
                cmd.Parameters.RemoveAt("preco_produto");
                baixa.Parameters.RemoveAt("prod_id");
                baixa.Parameters.RemoveAt("qt_produto");
            }
        }