public static List <ConsultaModel> Pesquisar(FiltroPessoa filtro, string pesquisa, FormaDeAtendimento atendimento, DateTime dtInicial, DateTime dtFinal, FuncionarioModel medico, ConvenioModel convenio) { var lista = new List <ConsultaModel>(); try { var cmd = $@"SELECT C.id_consulta, C.id_medico, C.id_cliente, ISNULL(C.id_convenio, 0) AS id_convenio, C.numero_procedimento, C.forma_de_atendimento, C.data, C.horario, C.valor, C.status_pagamento, C.tipo_de_consulta, C.retorno, C.observacao, C.ativo FROM consulta C INNER JOIN cliente CLI ON CLI.id_cliente = C.id_cliente WHERE C.ativo = 1 AND CLI.{filtro} LIKE @pesquisa AND C.data BETWEEN @data_inicial AND @data_final "; if (atendimento != FormaDeAtendimento.Todos) { cmd += " AND C.forma_de_atendimento = @forma_de_atendimento "; } if (medico != null) { cmd += " AND C.id_medico = @id_medico "; } if (convenio != null) { cmd += " AND C.id_convenio = @id_convenio "; } cmd += " ORDER BY C.data, C.horario"; Conexao.AbrirConexao(); Conexao.Cmd = new SqlCommand(cmd, Conexao.ConexaoSQL); Conexao.Cmd.Parameters.AddWithValue("pesquisa", $"%{pesquisa}%"); Conexao.Cmd.Parameters.AddWithValue("data_inicial", dtInicial.Date); Conexao.Cmd.Parameters.AddWithValue("data_final", dtFinal.Date); if (cmd.Contains("@forma_de_atendimento")) { Conexao.Cmd.Parameters.AddWithValue("forma_de_atendimento", atendimento); } if (cmd.Contains("@id_medico")) { Conexao.Cmd.Parameters.AddWithValue("id_medico", medico?.id); } if (cmd.Contains("@id_convenio")) { Conexao.Cmd.Parameters.AddWithValue("id_convenio", convenio?.id); } Conexao.Leitor = Conexao.Cmd.ExecuteReader(); while (Conexao.Leitor.Read()) { var obj = new ConsultaModel(); obj.id = int.Parse(Conexao.Leitor["id_consulta"].ToString()); obj.medico = new FuncionarioModel { id = int.Parse(Conexao.Leitor["id_medico"].ToString()) }; obj.cliente = new ClienteModel { id = int.Parse(Conexao.Leitor["id_cliente"].ToString()) }; obj.convenio = new ConvenioModel { id = Conexao.Leitor["id_convenio"] != DBNull.Value ? int.Parse(Conexao.Leitor["id_convenio"].ToString()) : 1 }; obj.numeroProcedimento = Conexao.Leitor["numero_procedimento"].ToString(); obj.formaDeAtentimento = (FormaDeAtendimento)Enum.Parse(typeof(FormaDeAtendimento), Conexao.Leitor["forma_de_atendimento"].ToString()); obj.data = DateTime.Parse(Conexao.Leitor["data"].ToString()); obj.horario = TimeSpan.Parse(Conexao.Leitor["horario"].ToString()); obj.valor = decimal.Parse(Conexao.Leitor["valor"].ToString()); obj.statusPagamento = (StatusPagamento)Enum.Parse(typeof(StatusPagamento), Conexao.Leitor["status_pagamento"].ToString()); obj.tipoDeConsulta = (TipoDeConsulta)Enum.Parse(typeof(TipoDeConsulta), Conexao.Leitor["tipo_de_consulta"].ToString()); obj.retorno = bool.Parse(Conexao.Leitor["retorno"].ToString()); obj.ativo = bool.Parse(Conexao.Leitor["ativo"].ToString()); obj.observacao = Conexao.Leitor["observacao"].ToString(); obj.cirgurgia = new CirurgiaModel { idConsulta = obj.id }; obj.receita = new ReceitaModel { idConsulta = obj.id }; lista.Add(obj); } } catch (Exception ex) { Excecao.Mostrar(ex); } finally { Conexao.FecharConexao(); } lista.ForEach(x => x.convenio?.Carregar()); lista.ForEach(x => x.medico.Carregar()); lista.ForEach(x => x.cliente.Carregar()); lista.ForEach(x => x.receita.Carregar()); lista.ForEach(x => x.cirgurgia.Carregar()); return(lista); }
public void Carregar() { try { var cmd = @"SELECT id_medico, id_cliente, ISNULL(id_convenio, 0) AS id_convenio, numero_procedimento, forma_de_atendimento, data, horario, valor, status_pagamento, tipo_de_consulta, retorno, observacao, ativo FROM consulta WHERE id_consulta = @id" ; Conexao.AbrirConexao(); Conexao.Cmd = new SqlCommand(cmd, Conexao.ConexaoSQL); Conexao.Cmd.Parameters.AddWithValue("id", id); Conexao.Leitor = Conexao.Cmd.ExecuteReader(); if (Conexao.Leitor.Read()) { this.id = id; medico = new FuncionarioModel { id = int.Parse(Conexao.Leitor["id_medico"].ToString()) }; cliente = new ClienteModel { id = int.Parse(Conexao.Leitor["id_cliente"].ToString()) }; convenio = new ConvenioModel { id = Conexao.Leitor["id_convenio"] != DBNull.Value ? int.Parse(Conexao.Leitor["id_convenio"].ToString()) : 1 }; numeroProcedimento = Conexao.Leitor["numero_procedimento"].ToString(); formaDeAtentimento = (FormaDeAtendimento)Enum.Parse(typeof(FormaDeAtendimento), Conexao.Leitor["forma_de_atendimento"].ToString()); data = DateTime.Parse(Conexao.Leitor["data"].ToString()); horario = TimeSpan.Parse(Conexao.Leitor["horario"].ToString()); valor = decimal.Parse(Conexao.Leitor["valor"].ToString()); statusPagamento = (StatusPagamento)Enum.Parse(typeof(StatusPagamento), Conexao.Leitor["status_pagamento"].ToString()); tipoDeConsulta = (TipoDeConsulta)Enum.Parse(typeof(TipoDeConsulta), Conexao.Leitor["tipo_de_consulta"].ToString()); retorno = bool.Parse(Conexao.Leitor["retorno"].ToString()); ativo = bool.Parse(Conexao.Leitor["ativo"].ToString()); observacao = Conexao.Leitor["observacao"].ToString(); } } catch (Exception ex) { Excecao.Mostrar(ex); } finally { Conexao.FecharConexao(); } CarregarPagamentos(); }