package com.fp.armas.task; import java.util.HashMap; import java.util.List; import java.util.Map; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.parmas.soli.TarmBodega; import com.fp.persistence.parmas.soli.TarmDecomisoArma; import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion; import com.fp.simple.action.TaskAction; /** * Clase que se encarga de setear a nulos aquellas armas que recibieron asignacion de codigos * */ public class RechazarActa extends TaskAction { private static String SQL = "select o from TarmBodega o where o.pk in (select max(t.pk) from TarmBodega t where t.carma=:ccarma and t.ccentrocontrol=:ccentrocontrol) order by o.carma"; /* * (non-Javadoc) * * @see com.fp.simple.action.TaskAction#assignOwner(com.fp.dto.Request) */ @SuppressWarnings("unchecked") @Override public void assignOwner(Object pParam) throws Exception { HashMap m = (HashMap) pParam; Map mrequest = (Map) m.get("request"); Long numeroTransacion=Long.parseLong(mrequest.get("numerotransaccion").toString()); if (numeroTransacion == null) { return; } List lstDecomisoArma = PersistenceHelper.getEntityManager(). createQuery("select o from TarmDecomisoArma o where o.cdecomisoarmatransaccion=:decomiso",TarmDecomisoArma.class) .setParameter("decomiso", numeroTransacion).getResultList(); for(TarmDecomisoArma decomisoArma:lstDecomisoArma){ bodegaEliminar(numeroTransacion, decomisoArma.getCarma()); decomisoArma.setCdecomisoarmatransaccion(null); PersistenceHelper.saveOrUpdate(decomisoArma); } } /** * @param ccentrocontrol * @param decomisoArma */ private void bodegaEliminar(Long numeroTransacion, String carma) throws Exception { TarmDecomisoArmaTransaccion tarmDecomisoArmaTransaccion = TarmDecomisoArmaTransaccion .find(PersistenceHelper.getEntityManager(), numeroTransacion); String ccentrocontrol = tarmDecomisoArmaTransaccion.getCcentrocontrol(); TarmBodega tarmBodegas = (TarmBodega) PersistenceHelper .getEntityManager().createQuery(SQL) .setParameter("ccentrocontrol", ccentrocontrol) .setParameter("ccarma", carma) .getSingleResult(); PersistenceHelper.getEntityManager().remove(tarmBodegas); PersistenceHelper.getEntityManager().flush(); } }