Ejemplo n.º 1
0
        /// <summary>
        /// Altera o status do contrato
        /// </summary>
        /// <param name="pIdContrato">Número do contrato</param>
        /// <param name="pStatusContratoEnum">Novo status</param>
        public void AlterarStatusContrato(int pIdContrato, StatusContratoEnum pStatusContratoEnum)
        {
            if (pIdContrato <= 0 || BuscaContratoPorID(pIdContrato) == null)
            {
                throw new ArgumentException("Número do contrato inválido.");
            }

            _ContratoRepository.AlterarStatusContrato(pIdContrato, pStatusContratoEnum);
        }
        /// <summary>
        /// Altera o status do contrato
        /// </summary>
        /// <param name="pIdContrato">ID do contrato</param>
        /// <param name="pStatusContratoEnum">novo status</param>
        public void AlterarStatusContrato(int pIdContrato, StatusContratoEnum pStatusContratoEnum)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("DECLARE @ID_CONTRATO INT");
            stringBuilder.AppendLine($"SET @ID_CONTRATO = {pIdContrato}");
            stringBuilder.AppendLine("UPDATE CONTRATO_TB");
            stringBuilder.AppendLine($"SET STATUS = '{pStatusContratoEnum.GetDefaultValue()}'");
            stringBuilder.AppendLine("WHERE ID_CONTRATO = @ID_CONTRATO");

            _UnitOfWork.Executar(stringBuilder.ToString());
        }
Ejemplo n.º 3
0
        public IActionResult CancelarConsulta(ContratoVM pModel)
        {
            try
            {
                if (pModel.IdContrato == 0)
                {
                    return(View(pModel));
                }

                if (User.Claims.Any(c => c.Type == Constantes.NutricionistaLogado))
                {
                    if (pModel.NomeNutricionista != _ServiceNutricionista.ConsultarNutricionistaPorID(Convert.ToInt32(User
                                                                                                                      .Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType)).Nome)
                    {
                        return(RedirectToAction("ConsultasAgendadas", "Contrato"));
                    }
                }
                else
                {
                    if (pModel.IdUsuario != Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType))
                    {
                        return(RedirectToAction("ConsultasAgendadas", "Contrato"));
                    }
                }



                StatusContratoEnum statusContratoEnum = StatusContratoEnum.Agendada;

                if (User.Claims.Any(c => c.Type == Constantes.NutricionistaLogado))
                {
                    statusContratoEnum = StatusContratoEnum.CanceladaNutricionista;
                }
                else
                {
                    statusContratoEnum = StatusContratoEnum.CanceladaPaciente;
                }

                _ServiceContrato.AlterarStatusContrato(pModel.IdContrato,
                                                       statusContratoEnum);

                return(RedirectToAction("ConsultasAgendadas", "Contrato", new { mensagem = "Consulta cancelada com sucesso." }));
            }
            catch (Exception ex)
            {
                ViewData[Constantes.ViewDataMensagemErro] = ex.Message;
                return(View(pModel));
            }
        }
 public Contrato(int pIdUsuario, int pIdNutricionista, string pLogradouro, string complemento, uint?numero, string pBairro, string pCidade, UnidadeFederacaoEnum pUF, string pCEP, DateTime dataInicio, DateTime dataTermino, StatusContratoEnum status)
 {
     ValidarDados(pIdUsuario, pIdNutricionista, pLogradouro, pCidade, pBairro, pCEP, pUF, dataInicio, dataTermino);
     IdUsuario       = pIdUsuario;
     IdNutricionista = pIdNutricionista;
     Logradouro      = pLogradouro;
     Complemento     = complemento;
     Numero          = numero;
     Bairro          = pBairro;
     Cidade          = pCidade;
     UF          = pUF;
     CEP         = pCEP;
     DataInicio  = dataInicio;
     DataTermino = dataTermino;
     Status      = status;
 }
        /// <summary>
        /// Busca um contrato pelo seu número
        /// </summary>
        /// <param name="pID">Número do contrato</param>
        /// <returns>Contrato ou null</returns>
        public Entidades.Contrato.Contrato BuscaContratoPorID(int pID)
        {
            #region Query
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.AppendLine("DECLARE @ID_CONTRATO INT");
            stringBuilder.AppendLine($"SET @ID_CONTRATO = {pID}");
            stringBuilder.AppendLine("SELECT");
            stringBuilder.AppendLine("  C.ID_CONTRATO,");
            stringBuilder.AppendLine("	C.ID_USUARIO,");
            stringBuilder.AppendLine("	C.ID_NUTRI,");
            stringBuilder.AppendLine("	C.RUA,");
            stringBuilder.AppendLine("	C.COMPLEMENTO,");
            stringBuilder.AppendLine("	C.NUMERO,");
            stringBuilder.AppendLine("	C.BAIRRO,");
            stringBuilder.AppendLine("  C.CIDADE,");
            stringBuilder.AppendLine("	C.ESTADO,");
            stringBuilder.AppendLine("	C.CEP,");
            stringBuilder.AppendLine("	C.DT_INICIO,");
            stringBuilder.AppendLine("	C.DT_FIM,");
            stringBuilder.AppendLine("	C.STATUS,");
            stringBuilder.AppendLine("	C.DT_CADASTRO,");
            stringBuilder.AppendLine("	C.MENSAGEM");
            stringBuilder.AppendLine("FROM CONTRATO_TB C WITH(NOLOCK)");
            stringBuilder.AppendLine("WHERE");
            stringBuilder.AppendLine("    ID_CONTRATO = @ID_CONTRATO");

            #endregion
            List <Entidades.Contrato.Contrato> listaContratos = new List <Entidades.Contrato.Contrato>();

            DataSet ds = _UnitOfWork.Consulta(stringBuilder.ToString());

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                string Rua         = string.Empty,
                       Bairro      = string.Empty,
                       Cidade      = string.Empty,
                       CEP         = string.Empty,
                       Complemento = string.Empty,
                       Mensagem    = string.Empty;

                uint?Numero = null;
                int  idPaciente = 0, idNutricionista = 0, idContrato = 0;

                DateTime datainicio   = DateTime.MinValue,
                         dataFim      = DateTime.MinValue,
                         dataCadastro = DateTime.MinValue;

                UnidadeFederacaoEnum UF             = UnidadeFederacaoEnum.NaoDefinido;
                StatusContratoEnum   statusContrato = StatusContratoEnum.Agendada;

                if (ds.Tables[0].Rows[0]["ID_CONTRATO"] != DBNull.Value)
                {
                    idContrato = Convert.ToInt32(ds.Tables[0].Rows[0]["ID_CONTRATO"]);
                }
                if (ds.Tables[0].Rows[0]["ID_USUARIO"] != DBNull.Value)
                {
                    idPaciente = Convert.ToInt32(ds.Tables[0].Rows[0]["ID_USUARIO"]);
                }
                if (ds.Tables[0].Rows[0]["ID_NUTRI"] != DBNull.Value)
                {
                    idNutricionista = Convert.ToInt32(ds.Tables[0].Rows[0]["ID_NUTRI"]);
                }
                if (ds.Tables[0].Rows[0]["RUA"] != DBNull.Value)
                {
                    Rua = ds.Tables[0].Rows[0]["RUA"].ToString();
                }
                if (ds.Tables[0].Rows[0]["BAIRRO"] != DBNull.Value)
                {
                    Bairro = ds.Tables[0].Rows[0]["BAIRRO"].ToString();
                }
                if (ds.Tables[0].Rows[0]["CIDADE"] != DBNull.Value)
                {
                    Cidade = ds.Tables[0].Rows[0]["CIDADE"].ToString();
                }
                if (ds.Tables[0].Rows[0]["CEP"] != DBNull.Value)
                {
                    CEP = ds.Tables[0].Rows[0]["CEP"].ToString();
                }
                if (ds.Tables[0].Rows[0]["CEP"] != DBNull.Value)
                {
                    CEP = ds.Tables[0].Rows[0]["CEP"].ToString();
                }
                if (ds.Tables[0].Rows[0]["COMPLEMENTO"] != DBNull.Value)
                {
                    Complemento = ds.Tables[0].Rows[0]["COMPLEMENTO"].ToString();
                }
                if (ds.Tables[0].Rows[0]["NUMERO"] != DBNull.Value)
                {
                    Numero = Convert.ToUInt32(ds.Tables[0].Rows[0]["NUMERO"]);
                }
                if (ds.Tables[0].Rows[0]["ESTADO"] != DBNull.Value)
                {
                    UF = Enum.GetValues(typeof(UnidadeFederacaoEnum)).Cast <UnidadeFederacaoEnum>().
                         FirstOrDefault(s => s.GetDefaultValue().Equals(ds.Tables[0].Rows[0]["ESTADO"].ToString(), StringComparison.CurrentCultureIgnoreCase));
                }

                Entidades.Nutricionista.Endereco endereco = new Entidades.Nutricionista.Endereco(
                    idNutricionista,
                    Rua,
                    Bairro,
                    Cidade,
                    CEP,
                    UF
                    )
                {
                    Complemento = Complemento,
                    Numero      = Numero,
                };

                if (ds.Tables[0].Rows[0]["DT_INICIO"] != DBNull.Value)
                {
                    datainicio = Convert.ToDateTime(ds.Tables[0].Rows[0]["DT_INICIO"]);
                }
                if (ds.Tables[0].Rows[0]["DT_FIM"] != DBNull.Value)
                {
                    dataFim = Convert.ToDateTime(ds.Tables[0].Rows[0]["DT_FIM"]);
                }
                if (ds.Tables[0].Rows[0]["DT_CADASTRO"] != DBNull.Value)
                {
                    dataCadastro = Convert.ToDateTime(ds.Tables[0].Rows[0]["DT_CADASTRO"]);
                }

                if (ds.Tables[0].Rows[0]["STATUS"] != DBNull.Value)
                {
                    statusContrato = Enum.GetValues(typeof(StatusContratoEnum)).Cast <StatusContratoEnum>().
                                     FirstOrDefault(s => s.GetDefaultValue().Equals(ds.Tables[0].Rows[0]["STATUS"].ToString()));
                }

                if (ds.Tables[0].Rows[0]["MENSAGEM"] != DBNull.Value)
                {
                    Mensagem = ds.Tables[0].Rows[0]["MENSAGEM"].ToString();
                }

                return(new Entidades.Contrato.Contrato(
                           idPaciente,
                           idNutricionista,
                           endereco.Logradouro,
                           endereco?.Complemento,
                           endereco?.Numero,
                           endereco.Bairro,
                           endereco.Cidade,
                           endereco.UF,
                           endereco.CEP,
                           datainicio,
                           dataFim,
                           statusContrato
                           )
                {
                    IdContrato = idContrato,
                    DataCadastro = dataCadastro,
                    Mensagem = Mensagem
                });
            }

            return(null);
        }
        /// <summary>
        /// <summary>
        /// Lista os constratos de algum usuário
        /// </summary>
        /// <param name="pIndiceInicial">Indice inicial</param>
        /// <param name="pRua">Rua</param>
        /// <param name="pCidade">Cidade</param>
        /// <param name="pBairro">Bairro</param>
        /// <param name="pCEP">CEP</param>
        /// <param name="pUF">UF</param>
        /// <param name="pDataInicio">Data de início</param>
        /// <param name="pDataFim">Data fim</param>
        /// <param name="pIdUsuario">ID do usuário</param>
        /// <returns>Lista de contratos</returns>
        public List <Entidades.Contrato.Contrato> ListaContratos(string pRua, string pCidade, string pBairro, string pCEP, string pUF, DateTime pDataInicio, DateTime pDataFim, int pIdUsuario)
        {
            #region Query
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.AppendLine("DECLARE @RUA VARCHAR(100),");
            stringBuilder.AppendLine("	@CIDADE VARCHAR(30),");
            stringBuilder.AppendLine("	@BAIRRO VARCHAR(50),");
            stringBuilder.AppendLine("	@CEP VARCHAR(9),");
            stringBuilder.AppendLine("	@ESTADO VARCHAR(2),");
            stringBuilder.AppendLine("	@DT_INICIO DATETIME,");
            stringBuilder.AppendLine("  @DT_FIM DATETIME,");
            stringBuilder.AppendLine("	@ID_USUARIO INT");
            stringBuilder.AppendLine($"SET @ID_USUARIO = {pIdUsuario}");
            stringBuilder.AppendLine($"SET @RUA = '{pRua}'");
            stringBuilder.AppendLine($"SET @BAIRRO = '{pBairro}'");
            stringBuilder.AppendLine($"SET @CIDADE = '{pCidade}'");
            stringBuilder.AppendLine($"SET @CEP = {(string.IsNullOrEmpty(pCEP) ? "NULL" : "'" + pCEP + "'")}");
            stringBuilder.AppendLine($"SET @ESTADO = {(string.IsNullOrEmpty(pUF) ? "NULL" : "'" + Enum.GetValues(typeof(UnidadeFederacaoEnum)).Cast<UnidadeFederacaoEnum>().FirstOrDefault(c => c.GetDescription().Equals(pUF)).GetDefaultValue() + "'")}");
            stringBuilder.AppendLine($"SET @DT_INICIO = {(pDataInicio == DateTime.MinValue ? "NULL" : "'" + pDataInicio.ToString(Constantes.MascaraDataHoraSegundoSql) + "'")}");
            stringBuilder.AppendLine($"SET @DT_FIM = {(pDataFim == DateTime.MinValue ? "NULL" : "'" + pDataFim.ToString(Constantes.MascaraDataHoraSegundoSql) + "'")}");
            stringBuilder.AppendLine("SELECT");
            stringBuilder.AppendLine("  C.ID_CONTRATO,");
            stringBuilder.AppendLine("	C.ID_USUARIO,");
            stringBuilder.AppendLine("	C.ID_NUTRI,");
            stringBuilder.AppendLine("	C.RUA,");
            stringBuilder.AppendLine("	C.COMPLEMENTO,");
            stringBuilder.AppendLine("	C.NUMERO,");
            stringBuilder.AppendLine("	C.BAIRRO,");
            stringBuilder.AppendLine("  C.CIDADE,");
            stringBuilder.AppendLine("	C.ESTADO,");
            stringBuilder.AppendLine("	C.CEP,");
            stringBuilder.AppendLine("	C.DT_INICIO,");
            stringBuilder.AppendLine("	C.DT_FIM,");
            stringBuilder.AppendLine("	C.STATUS,");
            stringBuilder.AppendLine("	C.DT_CADASTRO,");
            stringBuilder.AppendLine("	C.MENSAGEM");
            stringBuilder.AppendLine("FROM CONTRATO_TB C WITH(NOLOCK)");
            stringBuilder.AppendLine("WHERE");
            stringBuilder.AppendLine("    (ISNULL(@RUA, C.RUA) = C.RUA OR C.RUA LIKE @RUA + '%')");
            stringBuilder.AppendLine("    AND(ISNULL(@CIDADE, C.CIDADE) = C.CIDADE OR C.CIDADE LIKE @CIDADE + '%')");
            stringBuilder.AppendLine("    AND(ISNULL(@BAIRRO, C.BAIRRO) = C.BAIRRO OR C.BAIRRO LIKE @BAIRRO + '%')");
            stringBuilder.AppendLine("    AND ISNULL(@CEP, C.CEP) = C.CEP");
            stringBuilder.AppendLine("    AND ISNULL(@ESTADO, C.ESTADO) = C.ESTADO");
            stringBuilder.AppendLine("    AND(C.DT_INICIO BETWEEN ISNULL(@DT_INICIO, C.DT_INICIO) AND ISNULL(@DT_FIM, C.DT_FIM)");
            stringBuilder.AppendLine("        OR C.DT_FIM BETWEEN ISNULL(@DT_INICIO, C.DT_INICIO) AND ISNULL(@DT_FIM, C.DT_FIM)");
            stringBuilder.AppendLine("    )");
            stringBuilder.AppendLine("    AND(C.ID_NUTRI = @ID_USUARIO OR C.ID_USUARIO = @ID_USUARIO)");

            #endregion
            List <Entidades.Contrato.Contrato> listaContratos = new List <Entidades.Contrato.Contrato>();

            DataSet ds = _UnitOfWork.Consulta(stringBuilder.ToString());

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DateTime datainicio   = DateTime.MinValue,
                             dataFim      = DateTime.MinValue,
                             dataCadastro = DateTime.MinValue;

                    string Rua         = string.Empty,
                           Bairro      = string.Empty,
                           Cidade      = string.Empty,
                           CEP         = string.Empty,
                           Complemento = string.Empty,
                           Mensagem    = string.Empty;

                    uint?Numero = null;
                    int  idPaciente = 0, idNutricionista = 0, idContrato = 0;

                    UnidadeFederacaoEnum UF             = UnidadeFederacaoEnum.NaoDefinido;
                    StatusContratoEnum   statusContrato = StatusContratoEnum.Agendada;

                    if (ds.Tables[0].Rows[i]["RUA"] != DBNull.Value)
                    {
                        Rua = ds.Tables[0].Rows[i]["RUA"].ToString();
                    }
                    if (ds.Tables[0].Rows[i]["BAIRRO"] != DBNull.Value)
                    {
                        Bairro = ds.Tables[0].Rows[i]["BAIRRO"].ToString();
                    }
                    if (ds.Tables[0].Rows[i]["CIDADE"] != DBNull.Value)
                    {
                        Cidade = ds.Tables[0].Rows[i]["CIDADE"].ToString();
                    }
                    if (ds.Tables[0].Rows[i]["CEP"] != DBNull.Value)
                    {
                        CEP = ds.Tables[0].Rows[i]["CEP"].ToString();
                    }
                    if (ds.Tables[0].Rows[i]["CEP"] != DBNull.Value)
                    {
                        CEP = ds.Tables[0].Rows[i]["CEP"].ToString();
                    }
                    if (ds.Tables[0].Rows[i]["COMPLEMENTO"] != DBNull.Value)
                    {
                        Complemento = ds.Tables[0].Rows[i]["COMPLEMENTO"].ToString();
                    }
                    if (ds.Tables[0].Rows[i]["NUMERO"] != DBNull.Value)
                    {
                        Numero = Convert.ToUInt32(ds.Tables[0].Rows[i]["NUMERO"]);
                    }
                    if (ds.Tables[0].Rows[i]["ESTADO"] != DBNull.Value)
                    {
                        UF = Enum.GetValues(typeof(UnidadeFederacaoEnum)).Cast <UnidadeFederacaoEnum>().
                             FirstOrDefault(s => s.GetDefaultValue().Equals(ds.Tables[0].Rows[i]["ESTADO"].ToString(), StringComparison.CurrentCultureIgnoreCase));
                    }

                    Entidades.Nutricionista.Endereco endereco = new Entidades.Nutricionista.Endereco(
                        pIdUsuario,
                        Rua,
                        Bairro,
                        Cidade,
                        CEP,
                        UF
                        )
                    {
                        Complemento = Complemento,
                        Numero      = Numero,
                    };

                    if (ds.Tables[0].Rows[i]["DT_INICIO"] != DBNull.Value)
                    {
                        datainicio = Convert.ToDateTime(ds.Tables[0].Rows[i]["DT_INICIO"]);
                    }
                    if (ds.Tables[0].Rows[i]["DT_FIM"] != DBNull.Value)
                    {
                        dataFim = Convert.ToDateTime(ds.Tables[0].Rows[i]["DT_FIM"]);
                    }
                    if (ds.Tables[0].Rows[i]["DT_CADASTRO"] != DBNull.Value)
                    {
                        dataCadastro = Convert.ToDateTime(ds.Tables[0].Rows[i]["DT_CADASTRO"]);
                    }

                    if (ds.Tables[0].Rows[i]["ID_CONTRATO"] != DBNull.Value)
                    {
                        idContrato = Convert.ToInt32(ds.Tables[0].Rows[i]["ID_CONTRATO"]);
                    }
                    if (ds.Tables[0].Rows[i]["ID_USUARIO"] != DBNull.Value)
                    {
                        idPaciente = Convert.ToInt32(ds.Tables[0].Rows[i]["ID_USUARIO"]);
                    }
                    if (ds.Tables[0].Rows[i]["ID_NUTRI"] != DBNull.Value)
                    {
                        idNutricionista = Convert.ToInt32(ds.Tables[0].Rows[i]["ID_NUTRI"]);
                    }
                    if (ds.Tables[0].Rows[i]["MENSAGEM"] != DBNull.Value)
                    {
                        Mensagem = ds.Tables[0].Rows[i]["MENSAGEM"].ToString();
                    }

                    if (ds.Tables[0].Rows[i]["STATUS"] != DBNull.Value)
                    {
                        statusContrato = Enum.GetValues(typeof(StatusContratoEnum)).Cast <StatusContratoEnum>().
                                         FirstOrDefault(s => s.GetDefaultValue().Equals(ds.Tables[0].Rows[i]["STATUS"].ToString()));
                    }

                    listaContratos.Add(new Entidades.Contrato.Contrato(
                                           idPaciente,
                                           idNutricionista,
                                           endereco.Logradouro,
                                           endereco?.Complemento,
                                           endereco?.Numero,
                                           endereco.Bairro,
                                           endereco.Cidade,
                                           endereco.UF,
                                           endereco.CEP,
                                           datainicio,
                                           dataFim,
                                           statusContrato
                                           )
                    {
                        IdContrato   = idContrato,
                        DataCadastro = dataCadastro,
                        Mensagem     = Mensagem
                    });
                }
            }

            return(listaContratos);
        }