Esempio n. 1
0
 public decimal mostrarValorVenda(ModeloVendas objVenda)
 {
     try
     {
         MySqlCommand cmdVendaTotal = new MySqlCommand();
         ModeloVendas venda         = new ModeloVendas();
         string       sqlVendaTotal;
         sqlVendaTotal             = @"select valor from vendas where idvenda = @idvenda
                     and idcliente = @idcliente";
         cmdVendaTotal.CommandText = sqlVendaTotal;
         cmdVendaTotal.Parameters.Clear();
         cmdVendaTotal.Parameters.AddWithValue("@idvenda", objVenda.Idvenda);
         cmdVendaTotal.Parameters.AddWithValue("@idcliente", objVenda.Idcliente);
         cmdVendaTotal.Connection = conn;
         conn.Open();
         MySqlDataReader drVenda = cmdVendaTotal.ExecuteReader();
         while (drVenda.Read())
         {
             venda.Valor = Convert.ToDecimal(drVenda["valor"].ToString());
         }
         return(venda.Valor);
     }
     catch (MySqlException ex)
     {
         throw new Exception(ex.StackTrace);
     }
     finally
     {
         conn.Close();
     }
 }
Esempio n. 2
0
        public void InserirVendas(ModeloVendas modeloVendas)
        {
            if (modeloVendas.cod_formaPgto <= 0)
            {
                throw new Exception("O Código Do Tipo de Pagamento  Não Pode Ser Negativo");
            }

            if (modeloVendas.cod_func <= 0)
            {
                throw new Exception("O Código Do Funcionáro Não Pode Ser Negativo");
            }

            //if (modeloVendas.data_venda != DateTime.Now)
            //{
            //    throw new Exception("A data da venda informada não pode ser diferente  data actual");
            //}

            if (modeloVendas.estado_venda == "")
            {
                throw new Exception("O Campo Estado da Venda  Não Pode Ser Vázio");
            }

            if (modeloVendas.total_venda <= 0)
            {
                throw new Exception("O Campo Valor Total Não Pode Ser Negativo");
            }

            dallVendas.Inserir(modeloVendas);
        }
Esempio n. 3
0
        //Médodo de inserção de dados na tabela itens_venda e atualização
        // do valor da venda na tabela vendas.
        public void inserirItensVenda(ModeloVendas venda, ModeloItensVendas itens)
        {
            string           sqlItensVenda, sqlAtualizarVenda;
            MySqlTransaction t = null;

            try
            {
                // Inserção da tabela itens_Venda
                cmdItensVenda.Connection  = conn;
                sqlItensVenda             = @"insert into itens_venda(idvenda, idproduto,
                                valor_produto, quantidade)values(@idvenda,
                                @idproduto, @valor_produto, @quantidade)";
                cmdItensVenda.CommandText = sqlItensVenda;

                // Atualização do valor da venda na tabela vendas
                cmdAtualizaVendas.Connection  = conn;
                sqlAtualizarVenda             = @"update vendas set valor = @quantidade * @preco
                                    where idvenda = @idvenda";
                cmdAtualizaVendas.CommandText = sqlAtualizarVenda;

                // Abertura do banco
                conn.Open();
                // Configuração da transação
                t = conn.BeginTransaction(IsolationLevel.Serializable);

                cmdItensVenda.Transaction     = t;
                cmdAtualizaVendas.Transaction = t;

                // Parâmetros de Inserção da tabela itens_venda
                cmdItensVenda.Parameters.Clear();
                cmdItensVenda.Parameters.AddWithValue("@idvenda", venda.Idvenda);
                cmdItensVenda.Parameters.AddWithValue("@idproduto", itens.Idproduto);
                cmdItensVenda.Parameters.AddWithValue("@valor_produto", itens.ValorProduto);
                cmdItensVenda.Parameters.AddWithValue("@quantidade", itens.Quantidade);

                // Parâmetros de Atualização do valor da venda
                cmdAtualizaVendas.Parameters.AddWithValue("@idvenda", venda.Idvenda);
                cmdAtualizaVendas.Parameters.AddWithValue("@quantidade", itens.Quantidade);
                cmdAtualizaVendas.Parameters.AddWithValue("@preco", itens.ValorProduto);

                // Execução das transações
                cmdItensVenda.ExecuteNonQuery();
                cmdAtualizaVendas.ExecuteNonQuery();
                t.Commit();
            }
            catch (MySqlException ex)
            {
                t.Rollback();
                throw new Exception(ex.StackTrace);
            }
            finally
            {
                conn.Close();
            }
        }
Esempio n. 4
0
 public void InserirItensVenda(ModeloVendas venda, ModeloItensVendas itens)
 {
     try
     {
         objVendasDal.inserirItensVenda(venda, itens);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Esempio n. 5
0
        public void Inserir(ModeloVendas modeloVendas)
        {
            MySqlConnection mySqlConnection = new MySqlConnection();

            try
            {
                mySqlConnection.ConnectionString = DadosDaConexao.StringDeConexao;

                // Código Para Inserir Na tabela de Vendas
                MySqlCommand mySqlCommand = new MySqlCommand();
                mySqlCommand.Connection  = mySqlConnection;
                mySqlCommand.CommandType = CommandType.Text;
                mySqlCommand.CommandText = "INSERT INTO tb_Vendas(cod_func,cod_formaPgto,data_venda,total_venda,estado) VALUES(@cod_func,@cod_formaPgto,@data_venda,@total_venda,@estado); Select @@Identity;";

                mySqlConnection.Open(); // Abre a Conexão

                mySqlCommand.Parameters.AddWithValue("@cod_func", modeloVendas.cod_func);
                mySqlCommand.Parameters.AddWithValue("@cod_formaPgto", modeloVendas.cod_formaPgto);
                mySqlCommand.Parameters.AddWithValue("@cod_prod", modeloProduros.cod_prod);
                mySqlCommand.Parameters.AddWithValue("@quant_estoque", modeloProduros.quant_estoque);

                mySqlCommand.Parameters.Add("@data_venda", MySqlDbType.DateTime);
                mySqlCommand.Parameters["@data_venda"].Value = modeloVendas.data_venda;

                mySqlCommand.Parameters.AddWithValue("@total_venda", modeloVendas.total_venda);
                mySqlCommand.Parameters.AddWithValue("@estado", modeloVendas.estado_venda);

                modeloVendas.cod_venda = Convert.ToInt32(mySqlCommand.ExecuteScalar()); //Comando Para Inserir Na tabela de Vendas
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            finally
            {
                mySqlConnection.Close();
            }
        }
Esempio n. 6
0
 public decimal MostrarValorVenda(ModeloVendas venda)
 {
     return(objVendasDal.mostrarValorVenda(venda));
 }
Esempio n. 7
0
        // O método inserir fará operações que afetarão mais de uma tabela,
        // ou seja, inserção na tabela vendas e atualização na tabela produtos.
        public void inserir(ModeloVendas venda, ModeloItensVendas itens)
        {
            string sqlInserirVenda, sqlAtualizarEstoqueProduto;

            // Transação é uma operação que afeta duas ou mais tabelas simultâneas
            // no banco de dados. Neste caso, ocorrerão quatro operações:
            // A primeira fará inserção de dados na tabela vendas;
            // A segunda atualizará o estoque da tabela produtos;
            // A terceira armazenará dados (inserir) na tabela itens_venda;
            // A quarta calcula e atualiza o valor da venda.
            // Inicializa-se o objeto t com um valor nulo.
            MySqlTransaction t = null;

            try
            {
                // inserção de vendas. Modificar os parâmetros com prefixo p para @, porque
                // o .NET reconhece apenas o @ como configuração de parâmetro. Já as
                // stored procedures do MySql somente aceitam os parâmetros com prefixo p
                // ou qualquer letra do alfabeto exceto caracteres especiais como o @.
                cmdVendas.Connection  = conn;
                sqlInserirVenda       = @"insert into vendas(idcliente, data, valor)values
                                (@idcliente, @data, @valor);
                                 select idvenda from vendas where idvenda = LAST_INSERT_ID();";
                cmdVendas.CommandText = sqlInserirVenda;

                // Atualização do estoque
                cmdProdutos.Connection     = conn;
                sqlAtualizarEstoqueProduto = @"update produtos set estoque = estoque - @quantidade
                                             where idproduto = @idproduto and estoque >= @quantidade";
                cmdProdutos.CommandText    = sqlAtualizarEstoqueProduto;
                conn.Open();
                // O objeto Command inicia a primeira transação, configurando o ínicio
                // da transação com o nivel de isolamento serializable. Este é o tipo
                // mais restrito, não permite a leitura, a atualização, inclusão ou
                // exclusão de algum registro da tabela que está sendo lido, até que
                // se encontre o comando commit ou rollback.
                t = conn.BeginTransaction(IsolationLevel.Serializable);
                // O objeto t é vinculado à propriedade transaction do objeto command
                // cmdVendas.
                cmdVendas.Transaction   = t;
                cmdProdutos.Transaction = t;

                // Parâmetros de inserção da tabela vendas
                cmdVendas.Parameters.Clear();
                cmdVendas.Parameters.AddWithValue("@idcliente", venda.Idcliente);
                cmdVendas.Parameters.AddWithValue("@data", venda.Data);
                cmdVendas.Parameters.AddWithValue("@valor", venda.Valor);

                // Parâmetros de atualização do produto
                cmdProdutos.Parameters.Clear();
                cmdProdutos.Parameters.AddWithValue("@idproduto", itens.Idproduto);
                cmdProdutos.Parameters.AddWithValue("@quantidade", itens.Quantidade);

                // O metodo ExecuteScalar retorna um único valor, no caso, idvenda
                // gerado automaticamente pelo banco.
                venda.Idvenda = Convert.ToInt32(cmdVendas.ExecuteScalar());

                // O método ExecuteNomQuery executa o comando update na tabela produtos.
                // Ele não efetua nenhum retorno do banco de dados.
                cmdProdutos.ExecuteNonQuery();

                // Validação da transação através do método Commit. Executa-se
                // a transação nas duas tabelas simultaneamente(vendas e produtos)
                t.Commit();
            }
            catch (MySqlException ex)
            {
                t.Rollback();
                throw new Exception(ex.StackTrace);
            }
            finally
            {
                conn.Close();
            }
        }