// TODO Mandar notificación por correo al ente proveedor. Un mensaje // cualquier para ir probando... public String solicitarSuscripcion() { if (!sessionValidate()) return INPUT; prepareRequest(); solicitud.setTelefono(codigo + solicitud.getTelefono()); create(solicitud); setSuscripcion_form(false); addActionMessage("Su solicitud de suscripción ha sido procesada."); System.out.println(solicitud.toString()); return SUCCESS; }
private void prepareRequest() { session = ActionContext.getContext().getSession(); Usuario user = (Usuario) session.get("usuario"); ente = (Ente) session.get("ente"); solicitud.setId_ente_proveedor( ((ServicioInformacion) read(servicio, id_servicio)).getId_ente()); solicitud.setId_ente_solicitante(user.getId_ente()); solicitud.setId_servicio_informacion(id_servicio); solicitud.setId_usuario(user.getId_usuario()); solicitud.setSentencia(PENDIENTE); }
@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; }
@SkipValidation public String prepararAprobarRechazarSuscripcion() { if (!sessionValidate()) return INPUT; // Lee los detalles de la suscripción 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 (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; ente = (Ente) read(ente, solicitud.getId_ente_solicitante()); servicio = (ServicioInformacion) read(servicio, solicitud.getId_servicio_informacion()); // Variable necesaria para la vista. aprobarRechazar = true; return SUCCESS; }
@SkipValidation public String prepararSuscripcion() { if (!sessionValidate()) return INPUT; if (!verificarLong(id_servicio)) return INPUT; servicio = (ServicioInformacion) read(servicio, id_servicio); suscripcion_form = true; prepareRequest(); if (read(solicitud).size() > 0) if (verifySuscriptionRequest( solicitud.getId_servicio_informacion(), solicitud.getId_ente_proveedor(), solicitud.getId_ente_solicitante())) { addFieldError( "error", error .getProperties() .getProperty("error.suscripcion.duplicated") .replace("{0}", ente.getSiglas().toUpperCase())); id_solicitud_suscripcion = getId_solicitud_sucripcion( solicitud.getId_servicio_informacion(), solicitud.getId_ente_proveedor(), solicitud.getId_ente_solicitante()); setInvalid(true); setRequested(true); } 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; }
@Override public void validate() { if (!isRequested()) { if (solicitud.getSolicitante().trim().isEmpty()) { addFieldError( "solicitante", error.getProperties().getProperty("error.suscripcion.solicitante")); setInvalid(true); } if (!solicitud.getSolicitante().toUpperCase().matches(REGEX_TITLE)) { addFieldError("solicitante", error.getProperties().getProperty("error.regex.title")); setInvalid(true); } if (solicitud.getCargo().trim().isEmpty()) { addFieldError("cargo", error.getProperties().getProperty("error.suscripcion.cargo")); setInvalid(true); } if (!solicitud.getCargo().toUpperCase().matches(REGEX_TITLE)) { addFieldError("cargo", error.getProperties().getProperty("error.regex.title")); setInvalid(true); } if (solicitud.getCorreo().trim().isEmpty()) { addFieldError("correo", error.getProperties().getProperty("error.suscripcion.email")); setInvalid(true); } if (!solicitud.getCorreo().matches(REGEX_EMAIL)) { addFieldError("correo", error.getProperties().getProperty("error.regex.email")); setInvalid(true); } if (solicitud.getTelefono().trim().isEmpty()) { addFieldError("telefono", error.getProperties().getProperty("error.suscripcion.telefono")); setInvalid(true); } if (solicitud.getTelefono().length() > 0 && solicitud.getTelefono().length() < 7) { addFieldError( "telefono", error.getProperties().getProperty("error.suscripcion.telefono.digit")); setInvalid(true); } if (!solicitud.getTelefono().matches("\\d.*") && !solicitud.getTelefono().trim().isEmpty()) { addFieldError( "telefono", error.getProperties().getProperty("error.suscripcion.telefono.regex")); setInvalid(true); } if (solicitud.getMotivo_solicitante().trim().isEmpty()) { addFieldError("motivo", error.getProperties().getProperty("error.suscripcion.motivo")); setInvalid(true); } if (!solicitud.getMotivo_solicitante().matches(REGEX_DESCRIPTION)) { addFieldError("motivo", error.getProperties().getProperty("error.regex.description")); setInvalid(true); } } if (isInvalid()) prepararSuscripcion(); else solicitarSuscripcion(); }