public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } Livro livro = (Livro)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM tb_livro JOIN tb_livro_autor ON (tb_livro.id_livro = tb_livro_autor.id_livro) "); sql.Append(" JOIN tb_autor ON (tb_livro_autor.id_autor = tb_autor.id_autor) "); sql.Append(" JOIN tb_livro_cat ON (tb_livro.id_livro = tb_livro_cat.id_livro) "); sql.Append(" JOIN tb_cat_livro ON (tb_livro_cat.id_cat_livro = tb_cat_livro.id_cat_livro) "); sql.Append(" JOIN tb_editora ON (tb_livro.editora_fk = tb_editora.id_editora) "); sql.Append(" JOIN tb_cidades ON (tb_editora.cidade_fk = tb_cidades.id_cidade) "); sql.Append(" JOIN tb_estados ON (tb_cidades.estado_id = tb_estados.id_estado) "); sql.Append(" JOIN tb_paises ON (tb_estados.pais_id = tb_paises.id_pais) "); sql.Append(" JOIN tb_dimensoes ON (tb_livro.dimensoes_fk = tb_dimensoes.id_dimensoes) "); sql.Append(" JOIN tb_grupo_preco ON (tb_grupo_preco.id_grupo_preco = tb_livro.grupo_preco_fk) "); sql.Append(" JOIN tb_cat_motivo ON (tb_cat_motivo.id_cat_motivo = tb_livro.categoria_motivo_fk) "); // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query sql.Append("WHERE 1 = 1 "); if (livro.ID != 0) { sql.Append("AND tb_livro.id_livro = :1 "); } if (livro.Autores.Count > 0) { if (livro.Autores.ElementAt(0).ID != 0) { sql.Append("AND tb_autor.id_autor = :2 "); } if (!String.IsNullOrEmpty(livro.Autores.ElementAt(0).Nome)) { sql.Append("AND nome_autor = :3 "); } } if (livro.Categorias.Count > 0) { if (livro.Categorias.ElementAt(0).ID != 0) { sql.Append("AND tb_cat_livro.id_cat_livro = :4 "); } if (!String.IsNullOrEmpty(livro.Categorias.ElementAt(0).Nome)) { sql.Append("AND nome_cat_livro = :5 "); } if (!String.IsNullOrEmpty(livro.Categorias.ElementAt(0).Descricao)) { sql.Append("AND descricao_cat_livro = :6 "); } } if (!String.IsNullOrEmpty(livro.Ano)) { sql.Append("AND ano_livro = :7 "); } if (!String.IsNullOrEmpty(livro.Titulo)) { sql.Append("AND titulo_livro = :8 "); } if (livro.Editora != null) { if (livro.Editora.ID != 0) { sql.Append("AND id_editora = :9 "); } if (!String.IsNullOrEmpty(livro.Editora.Nome)) { sql.Append("AND nome_editora = :10 "); } } if (!String.IsNullOrEmpty(livro.Edicao)) { sql.Append("AND edicao_livro = :11 "); } if (!String.IsNullOrEmpty(livro.ISBN)) { sql.Append("AND isbn = :12 "); } if (!String.IsNullOrEmpty(livro.NumeroPaginas)) { sql.Append("AND numero_paginas = :13 "); } if (!String.IsNullOrEmpty(livro.Sinopse)) { sql.Append("AND sinopse = :14 "); } if (livro.Dimensoes != null) { if (livro.Dimensoes.ID != 0) { sql.Append("AND id_dimensoes = :15 "); } if (livro.Dimensoes.Altura != 0) { sql.Append("AND altura = :16 "); } if (livro.Dimensoes.Largura != 0) { sql.Append("AND largura = :17 "); } if (livro.Dimensoes.Profundidade != 0) { sql.Append("AND profundidade = :18 "); } if (livro.Dimensoes.Peso != 0.0) { sql.Append("AND peso = :19 "); } } if (livro.GrupoPrecificacao != null) { if (livro.GrupoPrecificacao.ID != 0) { sql.Append("AND id_grupo_preco = :20 "); } if (!String.IsNullOrEmpty(livro.GrupoPrecificacao.Nome)) { sql.Append("AND nome_grupo_preco = :21 "); } if (livro.GrupoPrecificacao.MargemLucro != 0.0) { sql.Append("AND margem_lucro = :22 "); } } if (!String.IsNullOrEmpty(livro.CodigoBarras)) { sql.Append("AND codigo_barras_livro = :23 "); } if (livro.CategoriaMotivo != null) { if (livro.CategoriaMotivo.ID != 0) { sql.Append("AND id_cat_motivo = :24 "); } if (livro.CategoriaMotivo.Ativo != 'Z') { sql.Append("AND ativo = :25 "); } } if (!String.IsNullOrEmpty(livro.Motivo)) { sql.Append("AND motivo = :26 "); } if (livro.DataCadastro != null) { sql.Append("AND dt_cadastro_livro = :27 "); } sql.Append("ORDER BY tb_livro.id_livro, tb_autor.id_autor, tb_cat_livro.id_cat_livro "); pst.CommandText = sql.ToString(); parameters = new NpgsqlParameter[] { new NpgsqlParameter("1", livro.ID), new NpgsqlParameter("7", livro.Ano), new NpgsqlParameter("8", livro.Titulo), new NpgsqlParameter("9", livro.Editora.ID), new NpgsqlParameter("10", livro.Editora.Nome), new NpgsqlParameter("11", livro.Edicao), new NpgsqlParameter("12", livro.ISBN), new NpgsqlParameter("13", livro.NumeroPaginas), new NpgsqlParameter("14", livro.Sinopse), new NpgsqlParameter("15", livro.Dimensoes.ID), new NpgsqlParameter("16", livro.Dimensoes.Altura), new NpgsqlParameter("17", livro.Dimensoes.Largura), new NpgsqlParameter("18", livro.Dimensoes.Profundidade), new NpgsqlParameter("19", livro.Dimensoes.Peso), new NpgsqlParameter("20", livro.GrupoPrecificacao.ID), new NpgsqlParameter("21", livro.GrupoPrecificacao.Nome), new NpgsqlParameter("22", livro.GrupoPrecificacao.MargemLucro), new NpgsqlParameter("23", livro.CodigoBarras), new NpgsqlParameter("24", livro.CategoriaMotivo.ID), new NpgsqlParameter("25", livro.CategoriaMotivo.Ativo), new NpgsqlParameter("26", livro.Motivo) }; if (livro.Autores.Count > 0) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("2", livro.Autores.ElementAt(0).ID), new NpgsqlParameter("3", livro.Autores.ElementAt(0).Nome) }; parameters.Concat(parametersAux); } if (livro.Categorias.Count > 0) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("4", livro.Categorias.ElementAt(0).ID), new NpgsqlParameter("5", livro.Categorias.ElementAt(0).Nome), new NpgsqlParameter("6", livro.Categorias.ElementAt(0).Descricao) }; parameters.Concat(parametersAux); } if (livro.DataCadastro != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("27", livro.DataCadastro) }; parameters.Concat(parametersAux); } pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os livros encontrados List <EntidadeDominio> livros = new List <EntidadeDominio>(); Livro livroAux = new Livro(); livroAux.ID = 0; Autor autor = new Autor(); Categoria categoria = new Categoria(); Autor autorAux = new Autor(); CartaoCredito categoriaAux = new CartaoCredito(); livro = new Livro(); while (reader.Read()) { // verifica se livro que está trazendo do BD é igual ao anterior if (Convert.ToInt32(reader["id_livro"]) != livroAux.ID) { livro = new Livro(); livro.ID = Convert.ToInt32(reader["id_livro"]); // passando id do livro que está vindo para o auxiliar livroAux.ID = livro.ID; //// -------------------- AUTOR - COMEÇO ---------------------------------- autor = new Autor(); autor.ID = Convert.ToInt32(reader["id_autor"]); autor.Nome = reader["nome_autor"].ToString(); livro.Autores.Add(autor); autorAux.ID = autor.ID; //// -------------------- AUTOR - FIM ---------------------------------- // -------------------- CATEGORIA LIVRO - COMEÇO ---------------------------------- categoria = new Categoria(); categoria.ID = Convert.ToInt32(reader["id_cat_livro"]); categoria.Nome = reader["nome_cat_livro"].ToString(); categoria.Descricao = reader["descricao_cat_livro"].ToString(); livro.Categorias.Add(categoria); categoriaAux.ID = categoria.ID; // -------------------- CATEGORIA LIVRO - FIM ---------------------------------- livro.Ano = reader["ano_livro"].ToString(); livro.Titulo = reader["titulo_livro"].ToString(); // -------------------- EDITORA - COMEÇO ---------------------------------- livro.Editora.ID = Convert.ToInt32(reader["id_editora"]); livro.Editora.Nome = reader["nome_editora"].ToString(); livro.Editora.Cidade.ID = Convert.ToInt32(reader["id_cidade"]); livro.Editora.Cidade.Nome = reader["nome_cidade"].ToString(); // -------------------- EDITORA - FIM ---------------------------------- livro.Edicao = reader["edicao_livro"].ToString(); livro.ISBN = reader["isbn"].ToString(); livro.NumeroPaginas = reader["numero_paginas"].ToString(); livro.Sinopse = reader["sinopse"].ToString(); // -------------------- DIMENSÕES - COMEÇO ---------------------------------- livro.Dimensoes.ID = Convert.ToInt32(reader["id_dimensoes"]); livro.Dimensoes.Altura = Convert.ToInt32(reader["altura"]); livro.Dimensoes.Largura = Convert.ToInt32(reader["largura"]); livro.Dimensoes.Profundidade = Convert.ToInt32(reader["profundidade"]); livro.Dimensoes.Peso = Convert.ToSingle(reader["peso"]); // -------------------- DIMENSÕES - FIM ---------------------------------- // -------------------- GRUPO PRECIFICAÇÃO - COMEÇO ---------------------------------- livro.GrupoPrecificacao.ID = Convert.ToInt32(reader["id_grupo_preco"]); livro.GrupoPrecificacao.Nome = reader["nome_grupo_preco"].ToString(); livro.GrupoPrecificacao.MargemLucro = Convert.ToSingle(reader["margem_lucro"]); // -------------------- GRUPO PRECIFICAÇÃO - FIM ---------------------------------- livro.CodigoBarras = reader["codigo_barras_livro"].ToString(); // -------------------- CATEGORIA MOTIVO - COMEÇO ---------------------------------- livro.CategoriaMotivo.ID = Convert.ToInt32(reader["id_cat_motivo"]); livro.CategoriaMotivo.Ativo = reader["ativo"].ToString().First(); livro.CategoriaMotivo.Nome = reader["nome_cat_motivo"].ToString(); livro.CategoriaMotivo.Descricao = reader["descricao_cat_motivo"].ToString(); // -------------------- CATEGORIA MOTIVO - FIM ---------------------------------- livro.Motivo = reader["motivo"].ToString(); livro.DataCadastro = Convert.ToDateTime(reader["dt_cadastro_livro"].ToString()); } else { //// -------------------- AUTOR - COMEÇO ---------------------------------- autor = new Autor(); autor.ID = Convert.ToInt32(reader["id_autor"]); if (autorAux.ID != autor.ID) { autor.Nome = reader["nome_autor"].ToString(); livro.Autores.Add(autor); autorAux.ID = autor.ID; } //// -------------------- AUTOR - FIM ---------------------------------- // -------------------- CATEGORIA LIVRO - COMEÇO ---------------------------------- categoria = new Categoria(); categoria.ID = Convert.ToInt32(reader["id_cat_livro"]); if (categoriaAux.ID != categoria.ID) { categoria.Nome = reader["nome_cat_livro"].ToString(); categoria.Descricao = reader["descricao_cat_livro"].ToString(); livro.Categorias.Add(categoria); categoriaAux.ID = categoria.ID; } // -------------------- CATEGORIA LIVRO - FIM ---------------------------------- } livros.Add(livro); } connection.Close(); return(livros); }
public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } ClientePF cliente = (ClientePF)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM tb_cliente_pf JOIN tb_telefone ON (tb_cliente_pf.telefone_cli_fk = tb_telefone.id_telefone) "); sql.Append(" JOIN tb_tipo_telefone ON (tb_telefone.tipo_telefone_fk = tb_tipo_telefone.id_tipo_tel) "); //sql.Append(" JOIN tb_cliente_endereco ON (tb_cliente_pf.id_cli_pf = tb_cliente_endereco.id_cliente) "); //sql.Append(" JOIN tb_endereco ON (tb_cliente_endereco.id_endereco = tb_endereco.id_endereco) "); //sql.Append(" JOIN tb_cidades ON (tb_endereco.cidade_fk = tb_cidades.id_cidade) "); //sql.Append(" JOIN tb_estados ON (tb_cidades.estado_id = tb_estados.id_estado) "); //sql.Append(" JOIN tb_paises ON (tb_estados.pais_id = tb_paises.id_pais) "); //sql.Append(" JOIN tb_tipo_residencia ON (tb_endereco.tipo_residencia_fk = tb_tipo_residencia.id_tipo_res) "); //sql.Append(" JOIN tb_tipo_logradouro ON (tb_endereco.tipo_logradouro_fk = tb_tipo_logradouro.id_tipo_log) "); //sql.Append(" LEFT JOIN tb_cliente_cartao ON (tb_cliente_pf.id_cli_pf = tb_cliente_cartao.id_cliente) "); //sql.Append(" LEFT JOIN tb_cartao_credito ON (tb_cliente_cartao.id_cartao = tb_cartao_credito.id_cc) "); //sql.Append(" LEFT JOIN tb_bandeira ON (tb_cartao_credito.bandeira_cc_fk = tb_bandeira.id_bandeira) "); // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query sql.Append("WHERE 1 = 1 "); if (cliente.ID != 0) { sql.Append("AND id_cli_pf = :1 "); } if (!String.IsNullOrEmpty(cliente.Nome)) { sql.Append("AND nome_cli_pf = :2 "); } // caso precisar fazer consulta combinada para mais de um endereço // falta implementação e teste //if(cliente.Enderecos != null) //{ // List<Endereco> enderecos = cliente.Enderecos; // foreach (Endereco endereco in enderecos) // { // if (endereco.ID != 0) // { // sql.Append("AND tb_endereco.id = :3 "); // } // if (endereco.TipoResidencia.ID != 0) // { // sql.Append("AND tb_tipo_residencia.id = :4 "); // } // if (endereco.TipoLogradouro.ID != 0) // { // sql.Append("AND tb_tipo_logradouro.id = :5 "); // } // if (!String.IsNullOrEmpty(endereco.Rua)) // { // sql.Append("AND tb_endereco.logradouro = :6 "); // } // if (!String.IsNullOrEmpty(endereco.Numero)) // { // sql.Append("AND tb_endereco.numero = :7 "); // } // if (!String.IsNullOrEmpty(endereco.Bairro)) // { // sql.Append("AND tb_endereco.bairro = :8 "); // } // if (endereco.Cidade.ID != 0) // { // sql.Append("AND tb_cidades.id = :9 "); // } // if (endereco.Cidade.Estado.ID != 0) // { // sql.Append("AND tb_estados.id = :10 "); // } // if (endereco.Cidade.Estado.Pais.ID != 0) // { // sql.Append("AND tb_paises.id = :11 "); // } // if (!String.IsNullOrEmpty(endereco.CEP)) // { // sql.Append("AND tb_endereco.cep = :12 "); // } // if (!String.IsNullOrEmpty(endereco.Observacao)) // { // sql.Append("AND tb_endereco.observacao = :13 "); // } // } //} //if (cliente.Enderecos.Count > 0) //{ // if (cliente.Enderecos.ElementAt(0).ID != 0) // { // sql.Append("AND id_endereco = :3 "); // } // if (cliente.Enderecos.ElementAt(0).TipoResidencia.ID != 0) // { // sql.Append("AND id_tipo_res = :4 "); // } // if (cliente.Enderecos.ElementAt(0).TipoLogradouro.ID != 0) // { // sql.Append("AND id_tipo_log = :5 "); // } // if (!String.IsNullOrEmpty(cliente.Enderecos.ElementAt(0).Rua)) // { // sql.Append("AND log_endereco = :6 "); // } // if (!String.IsNullOrEmpty(cliente.Enderecos.ElementAt(0).Numero)) // { // sql.Append("AND numero_endereco = :7 "); // } // if (!String.IsNullOrEmpty(cliente.Enderecos.ElementAt(0).Bairro)) // { // sql.Append("AND bairro_endereco = :8 "); // } // if (cliente.Enderecos.ElementAt(0).Cidade.ID != 0) // { // sql.Append("AND id_cidade = :9 "); // } // if (cliente.Enderecos.ElementAt(0).Cidade.Estado.ID != 0) // { // sql.Append("AND id_estado = :10 "); // } // if (cliente.Enderecos.ElementAt(0).Cidade.Estado.Pais.ID != 0) // { // sql.Append("AND id_pais = :11 "); // } // if (!String.IsNullOrEmpty(cliente.Enderecos.ElementAt(0).CEP)) // { // sql.Append("AND cep_endereco = :12 "); // } // if (!String.IsNullOrEmpty(cliente.Enderecos.ElementAt(0).Observacao)) // { // sql.Append("AND observacao_endereco = :13 "); // } //} if (cliente.Telefone != null) { Telefone telefone = cliente.Telefone; if (telefone.ID != 0) { sql.Append("AND id_telefone = :14 "); } if (telefone.TipoTelefone.ID != 0) { sql.Append("AND id_tipo_tel = :15 "); } if (!String.IsNullOrEmpty(telefone.DDD)) { sql.Append("AND ddd_telefone = :16 "); } if (!String.IsNullOrEmpty(telefone.NumeroTelefone)) { sql.Append("AND numero_telefone = :17 "); } } if (!String.IsNullOrEmpty(cliente.Email)) { sql.Append("AND email_cli_pf = :18 "); } // caso precise fazer pesquisa combinada para mais de um cartão // falta implementação e teste //if (cliente.CartoesCredito != null) //{ // List<CartaoCredito> cartoes = cliente.CartoesCredito; // foreach (CartaoCredito cc in cliente.CartoesCredito) // { // if (cc.ID != 0) // { // sql.Append("AND tb_cartao_credito.id = :19 "); // } // if (!String.IsNullOrEmpty(cc.NomeImpresso)) // { // sql.Append("AND tb_cartao_credito.nome_impresso = :20 "); // } // if (!String.IsNullOrEmpty(cc.NumeroCC)) // { // sql.Append("AND tb_cartao_credito.numero = :21 "); // } // if (cc.Bandeira.ID != 0) // { // sql.Append("AND tb_bandeira.id = :22 "); // } // if (!String.IsNullOrEmpty(cc.CodigoSeguranca)) // { // sql.Append("AND tb_cartao_credito.codigo_seguranca = :23 "); // } // if (cc.DataVencimento != null && !cc.DataVencimento.ToString().Equals(null)) // { // sql.Append("AND tb_cartao_credito.dt_vencimento = :24 "); // } // } //} //if (cliente.CartoesCredito.Count > 0) //{ // if (cliente.CartoesCredito.ElementAt(0).ID != 0) // { // sql.Append("AND id_cc = :19 "); // } // if (!String.IsNullOrEmpty(cliente.CartoesCredito.ElementAt(0).NomeImpresso)) // { // sql.Append("AND nome_impresso_cc = :20 "); // } // if (!String.IsNullOrEmpty(cliente.CartoesCredito.ElementAt(0).NumeroCC)) // { // sql.Append("AND numero_cc = :21 "); // } // if (cliente.CartoesCredito.ElementAt(0).Bandeira.ID != 0) // { // sql.Append("AND id_bandeira = :22 "); // } // if (!String.IsNullOrEmpty(cliente.CartoesCredito.ElementAt(0).CodigoSeguranca)) // { // sql.Append("AND codigo_seguranca_cc = :23 "); // } //} if (!String.IsNullOrEmpty(cliente.CPF)) { sql.Append("AND cpf_cli_pf = :24 "); } if (!cliente.Genero.Equals("") && !cliente.Genero.Equals(null) && !cliente.Genero.Equals('\0') && !cliente.Genero.Equals('0')) { sql.Append("AND genero_cli_pf = :25 "); } if (cliente.DataNascimento != null && !cliente.DataNascimento.Equals(null)) { sql.Append("AND dt_nascimento_cli_pf = :26 "); } if (cliente.DataCadastro != null) { sql.Append("AND dt_cadastro_cli_pf = :27 "); } //sql.Append("ORDER BY id_cli_pf, tb_endereco.id_endereco, tb_cartao_credito.id_cc "); sql.Append("ORDER BY id_cli_pf "); pst.CommandText = sql.ToString(); parameters = new NpgsqlParameter[] { new NpgsqlParameter("1", cliente.ID), new NpgsqlParameter("2", cliente.Nome), new NpgsqlParameter("14", cliente.Telefone.ID), new NpgsqlParameter("15", cliente.Telefone.TipoTelefone.ID), new NpgsqlParameter("16", cliente.Telefone.DDD), new NpgsqlParameter("17", cliente.Telefone.NumeroTelefone), new NpgsqlParameter("18", cliente.Email), new NpgsqlParameter("24", cliente.CPF), new NpgsqlParameter("25", cliente.Genero) }; //if (cliente.Enderecos.Count > 0) //{ // NpgsqlParameter[] parametersAux = new NpgsqlParameter[] // { // new NpgsqlParameter("3", cliente.Enderecos.ElementAt(0).ID), // new NpgsqlParameter("4", cliente.Enderecos.ElementAt(0).TipoResidencia.ID), // new NpgsqlParameter("5", cliente.Enderecos.ElementAt(0).TipoLogradouro.ID), // new NpgsqlParameter("6", cliente.Enderecos.ElementAt(0).Rua), // new NpgsqlParameter("7", cliente.Enderecos.ElementAt(0).Numero), // new NpgsqlParameter("8", cliente.Enderecos.ElementAt(0).Bairro), // new NpgsqlParameter("9", cliente.Enderecos.ElementAt(0).Cidade.ID), // new NpgsqlParameter("10", cliente.Enderecos.ElementAt(0).Cidade.Estado.ID), // new NpgsqlParameter("11", cliente.Enderecos.ElementAt(0).Cidade.Estado.Pais.ID), // new NpgsqlParameter("12", cliente.Enderecos.ElementAt(0).CEP), // new NpgsqlParameter("13", cliente.Enderecos.ElementAt(0).Observacao) // }; // parameters.Concat(parametersAux); //} //if (cliente.CartoesCredito.Count > 0) //{ // NpgsqlParameter[] parametersAux = new NpgsqlParameter[] // { // new NpgsqlParameter("19", cliente.CartoesCredito.ElementAt(0).ID), // new NpgsqlParameter("20", cliente.CartoesCredito.ElementAt(0).NomeImpresso), // new NpgsqlParameter("21", cliente.CartoesCredito.ElementAt(0).NumeroCC), // new NpgsqlParameter("22", cliente.CartoesCredito.ElementAt(0).Bandeira.ID), // new NpgsqlParameter("23", cliente.CartoesCredito.ElementAt(0).CodigoSeguranca) // }; // parameters.Concat(parametersAux); //} if (cliente.DataNascimento != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("26", cliente.DataNascimento) }; parameters.Concat(parametersAux); } if (cliente.DataCadastro != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("27", cliente.DataCadastro) }; parameters.Concat(parametersAux); } pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os clientes encontrados List <EntidadeDominio> clientes = new List <EntidadeDominio>(); ClientePF clienteAux = new ClientePF(); clienteAux.ID = 0; Endereco endereco = new Endereco(); CartaoCredito cc = new CartaoCredito(); Endereco enderecoAux = new Endereco(); CartaoCredito ccAux = new CartaoCredito(); cliente = new ClientePF(); while (reader.Read()) { // verifica se cliente que está trazendo do BD é igual ao anterior if (Convert.ToInt32(reader["id_cli_pf"]) != clienteAux.ID) { cliente = new ClientePF(); cliente.ID = Convert.ToInt32(reader["id_cli_pf"]); // passando id do cliente que está vindo para o auxiliar clienteAux.ID = cliente.ID; cliente.Nome = reader["nome_cli_pf"].ToString(); ////// -------------------- ENDEREÇO - COMEÇO ---------------------------------- ////ClientePFXEnderecoDAO clientePFXEnderecoDAO = new ClientePFXEnderecoDAO(); ////List<EntidadeDominio> entidades = clientePFXEnderecoDAO.Consultar(cliente); ////foreach (EntidadeDominio endereco in entidades) //// //foreach (Endereco endereco in new ClientePFXEnderecoDAO(connection, ctrlTransaction).Consultar(cliente)) ////{ //// cliente.Enderecos.Add((Endereco)endereco); ////} //endereco = new Endereco(); //endereco.ID = Convert.ToInt32(reader["id_endereco"]); //endereco.Nome = reader["nome_endereco"].ToString(); //endereco.Destinatario = reader["destinatario_endereco"].ToString(); //endereco.TipoResidencia.ID = Convert.ToInt32(reader["id_tipo_res"]); //endereco.TipoResidencia.Nome = reader["nome_tipo_res"].ToString(); //endereco.TipoLogradouro.ID = Convert.ToInt32(reader["id_tipo_log"]); //endereco.TipoLogradouro.Nome = reader["nome_tipo_log"].ToString(); //endereco.Rua = reader["log_endereco"].ToString(); //endereco.Numero = reader["numero_endereco"].ToString(); //endereco.Bairro = reader["bairro_endereco"].ToString(); //endereco.Cidade.ID = Convert.ToInt32(reader["id_cidade"].ToString()); //endereco.Cidade.Nome = reader["nome_cidade"].ToString(); //endereco.Cidade.Estado.ID = Convert.ToInt32(reader["id_estado"].ToString()); //endereco.Cidade.Estado.Nome = reader["nome_estado"].ToString(); //endereco.Cidade.Estado.Sigla = reader["sigla_estado"].ToString(); //endereco.Cidade.Estado.Pais.ID = Convert.ToInt32(reader["id_pais"].ToString()); //endereco.Cidade.Estado.Pais.Nome = reader["nome_pais"].ToString(); //endereco.Cidade.Estado.Pais.Sigla = reader["sigla_pais"].ToString(); //endereco.CEP = reader["cep_endereco"].ToString(); //endereco.Observacao = reader["observacao_endereco"].ToString(); //cliente.Enderecos.Add(endereco); //enderecoAux.ID = endereco.ID; ////// -------------------- ENDEREÇO - FIM ---------------------------------- // -------------------- TELEFONE - COMEÇO ---------------------------------- cliente.Telefone.ID = Convert.ToInt32(reader["id_telefone"]); cliente.Telefone.TipoTelefone.ID = Convert.ToInt32(reader["id_tipo_tel"]); cliente.Telefone.TipoTelefone.Nome = reader["nome_tipo_tel"].ToString(); cliente.Telefone.DDD = reader["ddd_telefone"].ToString(); cliente.Telefone.NumeroTelefone = reader["numero_telefone"].ToString(); // -------------------- TELEFONE - FIM ---------------------------------- //// -------------------- CARTÃO CRÉDITO - COMEÇO ---------------------------------- ////ClientePFXCartaoDAO clientePFXCartaoDAO = new ClientePFXCartaoDAO(connection, ctrlTransaction); //////foreach (Endereco endereco in clientePFXCartaoDAO.Consultar(cliente)) ////// testar ////foreach (CartaoCredito cc in new ClientePFXCartaoDAO(connection, ctrlTransaction).Consultar(cliente)) ////{ //// cliente.CartoesCredito.Add(cc); ////} //cc = new CartaoCredito(); //if (!DBNull.Value.Equals(reader["id_cc"])) //{ // cc.ID = Convert.ToInt32(reader["id_cc"]); // cc.ID = Convert.ToInt32(reader["id_cc"]); // cc.NomeImpresso = reader["nome_impresso_cc"].ToString(); // cc.NumeroCC = reader["numero_cc"].ToString(); // cc.Bandeira.ID = Convert.ToInt32(reader["id_bandeira"]); // cc.Bandeira.Nome = reader["nome_bandeira"].ToString(); // cc.CodigoSeguranca = reader["codigo_seguranca_cc"].ToString(); //} //cliente.CartoesCredito.Add(cc); //ccAux.ID = cc.ID; //// -------------------- CARTÃO CRÉDITO - FIM ---------------------------------- cliente.Email = reader["email_cli_pf"].ToString(); cliente.CPF = reader["cpf_cli_pf"].ToString(); cliente.Genero = reader["genero_cli_pf"].ToString().First(); cliente.DataNascimento = Convert.ToDateTime(reader["dt_nascimento_cli_pf"].ToString()); cliente.DataCadastro = Convert.ToDateTime(reader["dt_cadastro_cli_pf"].ToString()); } //else //{ ////// -------------------- ENDEREÇO - COMEÇO ---------------------------------- ////ClientePFXEnderecoDAO clientePFXEnderecoDAO = new ClientePFXEnderecoDAO(); ////List<EntidadeDominio> entidades = clientePFXEnderecoDAO.Consultar(cliente); ////foreach (EntidadeDominio endereco in entidades) //// //foreach (Endereco endereco in new ClientePFXEnderecoDAO(connection, ctrlTransaction).Consultar(cliente)) ////{ //// cliente.Enderecos.Add((Endereco)endereco); ////} //endereco = new Endereco(); //endereco.ID = Convert.ToInt32(reader["id_endereco"]); //if (enderecoAux.ID != endereco.ID) //{ // endereco.Nome = reader["nome_endereco"].ToString(); // endereco.Destinatario = reader["destinatario_endereco"].ToString(); // endereco.TipoResidencia.ID = Convert.ToInt32(reader["id_tipo_res"]); // endereco.TipoResidencia.Nome = reader["nome_tipo_res"].ToString(); // endereco.TipoLogradouro.ID = Convert.ToInt32(reader["id_tipo_log"]); // endereco.TipoLogradouro.Nome = reader["nome_tipo_log"].ToString(); // endereco.Rua = reader["log_endereco"].ToString(); // endereco.Numero = reader["numero_endereco"].ToString(); // endereco.Bairro = reader["bairro_endereco"].ToString(); // endereco.Cidade.ID = Convert.ToInt32(reader["id_cidade"].ToString()); // endereco.Cidade.Nome = reader["nome_cidade"].ToString(); // endereco.Cidade.Estado.ID = Convert.ToInt32(reader["id_estado"].ToString()); // endereco.Cidade.Estado.Nome = reader["nome_estado"].ToString(); // endereco.Cidade.Estado.Sigla = reader["sigla_estado"].ToString(); // endereco.Cidade.Estado.Pais.ID = Convert.ToInt32(reader["id_pais"].ToString()); // endereco.Cidade.Estado.Pais.Nome = reader["nome_pais"].ToString(); // endereco.Cidade.Estado.Pais.Sigla = reader["sigla_pais"].ToString(); // endereco.CEP = reader["cep_endereco"].ToString(); // endereco.Observacao = reader["observacao_endereco"].ToString(); // cliente.Enderecos.Add(endereco); // enderecoAux.ID = endereco.ID; //} ////// -------------------- ENDEREÇO - FIM ---------------------------------- //// -------------------- CARTÃO CRÉDITO - COMEÇO ---------------------------------- ////ClientePFXCartaoDAO clientePFXCartaoDAO = new ClientePFXCartaoDAO(connection, ctrlTransaction); //////foreach (Endereco endereco in clientePFXCartaoDAO.Consultar(cliente)) ////// testar ////foreach (CartaoCredito cc in new ClientePFXCartaoDAO(connection, ctrlTransaction).Consultar(cliente)) ////{ //// cliente.CartoesCredito.Add(cc); ////} //cc = new CartaoCredito(); //if (!DBNull.Value.Equals(reader["id_cc"])) //{ // cc.ID = Convert.ToInt32(reader["id_cc"]); // if (ccAux.ID != cc.ID) // { // cc.NomeImpresso = reader["nome_impresso_cc"].ToString(); // cc.NumeroCC = reader["numero_cc"].ToString(); // cc.Bandeira.ID = Convert.ToInt32(reader["id_bandeira"]); // cc.Bandeira.Nome = reader["nome_bandeira"].ToString(); // cc.CodigoSeguranca = reader["codigo_seguranca_cc"].ToString(); // cliente.CartoesCredito.Add(cc); // ccAux.ID = cc.ID; // } //} //// -------------------- CARTÃO CRÉDITO - FIM ---------------------------------- //} //// verifica se cliente.ID é maior que clienteAux.ID e não é a primeira interação (clienteAux.ID > 0) //if (Convert.ToInt32(reader["id_cli_pf"]) > clienteAux.ID && clienteAux.ID > 0) //{ // clientes.Add(cliente); //} clientes.Add(cliente); } connection.Close(); return(clientes); }
public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } Estoque estoque = (Estoque)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM tb_estoque_livro "); sql.Append("RIGHT JOIN tb_livro ON (tb_livro.id_livro = tb_estoque_livro.id_estoque_livro) "); sql.Append("LEFT JOIN tb_fornecedor ON (tb_fornecedor.id_fornecedor = tb_estoque_livro.fornecedor_livro_fk) "); sql.Append("LEFT JOIN tb_cidades ON (tb_fornecedor.cidade_fk = tb_cidades.id_cidade) "); sql.Append("JOIN tb_cat_motivo ON (tb_cat_motivo.id_cat_motivo = tb_livro.categoria_motivo_fk) "); // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query sql.Append("WHERE 1 = 1 "); if (estoque.Livro.ID != 0) { sql.Append("AND id_estoque_livro = :1 "); } if (estoque.Qtde != 0) { sql.Append("AND quantidade_livro = :2 "); } if (estoque.ValorCusto != 0.0) { sql.Append("AND custo_unid = :3 "); } if (estoque.ValorVenda != 0.0) { sql.Append("AND valor_unid = :4 "); } if (estoque.Fornecedor.ID != 0) { sql.Append("AND fornecedor_livro_fk = :5 "); } if (estoque.DataCadastro != null) { sql.Append("AND dt_entrada_estoque = :6 "); } if (estoque.Livro.CategoriaMotivo.ID != 0) { sql.Append("AND id_cat_motivo = :7 "); } if (estoque.Livro.CategoriaMotivo.Ativo != 'Z') { sql.Append("AND ativo = :8 "); } sql.Append("ORDER BY tb_livro.id_livro "); pst.CommandText = sql.ToString(); parameters = new NpgsqlParameter[] { new NpgsqlParameter("1", estoque.Livro.ID), new NpgsqlParameter("2", estoque.Qtde), new NpgsqlParameter("3", estoque.ValorCusto), new NpgsqlParameter("4", estoque.ValorVenda), new NpgsqlParameter("5", estoque.Fornecedor.ID), new NpgsqlParameter("7", estoque.Livro.CategoriaMotivo.ID), new NpgsqlParameter("8", estoque.Livro.CategoriaMotivo.Ativo) }; if (estoque.DataCadastro != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("6", estoque.DataCadastro) }; parameters.Concat(parametersAux); } pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os endereços encontrados List <EntidadeDominio> estoques = new List <EntidadeDominio>(); while (reader.Read()) { estoque = new Estoque(); estoque.Livro.ID = Convert.ToInt32(reader["id_livro"]); estoque.Livro.Titulo = reader["titulo_livro"].ToString(); if (!DBNull.Value.Equals(reader["quantidade_livro"])) { estoque.Qtde = Convert.ToInt32(reader["quantidade_livro"].ToString()); } if (!DBNull.Value.Equals(reader["custo_unid"])) { estoque.ValorCusto = Convert.ToSingle(reader["custo_unid"]); } if (!DBNull.Value.Equals(reader["valor_unid"])) { estoque.ValorVenda = Convert.ToSingle(reader["valor_unid"]); } if (!DBNull.Value.Equals(reader["id_fornecedor"])) { estoque.Fornecedor.ID = Convert.ToInt32(reader["id_fornecedor"]); } if (!DBNull.Value.Equals(reader["nome_fornecedor"])) { estoque.Fornecedor.Nome = reader["nome_fornecedor"].ToString(); } if (!DBNull.Value.Equals(reader["id_cidade"])) { estoque.Fornecedor.Cidade.ID = Convert.ToInt32(reader["id_cidade"]); } if (!DBNull.Value.Equals(reader["nome_cidade"])) { estoque.Fornecedor.Cidade.Nome = reader["nome_cidade"].ToString(); } if (!DBNull.Value.Equals(reader["dt_entrada_estoque"])) { estoque.DataCadastro = Convert.ToDateTime(reader["dt_entrada_estoque"].ToString()); } estoque.Livro.CategoriaMotivo.ID = Convert.ToInt32(reader["id_cat_motivo"]); estoque.Livro.CategoriaMotivo.Ativo = reader["ativo"].ToString().First(); estoque.Livro.CategoriaMotivo.Nome = reader["nome_cat_motivo"].ToString(); estoque.Livro.CategoriaMotivo.Descricao = reader["descricao_cat_motivo"].ToString(); estoques.Add(estoque); } connection.Close(); return(estoques); }
public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } Analise analise = (Analise)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM tb_pedido JOIN tb_status_pedido ON (tb_pedido.status_pedido_fk = tb_status_pedido.id_status_pedido) "); // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query sql.Append("WHERE 1 = 1 "); if (analise.DataCadastro != null) { sql.Append("AND dt_cadastro_pedido >= DATE('"); sql.Append(analise.DataCadastro); sql.Append("') "); } if (analise.DataFim != null) { sql.Append("AND dt_cadastro_pedido <= DATE('"); sql.Append(analise.DataFim); sql.Append("') "); } sql.Append("ORDER BY tb_pedido.dt_cadastro_pedido "); pst.CommandText = sql.ToString(); parameters = new NpgsqlParameter[] { new NpgsqlParameter("0", analise.ID) }; if (analise.DataCadastro != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("1", analise.DataCadastro) }; parameters.Concat(parametersAux); } if (analise.DataFim != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("2", analise.DataFim) }; parameters.Concat(parametersAux); } pst.Parameters.Clear(); if (parameters != null) { pst.Parameters.AddRange(parameters); } pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os pedidos encontrados List <EntidadeDominio> pedidos = new List <EntidadeDominio>(); while (reader.Read()) { Pedido pedido = new Pedido(); pedido.ID = Convert.ToInt32(reader["id_pedido"]); pedido.Usuario = reader["username"].ToString(); pedido.Total = Convert.ToSingle(reader["total_pedido"]); pedido.Status.ID = Convert.ToInt32(reader["id_status_pedido"]); pedido.Status.Nome = reader["nome_status_pedido"].ToString(); pedido.EnderecoEntrega.ID = Convert.ToInt32(reader["end_entrega_fk"]); pedido.Frete = Convert.ToSingle(reader["frete"]); pedido.DataCadastro = Convert.ToDateTime(reader["dt_cadastro_pedido"].ToString()); pedidos.Add(pedido); } connection.Close(); return(pedidos); }
public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } Pedido pedido = (Pedido)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM tb_pedido JOIN tb_status_pedido ON (tb_pedido.status_pedido_fk = tb_status_pedido.id_status_pedido) "); // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query sql.Append("WHERE 1 = 1 "); if (pedido.ID != 0) { sql.Append("AND id_pedido = :1 "); } if (!String.IsNullOrEmpty(pedido.Usuario)) { sql.Append("AND username = :2 "); } if (pedido.Total != 0.0) { sql.Append("AND total_pedido = :3 "); } if (pedido.Status.ID != 0) { sql.Append("AND status_pedido_fk = :4 "); } if (pedido.EnderecoEntrega.ID != 0) { sql.Append("AND end_entrega_fk = :5 "); } if (pedido.Frete != 0.0) { sql.Append("AND frete = :6 "); } if (pedido.DataCadastro != null) { sql.Append("AND dt_cadastro_pedido = :7 "); } sql.Append("ORDER BY tb_pedido.id_pedido,tb_pedido.status_pedido_fk "); pst.CommandText = sql.ToString(); parameters = new NpgsqlParameter[] { new NpgsqlParameter("1", pedido.ID), new NpgsqlParameter("2", pedido.Usuario), new NpgsqlParameter("3", pedido.Total), new NpgsqlParameter("4", pedido.Status.ID), new NpgsqlParameter("5", pedido.EnderecoEntrega.ID), new NpgsqlParameter("6", pedido.Frete) }; if (pedido.DataCadastro != null) { NpgsqlParameter[] parametersAux = new NpgsqlParameter[] { new NpgsqlParameter("7", pedido.DataCadastro) }; parameters.Concat(parametersAux); } pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os cartões do cliente encontrados List <EntidadeDominio> pedidos = new List <EntidadeDominio>(); while (reader.Read()) { pedido = new Pedido(); pedido.ID = Convert.ToInt32(reader["id_pedido"]); pedido.Usuario = reader["username"].ToString(); pedido.Total = Convert.ToSingle(reader["total_pedido"]); pedido.Status.ID = Convert.ToInt32(reader["id_status_pedido"]); pedido.Status.Nome = reader["nome_status_pedido"].ToString(); pedido.EnderecoEntrega.ID = Convert.ToInt32(reader["end_entrega_fk"]); pedido.Frete = Convert.ToSingle(reader["frete"]); pedido.DataCadastro = Convert.ToDateTime(reader["dt_cadastro_pedido"].ToString()); pedidos.Add(pedido); } connection.Close(); return(pedidos); }