예제 #1
0
        public void inserir(Venda v)
        {
            try
            {
                conn.AbrirConexao();
                string sql = "INSERT INTO Venda (cl_id, vn_receita, vn_valortotal, vn_desconto, vn_formapagamento, vn_dtsaida ) VALUES ( @cl_id, @vn_receita, @vn_valortotal, @vn_desconto, @vn_formapagamento, @vn_dtsaida) SELECT SCOPE_IDENTITY()";
                //instrucao a ser executada
                SqlCommand cmd = new SqlCommand(sql, conn.cone);

                cmd.Parameters.Add("@cl_id", SqlDbType.Int);
                cmd.Parameters["@cl_id"].Value = v.Cliente.Cl_id;

                cmd.Parameters.Add("@vn_receita", SqlDbType.Int);
                cmd.Parameters["@vn_receita"].Value = v.Vn_receita;

                cmd.Parameters.Add("@vn_valortotal", SqlDbType.Decimal);
                cmd.Parameters["@vn_valortotal"].Value = v.Vn_valortotal;

                cmd.Parameters.Add("@vn_desconto", SqlDbType.Decimal);
                cmd.Parameters["@vn_desconto"].Value = v.Vn_desconto;

                cmd.Parameters.Add("@vn_formapagamento", SqlDbType.VarChar);
                cmd.Parameters["@vn_formapagamento"].Value = v.Vn_formapagamento;

                cmd.Parameters.Add("@vn_dtsaida", SqlDbType.Date);
                cmd.Parameters["@vn_dtsaida"].Value = v.Vn_dtsaida;


                Int32 vnId = Convert.ToInt32(cmd.ExecuteScalar());
                //executando a instrucao
                //cmd.ExecuteNonQuery();

                //int vnId = (int) cmd.ExecuteScalar();



                foreach (ProdutoVenda pv in v.Listaitens)
                {
                    ConexaoBD conn1 = new ConexaoBD();

                    conn1.AbrirConexao();

                    string     sqlitens = "INSERT INTO Produtovenda (vn_id, pr_id,pv_qtd, pv_preco) VALUES ( @vn_id, @pr_id,@pv_qtd, @pv_preco)";
                    SqlCommand cmd1     = new SqlCommand(sqlitens, conn.cone);


                    cmd1.Parameters.Add("@pr_id", SqlDbType.Int);
                    cmd1.Parameters["@pr_id"].Value = pv.Produto.Pr_id;

                    cmd1.Parameters.Add("@pv_qtd", SqlDbType.Int);
                    cmd1.Parameters["@pv_qtd"].Value = pv.Pv_qtd;

                    cmd1.Parameters.Add("@pv_preco", SqlDbType.Decimal);
                    cmd1.Parameters["@pv_preco"].Value = pv.Pv_preco;

                    cmd1.Parameters.Add("@vn_id", SqlDbType.Int);
                    cmd1.Parameters["@vn_id"].Value = vnId;

                    //int recordsInserted = cmd.ExecuteNonQuery();
                    cmd1.ExecuteNonQuery();
                    cmd1.Dispose();
                    conn1.FecharConexao();
                }


                //liberando a memoria
                cmd.Dispose();


                if (conn.State == System.Data.ConnectionState.Open)
                {
                    //fechando a conexao
                    conn.FecharConexao();
                }
            }
            catch (SqlException e)
            {
                throw new BancoDeDadosException("Falha na comunicação com o banco de dados. \n" + e.Message);
            }
        }