public async Task <IActionResult> Edit(int id, [Bind("Id,DataConsulta,NomeProcedimeneto,HorarioConsulta,PacienteId,AnamneseId")] ConsultaEntity consultaEntity) { if (id != consultaEntity.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(consultaEntity); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ConsultaEntityExists(consultaEntity.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["AnamneseId"] = new SelectList(_context.Anamneses, "Id", "Sintomas", consultaEntity.AnamneseId); ViewData["PacienteId"] = new SelectList(_context.Pacientes, "Id", "Nome", consultaEntity.PacienteId); return(View(consultaEntity)); }
/// <summary> /// Obtiene el responde Bien de una entidad Consulta /// </summary> /// <param name="objEnt">Objeti entidad</param> /// <returns>Entidad Response de objeto Bien</returns> public static ConsultaResponse ObtenerConsultaResponseDeEntity(ConsultaEntity data, List <TrabajadorDatoMinimoResponse> listaTrabajador = null) { ConsultaResponse consultaResponse = new ConsultaResponse(); consultaResponse.Asunto = data.Asunto; consultaResponse.CodigoConsulta = data.CodigoConsulta; consultaResponse.CodigoDestinatario = data.CodigoDestinatario; if (listaTrabajador != null) { var trabajadorDestinatario = listaTrabajador.Where(item => item.CodigoTrabajador == data.CodigoDestinatario).FirstOrDefault(); consultaResponse.NombreDestinatario = (trabajadorDestinatario != null ? trabajadorDestinatario.NombreCompleto : ""); var trabajadorRemitente = listaTrabajador.Where(item => item.CodigoTrabajador == data.CodigoRemitente).FirstOrDefault(); consultaResponse.NombreRemitente = (trabajadorRemitente != null ? trabajadorRemitente.NombreCompleto : ""); } consultaResponse.CodigoRemitente = data.CodigoRemitente; consultaResponse.Contenido = data.Contenido; consultaResponse.EstadoConsulta = data.EstadoConsulta; consultaResponse.FechaEnvio = data.FechaEnvio; consultaResponse.FechaEnvioString = (data.FechaEnvio.HasValue) ? data.FechaEnvio.Value.ToString("dd/MM/yyyy") : ""; consultaResponse.FechaRespuesta = data.FechaRespuesta; consultaResponse.FechaRespuestaString = (data.FechaRespuesta.HasValue) ? data.FechaRespuesta.Value.ToString("dd/MM/yyyy") : "";; consultaResponse.Respuesta = data.Respuesta; consultaResponse.Tipo = data.Tipo; return(consultaResponse); }
/// <summary> /// Realiza la adaptación de campos para registrar o actualizar /// </summary> /// <param name="data">Datos a registrar o actualizar</param> /// <returns>Entidad Datos a registrar</returns> public static ConsultaEntity ObtenerConsultaEntity(ConsultaRequest data) { ConsultaEntity consultaEntity = new ConsultaEntity(); if (data.CodigoConsulta != null) { consultaEntity.CodigoConsulta = new Guid(data.CodigoConsulta); } else { consultaEntity.CodigoConsulta = Guid.NewGuid(); } consultaEntity.CodigoRemitente = (data.CodigoRemitente != null ? new Guid(data.CodigoRemitente) : new Guid()); consultaEntity.CodigoDestinatario = (data.CodigoDestinatario != null ? new Guid(data.CodigoDestinatario) : new Guid()); consultaEntity.Tipo = data.Tipo; consultaEntity.Asunto = data.Asunto; consultaEntity.Contenido = data.Contenido; consultaEntity.EstadoConsulta = data.EstadoConsulta; consultaEntity.FechaEnvio = data.FechaEnvio; consultaEntity.Respuesta = data.Respuesta; consultaEntity.FechaRespuesta = data.FechaRespuesta; consultaEntity.CodigoUnidadOperativa = (string.IsNullOrEmpty(data.CodigoUnidadOperativa) ? (Guid?)null : new Guid(data.CodigoUnidadOperativa)); consultaEntity.CodigoArea = data.CodigoArea; consultaEntity.EsValido = data.EsValido; return(consultaEntity); }
/// <summary> /// Realiza la adaptación de campos para registrar o actualizar /// </summary> /// <param name="data">Datos a registrar o actualizar</param> /// <returns>Entidad Datos a registrar</returns> public static ConsultaEntity ObtenerConsultaEntityDeLogic(ConsultaLogic data) { ConsultaEntity consultaEntity = new ConsultaEntity(); if (data.CodigoConsulta != null) { consultaEntity.CodigoConsulta = data.CodigoConsulta; } else { consultaEntity.CodigoConsulta = Guid.NewGuid(); } consultaEntity.CodigoRemitente = (data.CodigoRemitente != null ? data.CodigoRemitente : new Guid()); consultaEntity.CodigoDestinatario = (data.CodigoDestinatario != null ? data.CodigoDestinatario : new Guid()); consultaEntity.Tipo = data.Tipo; consultaEntity.Asunto = data.Asunto; consultaEntity.Contenido = data.Contenido; consultaEntity.EstadoConsulta = data.EstadoConsulta; consultaEntity.FechaEnvio = data.FechaEnvio; consultaEntity.Respuesta = data.Respuesta; consultaEntity.FechaRespuesta = data.FechaRespuesta; consultaEntity.CodigoUnidadOperativa = (data.CodigoUnidadOperativa.HasValue) ? data.CodigoUnidadOperativa : (Guid?)null; consultaEntity.CodigoArea = data.CodigoArea; return(consultaEntity); }
public void AtualizarConsulta(int id, ConsultaEntity consultaEntity) { ValidarSalvar(consultaEntity); _consultaRepository.AtualizarConsultaPacienteById(id, consultaEntity); _consultaRepository.SaveChanges(); }
public async Task <IActionResult> Create([Bind("Id,DataConsulta,NomeProcedimeneto,HorarioConsulta,PacienteId,AnamneseId")] ConsultaEntity consultaEntity) { if (ModelState.IsValid) { _context.Add(consultaEntity); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["AnamneseId"] = new SelectList(_context.Anamneses, "Id", "Sintomas", consultaEntity.AnamneseId); ViewData["PacienteId"] = new SelectList(_context.Pacientes, "Id", "Nome", consultaEntity.PacienteId); return(View(consultaEntity)); }
public void ValidarSalvar(ConsultaEntity consultaEntity) { if (consultaEntity.DataHoraInicio > consultaEntity.DataHoraFinal) { throw new BusinessException("A data inicial da consulta não pode ser maior que a final."); } var exists = _consultaRepository.ExisteConsulta(consultaEntity.Id, consultaEntity.DataHoraInicio, consultaEntity.DataHoraFinal); if (exists) { throw new BusinessException("Já existe consulta marcada para a data e horário."); } }
public IEnumerable <ResultadoEntity> GetAll(ConsultaEntity consulta) { var sql = @" SELECT DISTINCT TPF.TABELA_PRECO_FORNECEDOR_ID TabelaPrecoFornecedorId, ISNULL(F.NOME_FANTASIA, '') NomeFantasia, ISNULL(F.CNPJ_CPF, '') Cnpj, ISNULL(CONVERT(VARCHAR(10), TPF.DATA_INICIO, 103), '') DataInicio, ISNULL(CONVERT(VARCHAR(10), TPF.DATA_FIM, 103), '') DataFim, TS.DESC_STATUS Status FROM TABELA_PRECO_FORNECEDOR TPF LEFT JOIN TABELA_OVA_DESOVA TOD ON TOD.TABELA_PRECO_FORNECEDOR_ID = TPF.TABELA_PRECO_FORNECEDOR_ID AND TOD.TAB_STATUS_ID = 1 LEFT JOIN MUNICIPIO M ON M.MUNICIPIO_ID = TOD.MUNICIPIO_ID OUTER APPLY (SELECT NOME_FANTASIA, CNPJ_CPF FROM VFORNEC_TAB_TIPO_FORNEC2 WHERE PESSOA_ID = TPF.FORNECEDOR_ID) F INNER JOIN TAB_STATUS TS ON TS.TAB_STATUS_ID = TPF.TAB_STATUS_ID WHERE TPF.TAB_STATUS_ID IN (1, 2) AND TPF.TAB_TIPO_TABELA_ID = 50 AND (TOD.MUNICIPIO_ID = @MunicipioId OR ISNULL(@MunicipioId, 0) = 0) AND (M.TAB_UF_ID = @UfId OR ISNULL(@UfId, 0) = 0) AND ( (ISNULL(TPF.FORNECEDOR_ID, 0) = 0 AND @TipoTabela = 'TP') OR (ISNULL(TPF.FORNECEDOR_ID, 0) <> 0 AND (TPF.FORNECEDOR_ID = @FornecedorId OR ISNULL(@FornecedorId, 0) = 0) AND @TipoTabela = 'P') OR (TPF.FORNECEDOR_ID = @FornecedorId OR ISNULL(@FornecedorId, 0) = 0 AND ISNULL(@TipoTabela, '') = '') ) AND ( (TPF.DATA_INICIO BETWEEN @PeriodoDe AND @PeriodoAte) OR (TPF.DATA_FIM BETWEEN @PeriodoDe AND @PeriodoAte) OR (ISNULL(@PeriodoDe, '') = '' AND ISNULL(@PeriodoAte, '') = '') ) ORDER BY NomeFantasia"; var param = new { consulta.MunicipioId, consulta.UfId, consulta.FornecedorId, consulta.PeriodoDe, consulta.PeriodoAte, consulta.TipoTabela }; using (var db = Connection) { return(db.Query <ResultadoEntity>(sql, param)); } }
/// <summary> /// Retorna información de la consulta. /// </summary> /// <param name="codigoConsulta">código de la consulta</param> /// <returns>Información de la consulta</returns> public ProcessResult <ConsultaResponse> ConsultaPorId(Guid codigoConsulta) { ProcessResult <ConsultaResponse> rpta = new ProcessResult <ConsultaResponse>(); try { ConsultaEntity entConsulta = consultaEntityRepository.GetById(codigoConsulta); rpta.Result = new ConsultaResponse(); rpta.Result = ConsultaAdapter.ObtenerConsultaResponseDeEntity(entConsulta); } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <ConsultaService>(ex); } return(rpta); }
public void CriarConsulta(ConsultaEntity consultaEntity) { ValidarSalvar(consultaEntity); _consultaRepository.Add(consultaEntity); _consultaRepository.SaveChanges(); }
/// <summary> /// Reenvia Consulta /// </summary> /// <param name="data"></param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <ConsultaRequest> ReenviarConsulta(ConsultaRequest data) { ProcessResult <ConsultaRequest> resultado = new ProcessResult <ConsultaRequest>(); try { ConsultaEntity entidad = ConsultaAdapter.ObtenerConsultaEntity(data); entidad.EstadoConsulta = DatosConstantes.EstadoConsulta.Enviado; entidad.FechaEnvio = DateTime.Now; //Obtenemos la consulta original var entidadSincronizar = consultaEntityRepository.GetById(new Guid(data.CodigoConsultaRelacionado)); entidad.Asunto = "RE: " + entidadSincronizar.Asunto; var nombreRemitenteOriginal = trabajadorService.BuscarTrabajador(new TrabajadorRequest() { CodigoTrabajador = entidadSincronizar.CodigoRemitente }).Result.FirstOrDefault().NombreCompleto; entidad.Contenido = data.Adicional + "</br></br> Enviado por " + nombreRemitenteOriginal + " el " + entidadSincronizar.FechaEnvio.Value.ToString("dd/M/yyyy") + ":</br></br>" + entidadSincronizar.Contenido; entidad.Tipo = entidadSincronizar.Tipo; entidad.CodigoDestinatario = new Guid(data.CodigoDestinatario); entidad.CodigoRemitente = new Guid(data.CodigoRemitente); entidad.CodigoUnidadOperativa = entidadSincronizar.CodigoUnidadOperativa; entidad.CodigoArea = entidadSincronizar.CodigoArea; entidad.CodigoConsultaRelacionado = new Guid(data.CodigoConsultaRelacionado); entidad.CodigoConsultaOriginal = (entidadSincronizar.CodigoConsultaOriginal == null ? entidadSincronizar.CodigoConsulta : entidadSincronizar.CodigoConsultaOriginal); entidad.VistoRemitenteOriginal = true; consultaEntityRepository.Insertar(entidad); consultaEntityRepository.GuardarCambios(); //Cambiamos el estado en la consulta original a reenviado entidadSincronizar.EstadoConsulta = DatosConstantes.EstadoConsulta.Reenviado; consultaEntityRepository.Editar(entidadSincronizar); consultaEntityRepository.GuardarCambios(); //Enviar Correo ParametrosNotificacion datos = new ParametrosNotificacion(); datos.TipoNotificacion = DatosConstantes.TipoNotificacion.RegistroConsultas; datos.variables = new Dictionary <string, string>(); PlantillaNotificacionRequest filtro = new PlantillaNotificacionRequest(); filtro.CodigoSistema = ConfigurationManager.AppSettings["CODIGO_SISTEMA"].ToString(); filtro.CodigoTipoNotificacion = datos.TipoNotificacion; var datosPlantilla = plantillaNotificacionService.BuscarPlantillaNotificacion(filtro).Result.FirstOrDefault(); if (datosPlantilla != null) { var profile = politicaService.ListaCuentaNotificacionSGC(null, "3").Result.FirstOrDefault(); datos.profileCorreo = (profile != null ? profile.Valor.ToString() : ""); var urlSistema = politicaService.ListaUrlSistemas(null, "3").Result.FirstOrDefault().Valor.ToString(); urlSistema = string.Format("{0}{1}{2}{3}{4}{5}{6}", "<a href='", urlSistema, DatosConstantes.UrlOpcionesSistema.RutaConsulta, "'>", urlSistema, DatosConstantes.UrlOpcionesSistema.RutaConsulta, "</a>"); var destinatario = trabajadorService.BuscarTrabajador(new TrabajadorRequest() { CodigoTrabajador = entidad.CodigoDestinatario }).Result.FirstOrDefault(); datos.variables.Add("@para", destinatario.NombreCompleto); datos.variables.Add("@tipo_consulta", data.DescripcionTipo); datos.variables.Add("@url_opcion_sistema", urlSistema); datos.textoNotificar = data.Adicional + "</br></br> Enviado por " + nombreRemitenteOriginal + " el " + entidadSincronizar.FechaEnvio.Value.ToString("dd/M/yyyy") + ":</br></br>" + datosPlantilla.Contenido; foreach (var item in datos.variables) { datos.textoNotificar = datos.textoNotificar.Replace(item.Key, item.Value); } consultaLogicRepository.NotificarConsulta(entidadSincronizar.Asunto, datos.textoNotificar, destinatario.CorreoElectronico, null, datos.profileCorreo); } //copiar los adjuntos del original var resultAdjunto = consultaAdjuntoLogicRepository.BuscarConsultaAdjunto( null, new Guid(data.CodigoConsultaRelacionado), null, null, DatosConstantes.EstadoRegistro.Activo ); if (resultAdjunto != null && resultAdjunto.Count > 0) { foreach (var item in resultAdjunto) { item.CodigoConsultaAdjunto = Guid.NewGuid(); item.CodigoConsulta = entidad.CodigoConsulta; consultaAdjuntoEntityRepository.Insertar(ConsultaAdapter.ObtenerConsultaAdjuntoEntityDeLogic(item)); consultaAdjuntoEntityRepository.GuardarCambios(); } } //Guardar nuevos adjuntos if (data.ListaAdjuntos != null) { foreach (var item in data.ListaAdjuntos) { byte[] bytes = System.IO.File.ReadAllBytes(item.RutaArchivoSharePoint); item.CodigoConsulta = entidad.CodigoConsulta; item.ArchivoAdjunto = bytes; var resultadoAdjunto = RegistrarConsultaAdjunto(item); } } data.ListaAdjuntos = null; resultado.Result = data; } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ConsultaService>(e); } return(resultado); }
/// <summary> /// Registra / Responde Consulta /// </summary> /// <param name="data"></param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <ConsultaRequest> RegistrarConsulta(ConsultaRequest data) { ProcessResult <ConsultaRequest> resultado = new ProcessResult <ConsultaRequest>(); try { ConsultaEntity entidad = ConsultaAdapter.ObtenerConsultaEntity(data); if (data.CodigoConsulta == null) { entidad.EstadoConsulta = DatosConstantes.EstadoConsulta.Enviado; entidad.FechaEnvio = DateTime.Now; entidad.VistoRemitenteOriginal = true; consultaEntityRepository.Insertar(entidad); consultaEntityRepository.GuardarCambios(); if (!string.IsNullOrEmpty(data.CodigoDestinatario)) { var destinatario = trabajadorService.BuscarTrabajador(new TrabajadorRequest() { CodigoTrabajador = new Guid(data.CodigoDestinatario) }).Result.FirstOrDefault(); data.CorreoDestinatario = destinatario.CorreoElectronico; data.NombreDestinatario = destinatario.NombreCompleto; EnviarNotificacion(DatosConstantes.TipoNotificacion.RegistroConsultas, data.DescripcionTipo, data.Asunto, data.NombreDestinatario, data.CorreoDestinatario); } } else //es un responder { var entidadSincronizar = consultaEntityRepository.GetById(entidad.CodigoConsulta); entidadSincronizar.Respuesta = entidad.Respuesta; entidadSincronizar.FechaRespuesta = (entidadSincronizar.CodigoConsultaOriginal != null ? (DateTime?)null : DateTime.Now); entidadSincronizar.EsValido = entidad.EsValido; if (entidad.EsValido == true) { entidadSincronizar.EstadoConsulta = DatosConstantes.EstadoConsulta.Contestado; } else { entidadSincronizar.EstadoConsulta = DatosConstantes.EstadoConsulta.NoAplica; } //Listamos todas las consultas que hayan sido reenviadas incluyendo la original que tienen el mismo codigo de consulta original var listaConsultas = consultaLogicRepository.ListaConsultaSimple(null, null, null, null, null, null, null).Where(x => (x.CodigoConsultaOriginal == entidadSincronizar.CodigoConsultaOriginal || x.CodigoConsulta == entidadSincronizar.CodigoConsultaOriginal) && x.CodigoConsulta != entidad.CodigoConsulta).ToList(); if (entidadSincronizar.CodigoConsultaOriginal != null) { var consultaOriginal = consultaEntityRepository.GetById(entidadSincronizar.CodigoConsultaOriginal); //insertamos un nuevo registro de contestacion de consulta var consultaRespuesta = new ConsultaEntity(); consultaRespuesta.Asunto = entidadSincronizar.Asunto; consultaRespuesta.CodigoArea = entidadSincronizar.CodigoArea; consultaRespuesta.CodigoConsulta = Guid.NewGuid(); consultaRespuesta.CodigoConsultaOriginal = entidadSincronizar.CodigoConsultaOriginal; consultaRespuesta.CodigoConsultaRelacionado = entidadSincronizar.CodigoConsultaRelacionado; consultaRespuesta.CodigoDestinatario = entidadSincronizar.CodigoDestinatario; consultaRespuesta.CodigoRemitente = consultaOriginal.CodigoRemitente; consultaRespuesta.CodigoUnidadOperativa = entidadSincronizar.CodigoUnidadOperativa; consultaRespuesta.Contenido = entidadSincronizar.Contenido; consultaRespuesta.EstadoConsulta = entidadSincronizar.EstadoConsulta; consultaRespuesta.EstadoRegistro = entidadSincronizar.EstadoRegistro; consultaRespuesta.EsValido = entidadSincronizar.EsValido; consultaRespuesta.FechaCreacion = entidadSincronizar.FechaCreacion; consultaRespuesta.FechaEnvio = entidadSincronizar.FechaEnvio; consultaRespuesta.FechaModificacion = entidadSincronizar.FechaModificacion; consultaRespuesta.FechaRespuesta = DateTime.Now; consultaRespuesta.Respuesta = entidadSincronizar.Respuesta; consultaRespuesta.TerminalCreacion = entidadSincronizar.TerminalCreacion; consultaRespuesta.TerminalModificacion = entidadSincronizar.TerminalModificacion; consultaRespuesta.Tipo = entidadSincronizar.Tipo; consultaRespuesta.UsuarioCreacion = entidadSincronizar.UsuarioCreacion; consultaRespuesta.UsuarioModificacion = entidadSincronizar.UsuarioModificacion; consultaRespuesta.VistoRemitenteOriginal = entidadSincronizar.VistoRemitenteOriginal; consultaEntityRepository.Insertar(consultaRespuesta); consultaEntityRepository.GuardarCambios(); //entidadSincronizar.CodigoRemitente = consultaOriginal.CodigoRemitente; } //Actualizamos la consulta con respuesta consultaEntityRepository.Editar(entidadSincronizar); consultaEntityRepository.GuardarCambios(); //Enviar notificación de respuesta if (entidadSincronizar.CodigoRemitente != null) { var destinatario = trabajadorService.BuscarTrabajador(new TrabajadorRequest() { CodigoTrabajador = entidadSincronizar.CodigoRemitente }).Result.FirstOrDefault(); EnviarNotificacion(DatosConstantes.TipoNotificacion.RespuestaConsultas, data.DescripcionTipo, entidadSincronizar.Asunto, destinatario.NombreCompleto, destinatario.CorreoElectronico); } //Actualizamos todas las consultas que hayan sido reenviadas incluyendo la original que tienen el mismo codigo de consulta original foreach (var item in listaConsultas) { var itemEditar = consultaEntityRepository.GetById(item.CodigoConsulta); itemEditar.VistoRemitenteOriginal = (itemEditar.CodigoConsulta == entidadSincronizar.CodigoConsultaOriginal ? false : true); itemEditar.EstadoConsulta = entidadSincronizar.EstadoConsulta; //itemEditar.FechaRespuesta = entidadSincronizar.FechaRespuesta; //entidadOriginalSincronizar.Respuesta = entidadSincronizar.Respuesta; itemEditar.EsValido = entidadSincronizar.EsValido; consultaEntityRepository.Editar(itemEditar); consultaEntityRepository.GuardarCambios(); } //var entidadOriginalSincronizar = consultaEntityRepository.GetById(entidadSincronizar.CodigoConsultaOriginal); //if (entidadOriginalSincronizar != null) //{ // entidadOriginalSincronizar.VistoRemitenteOriginal = false; // entidadOriginalSincronizar.EstadoConsulta = entidadSincronizar.EstadoConsulta; // entidadOriginalSincronizar.FechaRespuesta = entidadSincronizar.FechaRespuesta; // //entidadOriginalSincronizar.Respuesta = entidadSincronizar.Respuesta; // entidadOriginalSincronizar.EsValido = entidadSincronizar.EsValido; // consultaEntityRepository.Editar(entidadOriginalSincronizar); // consultaEntityRepository.GuardarCambios(); //} } //Registrar adjuntos if (data.ListaAdjuntos != null) { foreach (var item in data.ListaAdjuntos) { byte[] bytes = System.IO.File.ReadAllBytes(item.RutaArchivoSharePoint); item.CodigoConsulta = entidad.CodigoConsulta; item.ArchivoAdjunto = bytes; var resultadoAdjunto = RegistrarConsultaAdjunto(item); } data.ListaAdjuntos = null; } resultado.Result = data; } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ConsultaService>(e); } return(resultado); }