@SkipValidation public String examinarSolicitud() { if (!sessionValidate()) return INPUT; session = ActionContext.getContext().getSession(); Usuario user = (Usuario) session.get("usuario"); solicitud = (SolicitudSuscripcion) read(solicitud, id_solicitud_suscripcion); // Valida que un trol quiera acceder a las solicitudes de otros entes if (!detalles_respuesta) { if (user.getId_ente() != solicitud.getId_ente_proveedor()) return INPUT; } else { if (user.getId_ente() != solicitud.getId_ente_solicitante()) return INPUT; } // Guardo que la solicitud ya ha sido revisada y por quien fue leida if (!solicitud.isLeido()) { solicitud.setLeido(true); solicitud.setId_usuario(user.getId_usuario()); update(solicitud, id_solicitud_suscripcion); } if (!detalles_respuesta) { detalles_solicitud = true; ente = (Ente) read(ente, solicitud.getId_ente_solicitante()); } else { ente = (Ente) read(ente, solicitud.getId_ente_proveedor()); } servicio = (ServicioInformacion) read(servicio, solicitud.getId_servicio_informacion()); return SUCCESS; }
// TODO Enviar notificación por correo, falta colocar el mensaje registro // exitoso para la vista @SkipValidation public String aprobarRechazarSuscripcion() { if (!sessionValidate()) return INPUT; boolean err = false; String motivo_proveedor; int decision; // validar datos y guardar motivo_proveedor = solicitud.getMotivo_proveedor(); decision = solicitud.getSentencia(); session = ActionContext.getContext().getSession(); Usuario user = (Usuario) session.get("usuario"); if (solicitud.getMotivo_proveedor().trim().isEmpty()) { addFieldError( "motivo_proveedor", error.getProperties().getProperty("error.suscripcion.motivo_proveedor")); err = true; } else if (!solicitud.getMotivo_proveedor().toUpperCase().matches(REGEX_TITLE)) { addFieldError("motivo_proveedor", error.getProperties().getProperty("error.regex.title")); err = true; } if (!(solicitud.getSentencia() >= 1 && solicitud.getSentencia() <= 2)) { addFieldError("sentencia", error.getProperties().getProperty("error.suscripcion.sentencia")); err = true; } solicitud = (SolicitudSuscripcion) read(solicitud, id_solicitud_suscripcion); solicitud.setSentencia(decision); solicitud.setMotivo_proveedor(motivo_proveedor); ente = (Ente) read(ente, solicitud.getId_ente_solicitante()); servicio = (ServicioInformacion) read(servicio, solicitud.getId_servicio_informacion()); if (err) return INPUT; // Valida que un trol quiera acceder a las solicitudes de otros entes if (user.getId_ente() != solicitud.getId_ente_proveedor()) return INPUT; // Valida que la solicitud.sentencia sea igual a cero (0 = pendiente). if (solicitud.getSentencia() == 0) return INPUT; // Si la desición es ACEPTADO se crea el registro suscrito if (decision == 1) { Suscrito suscrito = new Suscrito(); suscrito.setId_ente(solicitud.getId_ente_solicitante()); suscrito.setId_servicio_informacion(solicitud.getId_servicio_informacion()); create(suscrito); } // Coloco a false leido para utilizarlo con el ente solicitante, en las // notificaciones. solicitud.setLeido(false); // Actualiza la solicitud de suscripción update(solicitud, solicitud.getId_solicitud_suscripcion()); addActionMessage("EL VEREDICTO DE LA SOLICITUD DE SUSCRIPCIÓN HA SIDO PROCESADA CORRECTAMENTE"); aprobarRechazar = false; return SUCCESS; }