private void completarInformacionAdicionalSolicitud( SolicitudCartaPresentacionPasantia solicitud) { // Se completa la informacion de la empresa Empresa empresa = OficinaPasantiaServicio.getInstance().getEmpresa(solicitud.getScpp_cias()); solicitud.setEmpresa(empresa); // Se completan los documentos asociados a la solicitud List<DocAnexoSolCartaPresentacionPasantia> documentos = DocAnexoSolCartaPresentacionPasantiaServicio.getInstance() .getDocumentosPorSolicitud(solicitud.getScpp_scpp()); solicitud.setDocumentos(documentos); }
public int getTotalMisPendientesPorServicio(Servicio servicio, Usuario usuario) { OficinaPasantia oficinaPasantia = OficinaPasantiaServicio.getInstance().getOficinaPasantiaPorUsuarioDelegado(usuario); int totalSolicitudes = 0; if (oficinaPasantia != null) { SolicitudRevisionDocumentacionPasantiaPropuestaServicio servicioSolicitudes = SolicitudRevisionDocumentacionPasantiaPropuestaServicio.getInstance(); List<SolicitudRevisionDocumentacionPasantia> solicitudes = servicioSolicitudes.getSolicitudesSinAprobar(oficinaPasantia.getOfpa_ofpa()); totalSolicitudes = solicitudes.size(); } return totalSolicitudes; }
public Boolean enviarNotificacionesPorFinalizarSolicitud( SolicitudCartaPresentacionPasantia solicitudFinalizada) { // Se crean las notificaciones String emisor = Constantes.USUA_APP; Boolean sinErrores = true; if (solicitudFinalizada != null) { String asunto = "Solicitud de Elaboracion de Cartas de Presentación de Pasantía No. " + solicitudFinalizada.getScpp_scpp() + " FINALIZADA"; Prepropuesta prepropuesta = PrepropuestaServicio.getInstance().getPrepropuesta(solicitudFinalizada.getScpp_prep()); // Notificacion a los usuarios delegados de la oficina de pasantia try { ProyectoCurricular proyectoCurricular = ProyectoCurricularServicio.getInstance() .getProyectoCurricular(prepropuesta.getPrep_pcur()); List<Usuario> usuariosDelegados = OficinaPasantiaServicio.getInstance() .getUsuariosDelegados(proyectoCurricular.getPcur_facu()); if (usuariosDelegados != null && usuariosDelegados.size() > 0) { // Se crea una notificacion al proyecto curricular String mensaje = "Se ha FINALIZADO la elaboración de la carta de presentación de pasantía No. " + solicitudFinalizada.getScpp_scpp() + ". Para mas información consulte el estado de la solicitud."; for (Usuario usuario : usuariosDelegados) { NotificacionServicio.getInstance() .generarNotificacionPorUsuario(emisor, asunto, mensaje, usuario.getUsua_usua()); } } } catch (Exception e) { SimpleLogger.warn( "No se han podido enviar las notificaciones de FINALIZACION de elaboracion de cartas de presentación de pasantía a los usuario delegados"); sinErrores = false; } // Notificacion a los autores de la prepropuesta try { String mensaje = "Su solicitud de elaboracion de cartas de presentación de pasantía No." + solicitudFinalizada.getScpp_scpp() + " ha sido FINALIZADA. Para mayor información consulte el estado de su solicitud a través del aplicativo"; List<Estudiante> autores = prepropuesta.getAutores(); for (Estudiante autor : autores) { NotificacionServicio.getInstance() .generarNotificacionPorUsuario(emisor, asunto, mensaje, autor.getEstd_usua()); } } catch (Exception e) { SimpleLogger.warn( "No se han podido enviar las notificaciones de FINALIZACION de la solicitud a los autores de la prepropuesta"); sinErrores = false; } } return sinErrores; }
public SolicitudCartaPresentacionPasantia crearSolicitudCartaPresentacion( Prepropuesta prepropuesta, Usuario estudiante, SolicitudCartaPresentacionPasantia solicitud, Empresa empresa, List<DocAnexoSolCartaPresentacionPasantia> documentos, StringBuffer mensajeError) { SolicitudCartaPresentacionPasantia solicitudCreada = null; // Se crea la solcitud de elaboración de carta de presentación de pasantía try { Boolean crearEmpresa = false; // Se valida la informacion if (prepropuesta == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado la prepropuesta a la cual esta asociada."; SimpleLogger.error(error); mensajeError.append(error); return null; } if (estudiante == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado el solicitante."; SimpleLogger.error(error); mensajeError.append(error); return null; } if (solicitud == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado correctamente la observación"; SimpleLogger.error(error); mensajeError.append(error); return null; } if (documentos == null || documentos.size() == 0) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado correctamente la observación"; SimpleLogger.error(error); mensajeError.append(error); return null; } if (solicitud.getScpp_cias() == null) { if (empresa.getCias_nomb() == null || empresa.getCias_nit() == null || empresa.getCias_descri() == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado correctamente la empresa"; SimpleLogger.error(error); mensajeError.append(error); return null; } else { // Se debe crear la empresa crearEmpresa = true; } } // Se crea la solicitud transaccional SqlSession session = DBManager.openSession(); Boolean sinErrores = true; try { // Se verifica si se debe crear la empresa Long cias_cias = null; if (crearEmpresa) { cias_cias = OficinaPasantiaServicio.getInstance().crearEmpresaTransaccional(session, empresa); if (cias_cias != null) { solicitud.setScpp_cias(cias_cias); } else { sinErrores = false; } } if (sinErrores) { solicitudCreada = SolicitudCartaPresentacionPasantiaControllerDB.getInstance() .crearSolicitudTransaccional( session, prepropuesta, estudiante, solicitud, mensajeError); if (solicitudCreada != null) { // Se deben crear los documentos anexos DocAnexoSolCartaPresentacionPasantiaServicio docAnexoServicio = DocAnexoSolCartaPresentacionPasantiaServicio.getInstance(); ArrayList<DocAnexoSolCartaPresentacionPasantia> documentosAlmacenados = new ArrayList<DocAnexoSolCartaPresentacionPasantia>(); for (DocAnexoSolCartaPresentacionPasantia docAnexo : documentos) { docAnexo.setDscpp_scpp(solicitudCreada.getScpp_scpp()); docAnexo.setDscpp_usua(estudiante.getUsua_usua()); sinErrores = docAnexoServicio.crearDocumentoTransaccional(session, docAnexo) && sinErrores; documentosAlmacenados.add(docAnexo); } // Se revisa que no hayan ocurrido errores if (sinErrores) { solicitudCreada.setDocumentos(documentosAlmacenados); session.commit(); } else { session.rollback(); String error = "Error: No fue posible crear la solicitud de elaboración de carta de presentación de pasantía. Error creando los documentos anexos"; SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } } else { session.rollback(); String error = "Error: No fue posible crear la solicitud de elaboración de carta de presentación de pasantía. Error desconocido 2"; SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } } else { session.rollback(); String error = "Error: No fue posible crear la solicitud de elaboración de carta de presentación de pasantía. Error creando la empresa de la pasantía"; SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } } catch (Exception e) { session.rollback(); String error = "Error: " + e.getMessage(); SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } finally { session.close(); } } catch (Exception e) { SimpleLogger.error("Error generando solicitud de carta de presentacion de pasantía ", e); solicitudCreada = null; mensajeError.append( "Error creando la solicitud de elaboración de carta de presentación de pasantía . No se ha podido finalizar la transacción correctamente"); } return solicitudCreada; }
/** * ========================================== ENVIO DE NOTIFICACIONES ================== * ========================================== */ public Boolean enviarNotificacionesPorCreacionDeSolicitud( Prepropuesta prepropuesta, SolicitudCartaPresentacionPasantia solicitud) { // Se crean las notificaciones String emisor = Constantes.USUA_APP; Boolean sinErrores = true; if (solicitud != null) { String asunto = "Solicitud de Elaboración de Carta de Presentacion de Pasantia. Solicitud No. " + solicitud.getScpp_scpp(); // Notificacion a los usuarios delegados de la oficina de pasantia try { ProyectoCurricular proyectoCurricular = ProyectoCurricularServicio.getInstance() .getProyectoCurricular(prepropuesta.getPrep_pcur()); List<Usuario> usuariosDelegados = OficinaPasantiaServicio.getInstance() .getUsuariosDelegados(proyectoCurricular.getPcur_facu()); if (usuariosDelegados != null && usuariosDelegados.size() > 0) { // Se crea una notificacion al proyecto curricular String mensaje = "Se ha registrado una nueva solcitud de elaboración de carta de presentación de pasantía No. " + solicitud.getScpp_scpp() + ". Por favor antender esta solicitud."; for (Usuario usuario : usuariosDelegados) { NotificacionServicio.getInstance() .generarNotificacionPorUsuario(emisor, asunto, mensaje, usuario.getUsua_usua()); } } } catch (Exception e) { SimpleLogger.warn( "No se han podido enviar las notificaciones de solcitud de elaboración de carta de presentación de pasantía"); sinErrores = false; } // Notificacion a los autores de la prepropuesta try { String mensaje = "Se ha registrado una nueva solcitud de elaboración de carta de presentación de pasantía No. " + solicitud.getScpp_scpp() + ". Su solicitud ha sido enviado a la instancia correspondiente."; List<Estudiante> autores = prepropuesta.getAutores(); for (Estudiante autor : autores) { NotificacionServicio.getInstance() .generarNotificacionPorUsuario(emisor, asunto, mensaje, autor.getEstd_usua()); } } catch (Exception e) { SimpleLogger.warn( "No se han podido enviar las notificaciones de solicitud de elaboración de carta de presentación de pasantía"); sinErrores = false; } } return sinErrores; }