public AsignacionPresoController(Preso preso, boolean alta) {
ec = EntityController.getInstance();
this.alta = alta;
this.preso = preso;
CeldaInterna celdaInterna = null;
CeldaDomiciliaria celdaDomiciliaria = null;
//si no es un alta de preso, guardo en celdaanterior la celda actual
buscarButt.setVisible(true);
if (!alta) {
celdaanterior = (Celda) ec.createQuery("select a.celda from AsignacionPresoCelda a where a.preso = :preso and a.fechaDesde >= (select max(a2.fechaDesde) from AsignacionPresoCelda a2 where a2.preso = a.preso)", AsignacionPresoCelda.class).setParameter("preso", preso).getSingleResult();
if (celdaanterior.getTipo().equals(CarcelConstants.INTERNA)) {
celdaInterna = (CeldaInterna) ec.createQuery("select c from CeldaInterna c where c.celda = :celda", CeldaInterna.class).setParameter("celda", celdaanterior).getSingleResult();
} else {
celdaDomiciliaria = (CeldaDomiciliaria) ec.createQuery("select c from CeldaDomiciliaria c where c.celda = :celda", CeldaDomiciliaria.class).setParameter("celda", celdaanterior).getSingleResult();
}
String celdasData = "";
if (celdaInterna != null) {
celdasData = celdaInterna.getNombreCelda();
}
if (celdaDomiciliaria != null) {
celdasData = "Direccion: " + celdaDomiciliaria.getDrireccion();
}
celdaActualLabel.setText(celdaanterior.getTipo() + " - " + celdasData);
presoLabel.setText(preso.getApellido() + " " + preso.getNombre());
buscarButt.setVisible(false);
}