예제 #1
0
        public IEnumerable <ClienteListagemDTO> ListarClientes(int[] idsStatus, int idUsuario)
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con.Conectar();

                // Query pra trazer somente clientes que e posso mexer como usuário
                // cmd.CommandText = @"SELECT * FROM Cliente c
                //                     WHERE id_status IN (@idsStatus) AND
                //                           NOT EXISTS(SELECT * FROM Analise a
                //                                      WHERE c.id_cliente = a.id_cliente AND
                //                                            (id_usuario = @idUsuario AND (c.id_status <> 7 AND c.id_status <> 1)))";
                // cmd.Parameters.AddWithValue("@idUsuario", idUsuario);

                // Query que eu trago todos usuários, mas não vou permirir mexer em alguns caso eu seja o ultimo que mexeu nele
                cmd.CommandText = @"SELECT * FROM Cliente cli
	                                    INNER JOIN Endereco e ON (e.id_cliente = cli.id_cliente) 
	                                    INNER JOIN Cidade c ON (c.id_cidade = e.id_cidade)
                                        INNER JOIN Estado es ON (es.id_estado = c.id_estado)
                                        INNER JOIN Pais p ON (p.id_pais = es.id_pais)
	                                    INNER JOIN Analise a ON (a.id_cliente = cli.id_cliente)
                                    WHERE cli.id_status IN (@idsStatus) AND a.id_analise IN (SELECT MAX(a.id_analise) FROM Analise a GROUP BY(a.id_cliente))";

                cmd.AddArrayParameters("@idsStatus", idsStatus);

                SqlDataReader dr = cmd.ExecuteReader();

                List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>();

                while (dr.Read())
                {
                    ClienteListagemDTO cliente = new ClienteListagemDTO();

                    cliente.Id               = Convert.ToInt32(dr["id_cliente"]);
                    cliente.Nome             = dr["nome"].ToString();
                    cliente.CPF              = dr["cpf"].ToString();
                    cliente.RG               = dr["rg"].ToString();
                    cliente.DataNascimento   = Convert.ToDateTime(dr["data_nascimento"]);
                    cliente.Email            = dr["email"].ToString();
                    cliente.IdStatus         = Convert.ToInt32(dr["id_status"]);
                    cliente.UsuarioPermitido = Convert.ToInt32(dr["id_usuario"]) != idUsuario ||
                                               Convert.ToInt32(dr["id_status"]) == (int)EStatus.Cadastrado ? true : false;
                    cliente.NomePais = dr["nome_pais"].ToString();

                    listaCliente.Add(cliente);
                }

                con.Desconectar();
                return(listaCliente);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #2
0
        public IEnumerable <ClienteListagemDTO> ListarClientes(int[] idsStatus, int idUsuario)
        {
            try
            {
                // Query pra trazer somente clientes que e posso mexer como usuário
                // var clientes = _database.Cliente.Select(c => c.Analises.OrderByDescending(a => a.Id_Analise).First()) // se der erro muda pra id_analise
                //                                 .Where(a => idsStatus.Contains(a.Id_Status) && (a.Id_Usuario != idUsuario || a.Id_Status == (int)EStatus.Cadastrado))
                //                                 .Select(a => a.Cliente)
                //                                 .ToList();

                // Query que eu trago todos usuários, mas não vou permirir mexer em alguns caso eu seja o ultimo que mexeu nele
                var clientes = _database.Cliente.Where(c => idsStatus.Contains(c.Id_Status))
                               .Include(c => c.Enderecos)
                               .ThenInclude(e => e.Cidade)
                               .ThenInclude(c => c.Estado)
                               .ThenInclude(e => e.Pais)
                               .IncludeFilter(c => c.Analises.OrderByDescending(a => a.Id_Analise).First());

                List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>();

                foreach (var cli in clientes)
                {
                    ClienteListagemDTO cliente = new ClienteListagemDTO();

                    cliente.Id               = cli.Id_Cliente;
                    cliente.Nome             = cli.Nome;
                    cliente.CPF              = cli.Cpf;
                    cliente.RG               = cli.Rg;
                    cliente.DataNascimento   = cli.Data_Nascimento;
                    cliente.Email            = cli.Email;
                    cliente.IdStatus         = cli.Id_Status;
                    cliente.UsuarioPermitido = cli.Analises.First().Id_Usuario != idUsuario ||
                                               cli.Analises.First().Id_Status == (int)EStatus.Cadastrado ? true : false;
                    cliente.NomePais = cli.Enderecos.First().Cidade.Estado.Pais.Nome_Pais;

                    listaCliente.Add(cliente);
                }

                return(listaCliente);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #3
0
        public IEnumerable <ClienteListagemDTO> ListarClientesEncerrados()
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con.Conectar();

                cmd.CommandText = @"SELECT * FROM Endereco e
	                                    INNER JOIN Cliente cli ON (cli.id_cliente = e.id_cliente) 
	                                    INNER JOIN Cidade c ON (c.id_cidade = e.id_cidade)
                                        INNER JOIN Estado es ON (es.id_estado = c.id_estado)
                                        INNER JOIN Pais p ON (p.id_pais = es.id_pais)
                                    WHERE cli.id_status = 3 OR cli.id_status = 5 OR cli.id_status = 6;";

                SqlDataReader dr = cmd.ExecuteReader();

                List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>();

                while (dr.Read())
                {
                    ClienteListagemDTO cliente = new ClienteListagemDTO();

                    cliente.Id             = Convert.ToInt32(dr["id_cliente"]);
                    cliente.Nome           = dr["nome"].ToString();
                    cliente.CPF            = dr["cpf"].ToString();
                    cliente.RG             = dr["rg"].ToString();
                    cliente.DataNascimento = Convert.ToDateTime(dr["data_nascimento"]);
                    cliente.Email          = dr["email"].ToString();
                    cliente.IdStatus       = Convert.ToInt32(dr["id_status"]);
                    cliente.NomePais       = dr["nome_pais"].ToString();

                    listaCliente.Add(cliente);
                }

                con.Desconectar();
                return(listaCliente);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #4
0
        public IEnumerable <ClienteListagemDTO> ListarClientesEncerrados()
        {
            try
            {
                var clientesEncerrados = _database.Cliente.Where(c => c.Id_Status == (int)EStatus.aprovado_gerencia ||
                                                                 c.Id_Status == (int)EStatus.aprovado_controle_risco ||
                                                                 c.Id_Status == (int)EStatus.reprovado)
                                         .Include(c => c.Enderecos)
                                         .ThenInclude(e => e.Cidade)
                                         .ThenInclude(c => c.Estado)
                                         .ThenInclude(e => e.Pais)
                                         .ToList();

                List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>();

                foreach (var clienteEncerrado in clientesEncerrados)
                {
                    ClienteListagemDTO cliente = new ClienteListagemDTO();

                    cliente.Id             = clienteEncerrado.Id_Cliente;
                    cliente.Nome           = clienteEncerrado.Nome;
                    cliente.CPF            = clienteEncerrado.Cpf;
                    cliente.RG             = clienteEncerrado.Rg;
                    cliente.DataNascimento = clienteEncerrado.Data_Nascimento;
                    cliente.Email          = clienteEncerrado.Email;
                    cliente.IdStatus       = clienteEncerrado.Id_Status;
                    cliente.NomePais       = clienteEncerrado.Enderecos.First().Cidade.Estado.Pais.Nome_Pais;

                    listaCliente.Add(cliente);
                }

                return(listaCliente);
            }
            catch (Exception e)
            {
                throw e;
            }
        }