public Familiar buscarRepresentanteActual(String cedulaJugador) { Session sesion = getSession(); Transaction tx = sesion.beginTransaction(); Criteria c1 = sesion .createCriteria(FamiliarJugador.class) .add(Restrictions.eq("representanteActual", true)) .add(Restrictions.eq("jugador.cedulaRif", cedulaJugador)); FamiliarJugador familiarJugador = (FamiliarJugador) c1.uniqueResult(); tx.commit(); return familiarJugador == null ? null : familiarJugador.getFamiliar(); }
public void actualizarRepresentante(Familiar familiar, String cedulaJugador, boolean sw) { Session sesion = getSession(); Transaction tx = sesion.beginTransaction(); Criteria c1 = sesion .createCriteria(FamiliarJugador.class) .add(Restrictions.eq("familiar", familiar)) .add(Restrictions.eq("jugador.cedulaRif", cedulaJugador)); FamiliarJugador familiarJugador = (FamiliarJugador) c1.uniqueResult(); familiarJugador.setRepresentanteActual(sw); sesion.update(familiarJugador); tx.commit(); }
/** * Busca el parentesco de un familiar con un jugador dado en caso de que exista * * @param familiar * @param cedulaJugador * @return parentesco o null si no existe relacion entre el familiar y el jugador */ public DatoBasico buscarParentesco(Familiar familiar, String cedulaJugador) { Session sesion = getSession(); Transaction tx = sesion.beginTransaction(); Criteria c = sesion .createCriteria(FamiliarJugador.class) .add(Restrictions.eq("familiar", familiar)) .createCriteria("jugador") .add(Restrictions.eq("cedulaRif", cedulaJugador)); FamiliarJugador dato = (FamiliarJugador) c.uniqueResult(); tx.commit(); return dato == null ? null : dato.getDatoBasico(); }
private int buscarDatoPorCodigo(List<FamiliarJugador> datos, FamiliarJugador datoBuscar) { int posicion = -1; int i = 0; for (FamiliarJugador datoJugador : datos) { if (datoJugador.getFamiliar().getCedulaRif().equals(datoBuscar.getFamiliar().getCedulaRif()) && datoJugador .getJugador() .getCedulaRif() .equals(datoBuscar.getJugador().getCedulaRif())) { posicion = i; break; } i++; } return posicion; }
/** * Guarda/actualiza las asociaciones de un jugador con una lista de familiares * * @param familiaresJugadores lista de familiares * @param jugador jugador */ public void guardar(List<FamiliarJugador> familiaresJugadores, Jugador jugador) { Session sesion = getSession(); Transaction tx = sesion.beginTransaction(); int p = 0; List<FamiliarJugador> datos = new ArrayList<FamiliarJugador>(); datos.addAll(familiaresJugadores); Criteria c = sesion .createCriteria(FamiliarJugador.class) .createCriteria("jugador") .add(Restrictions.eq("cedulaRif", jugador.getCedulaRif())); List<FamiliarJugador> datosAlmacenados = (List<FamiliarJugador>) c.list(); for (FamiliarJugador datoAlmacenado : datosAlmacenados) { p = buscarDatoPorCodigo(datos, datoAlmacenado); if (p == -1) { datoAlmacenado.setEstatus('E'); datoAlmacenado.setRepresentanteActual(false); } else { datoAlmacenado.setDatoBasico(datos.get(p).getDatoBasico()); datoAlmacenado.setRepresentanteActual(datos.get(p).isRepresentanteActual()); if (datoAlmacenado.getEstatus() == 'E') { datoAlmacenado.setEstatus('A'); } datos.remove(p); } sesion.update(datoAlmacenado); } /* * Procesamos los valores que hayan quedado en la lista , estos * restantes representan los nuevos datos que ha agregado el usuario */ for (FamiliarJugador datoNuevo : datos) { datoNuevo.setFechaIngreso(new Date()); datoNuevo.setEstatus('A'); sesion.save(datoNuevo); } tx.commit(); }