/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <param name="id"></param> /// <returns></returns> public MensajeDTO AceptarSolicitud(UsuarioDTO usuario, int id) { Solicitud solicitud = solicitudRepositorio.BuscarPorId(id); Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(usuario.Correo); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Usuario destinatario = null; bool solicitudTerminadaRevision = false; switch (usuario.Rol.Descripcion) { case "Coordinador": solicitud.Validacion.Coordinador = true; destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Director); break; case "Posgrado": solicitud.Validacion.Posgrado = true; solicitudTerminadaRevision = true; break; case "Administradora": solicitud.Validacion.Administrador = true; destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Coordinador); break; case "Subdirector": solicitud.Validacion.Subdirector = true; destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Administradora); break; case "Director": solicitud.Validacion.Director = true; if (solicitud.Actividad.Posgrado == true) { destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Posgrado); } else { solicitudTerminadaRevision = true; } break; } if (solicitudTerminadaRevision) { solicitud.Id_Estado = (int)EstadoEnum.Aceptado; correo.MandarCorreo("Sistema Solicitud de Salida" + "La solicitud:" + id + "ha sido aceptada", "Solicitud Aceptada", solicitud.Correo_Solicitante); } else { correo.MandarCorreo("Sistema Solicitud de Salida" + "Tiene una solicitud pendiente por revisar. Solicitud :" + id , "Solicitud Pendiente", destinatario.Correo); } solicitudRepositorio.Modificar(solicitud); return(MensajeComponente.mensaje("Se ha aprobado correctamente", true)); }
/// <summary> /// /// </summary> /// <param name="solicitudDTO"></param> /// <returns></returns> public MensajeDTO Agregar(SolicitudDTO solicitudDTO) { if (this.SolicitudValida(solicitudDTO)) { Solicitud solicitud; solicitud = TransferirEntidad.TransferirDatosSolicitudDTO(solicitudDTO); //Busca credecniales del usuario logeado Models.Entidades.UABC.Usuario usuario = usuarioUABCRepositorio.BuscarUsuarioUABC(solicitud.Correo_Solicitante); Usuario subdirector = usuarioRepositorio.BuscarPorRol((int)RolEnum.Subdirector); //Busca al proximo usuario que su rol es coordinador //Envia el correo al sigueinte usuario CorreoComponente correo = new CorreoComponente(usuario.Email, usuario.Contraseña); if (correo.MandarCorreo("Sistema Solicitud de Salida" + "Tiene una solicitud pendiente por revisar ", "Solicitud Pendiente", subdirector.Correo)) { solicitudRepositorio.Agregar(solicitud); return(MensajeComponente.mensaje("Solicitud creada exitosamente", true)); } return(MensajeComponente.mensaje("Error al crear la solicitud", false)); } return(MensajeComponente.mensaje("Error al crear la solicitud", false)); }
public MensajeDTO EditarSolicitud(SolicitudDTO solicitudDTO) { if (this.SolicitudValida(solicitudDTO)) { Solicitud solicitud = solicitudRepositorio.BuscarPorId(solicitudDTO.Id); solicitud.Fecha_Modificacion = DateTime.Now; solicitud.Evento = TransferirDTO.TransferirEvento(solicitudDTO.Evento); solicitud.Actividad = TransferirDTO.TransferirActividad(solicitudDTO.Actividad); solicitud.Validacion = TransferirDTO.TransferirValidacion(solicitudDTO.Validacion); solicitud.Recurso = TransferirDTO.TransferirRecurso(solicitudDTO.Recurso_Solicitado); solicitud.Id_Carrera = solicitudDTO.Carrera.Id; solicitud.Id_Categoria = solicitudDTO.Categoria.Id; solicitud.Id_Estado = (int)EstadoEnum.Proceso; solicitud.Comentario_Rechazado = ""; Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(solicitud.Correo_Solicitante); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Usuario usuario; if (!solicitud.Validacion.Subdirector) { //Buscar subdirector usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Director); } else { if (!solicitud.Validacion.Administrador) { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Administradora); //buscar administrador } else { if (!solicitud.Validacion.Coordinador) { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Coordinador); //buscar coordinador } else { if (!solicitud.Validacion.Director) { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Director); //buscar director } else { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Posgrado); //buscar posgrado } } } } correo.MandarCorreo("Sistema Solicitud de Salida" + "La solicitud: " + solicitud.Id + " ha sido corregida.", "Solicitud Pendiente", usuario.Correo); solicitudRepositorio.Modificar(solicitud); return(MensajeComponente.mensaje("Solicitud modificada exitosamente", true)); } return(MensajeComponente.mensaje("Error al crear la solicitud", false));; }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public MensajeDTO RechazarTotalmente(int id, string Correo) { Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(Correo); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Solicitud solicitud = solicitudRepositorio.BuscarPorId(id); solicitudRepositorio.Borrar(solicitud); correo.MandarCorreo("Sistema Solicitud de Salida. " + "La solicitud: " + id + " ha sido rechazada." , "Solicitud Rechazada", solicitud.Correo_Solicitante); return(MensajeComponente.mensaje("Solicitud Rechazada", false)); }
/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <param name="id"></param> /// <returns></returns> public MensajeDTO RechazarSolicitud(SolicitudDTO solicitudDTO) { Solicitud solicitud = solicitudRepositorio.BuscarPorId(solicitudDTO.Id); solicitud.Comentario_Rechazado = solicitudDTO.Comentario_Rechazado; solicitud.Id_Estado = (int)EstadoEnum.Rechazado; Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(solicitud.Correo_Solicitante); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); correo.MandarCorreo("Sistema Solicitud de Salida" + "Se ha rechazado una solicitud", "Solicitud Pendiente", solicitud.Correo_Solicitante); solicitudRepositorio.Modificar(solicitud); return(MensajeComponente.mensaje("Se ha aprobado correctamente", true)); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="usuario"></param> /// <returns></returns> public MensajeDTO AceptarTotalmente(int id, string Correo) { Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(Correo); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Solicitud solicitud = solicitudRepositorio.BuscarPorId(id); solicitud.Id_Estado = (int)EstadoEnum.Aceptado; solicitud.Validacion.Subdirector = true; solicitud.Validacion.Administrador = true; solicitud.Validacion.Coordinador = true; solicitud.Validacion.Director = true; solicitud.Validacion.Posgrado = true; solicitudRepositorio.Modificar(solicitud); correo.MandarCorreo("Sistema Solicitud de Salida. " + "La solicitud: " + id + " ha sido aceptada." , "Solicitud Aceptada", solicitud.Correo_Solicitante); return(MensajeComponente.mensaje("Solicitud Aprobada", true)); }
public void Execute(IJobExecutionContext context) { //Cambiar estado de aceptado a reporte EntidadesSS contextss = new EntidadesSS(); solicitudRepositorio = new SolicitudRepositorioImpl(contextss); solicitudRepositorio.EstadoReporte(); usuarioRepositorioImpl = new UsuarioRepositorioImpl(contextss); //Buscar solicitudes con estado reporte y enviar solicitudes Usuario subdirector = usuarioRepositorioImpl.BuscarPorRol((int)RolEnum.Subdirector); List <Solicitud> solicitudes = solicitudRepositorio.BuscarSolicitudPorEstadoReporte(); usuarioUABCRepositorio = new UsuarioUABCRepositorioImpl(); Models.Entidades.UABC.Usuario subdirectorCredenciales = usuarioUABCRepositorio.BuscarUsuarioUABC(subdirector.Correo); CorreoComponente correo = new CorreoComponente(subdirectorCredenciales.Email, subdirectorCredenciales.Contraseña); foreach (Solicitud s in solicitudes) { correo.MandarCorreo("Sistema de solicitud de salida.Falta subir reporte", "REPORTE", "*****@*****.**"); } }