// retorna true cuando el usuario si ha particiado en la cc. private boolean esParticipanteCC(Formulario formulario, Usuario usuario) { logger.setLevel(Level.ALL); logger.entering(this.getClass().getName(), "obtenerParticipantesCC"); if (usuario.equals(formulario.getUsuarioidUsuario1())) { logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true); return true; } List<Traslado> traslados = trasladoFacade.findByNue(formulario); if (traslados .get(0) .getUsuarioidUsuario() .equals(usuario)) { // valida 1er traslado, útil para digitador. logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true); return true; } for (int i = 0; i < traslados.size(); i++) { if (traslados.get(i).getUsuarioidUsuario1().equals(usuario)) { logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true); return true; } } logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", false); return false; }
// retorna true cuando el usuario si ha particiado en la cc. @Override public boolean esParticipanteCC(Formulario formulario, Usuario usuario) { logger.setLevel(Level.ALL); logger.entering(this.getClass().getName(), "obtenerParticipantesCC"); if (usuario.equals(formulario.getUsuarioidUsuario1())) { logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true); return true; } List<Traslado> traslados = trasladoFacade.findByNue(formulario); if (traslados == null || traslados.isEmpty()) { logger.log(Level.INFO, "formulario ''{0}'' no registra traslados", formulario.getNue()); logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", false); return false; } if (traslados .get(0) .getUsuarioidUsuario() .equals(usuario)) { // valida 1er traslado, útil para digitador. logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true); return true; } for (int i = 0; i < traslados.size(); i++) { if (traslados.get(i).getUsuarioidUsuario1().equals(usuario)) { logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", true); return true; } } logger.exiting(this.getClass().getName(), "obtenerParticipantesCC", false); return false; }
@Override public String crearTraslado( Formulario formulario, String usuarioEntrega, String usuarioEntregaUnidad, String usuarioEntregaCargo, String usuarioEntregaRut, String usuarioRecibe, String usuarioRecibeUnidad, String usuarioRecibeCargo, String usuarioRecibeRut, Date fechaT, String observaciones, String motivo, Usuario uSesion) { logger.setLevel(Level.ALL); logger.entering(this.getClass().getName(), "crearTraslado"); if (formulario == null) { logger.exiting(this.getClass().getName(), "crearTraslado", "Formulario nulo"); return "Imposible agregar traslado, ocurrió un problema al cargar el formulario, por favor intente más tarde."; } // verificamos que el formulario no se encuentre bloqueado. if (formulario.getBloqueado()) { logger.exiting(this.getClass().getName(), "crearTraslado", "Formulario bloqueado"); return "Imposible agregar traslado, esta cadena de custodia se encuentra cerrada."; } if (usuarioEntrega == null || usuarioEntregaUnidad == null || usuarioEntregaCargo == null || usuarioEntregaRut == null || usuarioRecibe == null || usuarioRecibeUnidad == null || usuarioRecibeCargo == null || usuarioRecibeRut == null || motivo == null) { logger.exiting(this.getClass().getName(), "crearTraslado", "Campos null"); return "Faltan campos"; } // Validando usuario que entrega if (!val(usuarioEntregaRut) || !soloCaracteres(usuarioEntrega) || !soloCaracteres(usuarioEntregaUnidad) || !soloCaracteres(usuarioEntregaCargo)) { logger.exiting( this.getClass().getName(), "crearTraslado", "Error verificacion datos usuario entrega"); return "Error datos usuario entrega"; } // Validando usuario que recibe if (!val(usuarioRecibeRut) || !soloCaracteres(usuarioRecibe) || !soloCaracteres(usuarioRecibeUnidad) || !soloCaracteres(usuarioRecibeCargo)) { logger.exiting( this.getClass().getName(), "crearTraslado", "Error verificacion datos usuario recibe"); return "Error datos usuario recibe"; } // Busco todos los traslados del formulario List<Traslado> trasladoList = traslados(formulario); // Comparando fechas entre traslados if (!trasladoList.isEmpty() && !compareFechas(fechaT, trasladoList.get(trasladoList.size() - 1).getFechaEntrega())) { logger.exiting(this.getClass().getName(), "crearTraslado", "Error con Fecha"); return "Error, la fecha del nuevo traslado debe ser igual o posterior a la ultima fecha de traslado."; } // Comparando fecha entre traslado y formulario if (!compareFechas(fechaT, formulario.getFechaOcurrido())) { logger.exiting(this.getClass().getName(), "crearTraslado", "Error con Fecha"); return "Error, la fecha de traslado debe ser igual o posterior a la fecha del formulario."; } // traer usuarios, motivo TipoMotivo motivoP = tipoMotivoFacade.findByTipoMotivo(motivo); if (motivoP == null) { logger.exiting(this.getClass().getName(), "crearTraslado", "Error con Motivo de Traslado"); return "Error, se requiere especificar Motivo del traslado."; } Usuario usuarioEntregaP = null; Usuario usuarioRecibeP = null; // Verificando usuario Entrega usuarioEntregaP = usuarioFacade.findByRUN(usuarioEntregaRut); if (usuarioEntregaP == null) { usuarioEntregaP = crearExterno1( usuarioEntregaCargo, usuarioEntregaUnidad, usuarioEntrega, usuarioEntregaRut); if (usuarioEntregaP == null) { logger.exiting( this.getClass().getName(), "crearTraslado", "Error con creacion Usuario Entrega"); return "Error con datos de la persona que entrega."; } } else if (!usuarioEntregaP.getNombreUsuario().equals(usuarioEntrega) || !usuarioEntregaP.getUnidad().equals(usuarioEntregaUnidad) || !usuarioEntregaP.getCargoidCargo().getNombreCargo().equals(usuarioEntregaCargo)) { logger.exiting( this.getClass().getName(), "crearTraslado", "Error con verificacion Usuario Entrega"); return "Datos no coinciden con el rut ingresado"; } // Verificando usuario Recibe usuarioRecibeP = usuarioFacade.findByRUN(usuarioRecibeRut); if (usuarioRecibeP == null) { usuarioRecibeP = crearExterno1(usuarioRecibeCargo, usuarioRecibeUnidad, usuarioRecibe, usuarioRecibeRut); if (usuarioRecibeP == null) { logger.exiting( this.getClass().getName(), "crearTraslado", "Error con creacion usuario Recibe"); return "Error con datos de la persona que recibe."; } } else if (!usuarioRecibeP.getNombreUsuario().equals(usuarioRecibe) || !usuarioRecibeP.getUnidad().equals(usuarioRecibeUnidad) || !usuarioRecibeP.getCargoidCargo().getNombreCargo().equals(usuarioRecibeCargo)) { logger.exiting( this.getClass().getName(), "crearTraslado", "Error con verificacion usuario Recibe"); return "Datos no corresponden al rut"; } // verificando que usuario recibe sea distinto del usuario que entrega if (usuarioEntregaP.equals(usuarioRecibeP)) { // si se trata del mismo usuario logger.exiting( this.getClass().getName(), "crearTraslado", "Usuario Entrega y Recibe son el mismo"); return "El usuario que recibe la cadena de custodia debe ser distinto al usuario que la entrega."; } // Creando traslado Traslado nuevoTraslado = new Traslado(); nuevoTraslado.setFechaEntrega(fechaT); nuevoTraslado.setFormularioNUE(formulario); nuevoTraslado.setObservaciones(observaciones); nuevoTraslado.setTipoMotivoidMotivo(motivoP); nuevoTraslado.setUsuarioidUsuario(usuarioRecibeP); nuevoTraslado.setUsuarioidUsuario1(usuarioEntregaP); logger.info("se inicia insercion del nuevo traslado"); trasladoFacade.create(nuevoTraslado); logger.info("se finaliza insercion del nuevo traslado"); // verificamos si se se trata de un peritaje, lo cual finaliza la cc. if (nuevoTraslado.getTipoMotivoidMotivo().getTipoMotivo().equals("Peritaje")) { if (uSesion.getCargoidCargo().getNombreCargo().equals("Tecnico") || uSesion.getCargoidCargo().getNombreCargo().equals("Perito")) { logger.info("se realiza peritaje, por tanto se finaliza la cc."); formulario.setBloqueado(true); logger.info("se inicia la edición del formulario para bloquearlo"); formularioFacade.edit(formulario); logger.info("se finaliza la edición del formulario para bloquearlo"); } } logger.exiting(this.getClass().getName(), "crearTraslado", "Exito"); return "Exito"; }