using System; using System.Data; using System.Collections.Generic; using Microsoft.Data.SqlClient; using MLL; namespace DALL { public class DALClientes { private readonly string _conexao; public DALClientes(string conexao) { _conexao = conexao; } #region INSERT public bool Inserir(ModeloCliente c) { try { using (SqlConnection conn = new SqlConnection(_conexao)) { string sql = @"INSERT INTO Clientes (EmpresaId, Nome, NomeFantasia, TipoPessoa, Documento, RG, InscricaoMunicipal, DataNascimento, Contato, Telefone1, Telefone2, Celular, Whatsapp, Email, EmailNFe, Site, Grupo, Cep, Endereco, Numero, Complemento, Bairro, Cidade, UF, Pais, LimiteCredito, Bloqueado, ObservacoesCobranca, VendedorPadraoId, TipoConsumidor, Observacoes, CampoExtra1, CampoExtra2, CampoExtra3, Bitcoin, Ethereum, Litecoin, Ativo, UltimaCompra) VALUES (@EmpresaId, @Nome, @NomeFantasia, @TipoPessoa, @Documento, @RG, @InscricaoMunicipal, @DataNascimento, @Contato, @Telefone1, @Telefone2, @Celular, @Whatsapp, @Email, @EmailNFe, @Site, @Grupo, @Cep, @Endereco, @Numero, @Complemento, @Bairro, @Cidade, @UF, @Pais, @LimiteCredito, @Bloqueado, @ObservacoesCobranca, @VendedorPadraoId, @TipoConsumidor, @Observacoes, @CampoExtra1, @CampoExtra2, @CampoExtra3, @Bitcoin, @Ethereum, @Litecoin, @Ativo, @UltimaCompra)"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { PreencherParametros(cmd, c); conn.Open(); return cmd.ExecuteNonQuery() > 0; } } } catch { return false; } }//inserir #endregion #region UPDATE public bool Alterar(ModeloCliente c) { try { using (SqlConnection conn = new SqlConnection(_conexao)) { string sql = @"UPDATE Clientes SET Nome=@Nome, NomeFantasia=@NomeFantasia, TipoPessoa=@TipoPessoa, Documento=@Documento, RG=@RG, InscricaoMunicipal=@InscricaoMunicipal, DataNascimento=@DataNascimento, Contato=@Contato, Telefone1=@Telefone1, Telefone2=@Telefone2, Celular=@Celular, Whatsapp=@Whatsapp, Email=@Email, EmailNFe=@EmailNFe, Site=@Site, Grupo=@Grupo, Cep=@Cep, Endereco=@Endereco, Numero=@Numero, Complemento=@Complemento, Bairro=@Bairro, Cidade=@Cidade, UF=@UF, Pais=@Pais, LimiteCredito=@LimiteCredito, Bloqueado=@Bloqueado, ObservacoesCobranca=@ObservacoesCobranca, VendedorPadraoId=@VendedorPadraoId, TipoConsumidor=@TipoConsumidor, Observacoes=@Observacoes, CampoExtra1=@CampoExtra1, CampoExtra2=@CampoExtra2, CampoExtra3=@CampoExtra3, Bitcoin=@Bitcoin, Ethereum=@Ethereum, Litecoin=@Litecoin, Ativo=@Ativo, UltimaCompra=@UltimaCompra, AtualizadoEm=GETDATE() WHERE Id=@Id"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { PreencherParametros(cmd, c); cmd.Parameters.AddWithValue("@Id", c.Id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } } } catch { return false; } }//Alterar #endregion #region DELETE public bool Excluir(int id) { try { using (SqlConnection conn = new SqlConnection(_conexao)) { string sql = "DELETE FROM Clientes WHERE Id=@Id"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddWithValue("@Id", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } } } catch { return false; } }//Excluir #endregion #region SELECT POR ID public ModeloCliente Carregar(int id) { ModeloCliente c = null; using (SqlConnection conn = new SqlConnection(_conexao)) { string sql = "SELECT * FROM Clientes WHERE Id=@Id"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddWithValue("@Id", id); conn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { c = new ModeloCliente(); PreencherModelo(c, dr); } } } } return c; }//CarregarModelo #endregion #region LISTAR public List Listar() { var lista = new List(); using (SqlConnection conn = new SqlConnection(_conexao)) { string sql = "SELECT * FROM Clientes ORDER BY Nome"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { conn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { var c = new ModeloCliente(); PreencherModelo(c, dr); lista.Add(c); } } } } return lista; }//Listar Clientes #endregion #region AUX PARAMETROS private void PreencherParametros(SqlCommand cmd, ModeloCliente c) { cmd.Parameters.AddWithValue("@EmpresaId", c.EmpresaId); cmd.Parameters.AddWithValue("@Nome", c.Nome); cmd.Parameters.AddWithValue("@NomeFantasia", (object?)c.NomeFantasia ?? DBNull.Value); cmd.Parameters.AddWithValue("@TipoPessoa", c.TipoPessoa); cmd.Parameters.AddWithValue("@Documento", c.Documento); cmd.Parameters.AddWithValue("@RG", (object?)c.RG ?? DBNull.Value); cmd.Parameters.AddWithValue("@InscricaoMunicipal", (object?)c.InscricaoMunicipal ?? DBNull.Value); cmd.Parameters.AddWithValue("@DataNascimento", c.DataNascimento ?? (object)DBNull.Value); cmd.Parameters.AddWithValue("@Contato", (object?)c.Contato ?? DBNull.Value); cmd.Parameters.AddWithValue("@Telefone1", (object?)c.Telefone1 ?? DBNull.Value); cmd.Parameters.AddWithValue("@Telefone2", (object?)c.Telefone2 ?? DBNull.Value); cmd.Parameters.AddWithValue("@Celular", (object?)c.Celular ?? DBNull.Value); cmd.Parameters.AddWithValue("@Whatsapp", (object?)c.Whatsapp ?? DBNull.Value); cmd.Parameters.AddWithValue("@Email", (object?)c.Email ?? DBNull.Value); cmd.Parameters.AddWithValue("@EmailNFe", (object?)c.EmailNFe ?? DBNull.Value); cmd.Parameters.AddWithValue("@Site", (object?)c.Site ?? DBNull.Value); cmd.Parameters.AddWithValue("@Grupo", (object?)c.Grupo ?? DBNull.Value); cmd.Parameters.AddWithValue("@Cep", (object?)c.Cep ?? DBNull.Value); cmd.Parameters.AddWithValue("@Endereco", (object?)c.Endereco ?? DBNull.Value); cmd.Parameters.AddWithValue("@Numero", c.Numero ?? (object)DBNull.Value); cmd.Parameters.AddWithValue("@Complemento", (object?)c.Complemento ?? DBNull.Value); cmd.Parameters.AddWithValue("@Bairro", (object?)c.Bairro ?? DBNull.Value); cmd.Parameters.AddWithValue("@Cidade", (object?)c.Cidade ?? DBNull.Value); cmd.Parameters.AddWithValue("@UF", (object?)c.UF ?? DBNull.Value); cmd.Parameters.AddWithValue("@Pais", (object?)c.Pais ?? DBNull.Value); cmd.Parameters.AddWithValue("@LimiteCredito", c.LimiteCredito); cmd.Parameters.AddWithValue("@Bloqueado", c.Bloqueado); cmd.Parameters.AddWithValue("@ObservacoesCobranca", (object?)c.ObservacoesCobranca ?? DBNull.Value); cmd.Parameters.AddWithValue("@VendedorPadraoId", c.VendedorPadraoId ?? (object)DBNull.Value); cmd.Parameters.AddWithValue("@TipoConsumidor", (object?)c.TipoConsumidor ?? DBNull.Value); cmd.Parameters.AddWithValue("@Observacoes", (object?)c.Observacoes ?? DBNull.Value); cmd.Parameters.AddWithValue("@CampoExtra1", (object?)c.CampoExtra1 ?? DBNull.Value); cmd.Parameters.AddWithValue("@CampoExtra2", (object?)c.CampoExtra2 ?? DBNull.Value); cmd.Parameters.AddWithValue("@CampoExtra3", (object?)c.CampoExtra3 ?? DBNull.Value); cmd.Parameters.AddWithValue("@Bitcoin", (object?)c.Bitcoin ?? DBNull.Value); cmd.Parameters.AddWithValue("@Ethereum", (object?)c.Ethereum ?? DBNull.Value); cmd.Parameters.AddWithValue("@Litecoin", (object?)c.Litecoin ?? DBNull.Value); cmd.Parameters.AddWithValue("@Ativo", c.Ativo); cmd.Parameters.AddWithValue("@UltimaCompra", c.UltimaCompra ?? (object)DBNull.Value); } #endregion #region AUX MODEL private void PreencherModelo(ModeloCliente c, SqlDataReader dr) { c.Id = Convert.ToInt32(dr["Id"]); c.EmpresaId = Convert.ToInt32(dr["EmpresaId"]); c.Nome = dr["Nome"].ToString(); c.NomeFantasia = dr["NomeFantasia"]?.ToString(); c.TipoPessoa = dr["TipoPessoa"].ToString(); c.Documento = dr["Documento"].ToString(); c.RG = dr["RG"]?.ToString(); c.InscricaoMunicipal = dr["InscricaoMunicipal"]?.ToString(); c.DataNascimento = dr["DataNascimento"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dr["DataNascimento"]); c.Contato = dr["Contato"]?.ToString(); c.Telefone1 = dr["Telefone1"]?.ToString(); c.Telefone2 = dr["Telefone2"]?.ToString(); c.Celular = dr["Celular"]?.ToString(); c.Whatsapp = dr["Whatsapp"]?.ToString(); c.Email = dr["Email"]?.ToString(); c.EmailNFe = dr["EmailNFe"]?.ToString(); c.Site = dr["Site"]?.ToString(); c.Grupo = dr["Grupo"]?.ToString(); c.Cep = dr["Cep"]?.ToString(); c.Endereco = dr["Endereco"]?.ToString(); c.Numero = dr["Numero"] == DBNull.Value ? null : (int?)Convert.ToInt32(dr["Numero"]); c.Complemento = dr["Complemento"]?.ToString(); c.Bairro = dr["Bairro"]?.ToString(); c.Cidade = dr["Cidade"]?.ToString(); c.UF = dr["UF"]?.ToString(); c.Pais = dr["Pais"]?.ToString(); c.LimiteCredito = Convert.ToDecimal(dr["LimiteCredito"]); c.Bloqueado = Convert.ToBoolean(dr["Bloqueado"]); c.ObservacoesCobranca = dr["ObservacoesCobranca"]?.ToString(); c.VendedorPadraoId = dr["VendedorPadraoId"] == DBNull.Value ? null : (int?)Convert.ToInt32(dr["VendedorPadraoId"]); c.TipoConsumidor = dr["TipoConsumidor"]?.ToString(); c.Observacoes = dr["Observacoes"]?.ToString(); c.CampoExtra1 = dr["CampoExtra1"]?.ToString(); c.CampoExtra2 = dr["CampoExtra2"]?.ToString(); c.CampoExtra3 = dr["CampoExtra3"]?.ToString(); c.Bitcoin = dr["Bitcoin"]?.ToString(); c.Ethereum = dr["Ethereum"]?.ToString(); c.Litecoin = dr["Litecoin"]?.ToString(); c.Ativo = Convert.ToBoolean(dr["Ativo"]); c.UltimaCompra = dr["UltimaCompra"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dr["UltimaCompra"]); c.CriadoEm = Convert.ToDateTime(dr["CriadoEm"]); c.AtualizadoEm = Convert.ToDateTime(dr["AtualizadoEm"]); } #endregion } }