maia/.svn/pristine/ef/ef87ea5934cefc83a1eca5df697...

143 lines
6.6 KiB
Plaintext
Executable File

package com.fp.armas.task;
import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.parmas.soli.TarmBodega;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDetRepDestruirArmas;
import com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega;
import com.fp.sessionbeans.helper.Sequence;
import com.fp.simple.action.TaskAction;
/**
* Clase que se encarga de fijar el codigo de empleado asociado a la solicitud en el request campo userId, para asignar
* una tarea.
*
* @version 2.1
*/
public class ActualizarInventBajaDestrucc extends TaskAction {
/*
* (non-Javadoc)
*
* @see com.fp.simple.action.TaskAction#assignOwner(com.fp.dto.Request)
*/
@SuppressWarnings("unchecked")
@Override
public void assignOwner(Object pParam) throws Exception {
EntityManager em=PersistenceHelper.getEntityManager();
System.out.println("Rutina que actualiza el inventario despues de que se ha autorizado destruir armas");
HashMap<String, Object> m = (HashMap<String, Object>) pParam;
Map<String, Object> mrequest = (Map<String, Object>) m.get("request");
if (mrequest.get("creporte") == null) {
return;
}
Integer creporte=Integer.parseInt(mrequest.get("creporte").toString());
//lista de las armas decomisadas que se encuentran en el reporte
List<TarmDetRepDestruirArmas> tarmDetRepDestruirArmasList= em.
createQuery("select t from TarmDetRepDestruirArmas t where t.creporte=:creporte")
.setParameter("creporte", creporte)
.getResultList();
//Se recorre la lista de las armas del reporte de destruccion
for(TarmDetRepDestruirArmas detArmaObj:tarmDetRepDestruirArmasList){
//Actualizo el estado del registro tarmDecomisoArma
TarmDecomisoArma decomisoArmaObj = (TarmDecomisoArma) em.createQuery("select t from TarmDecomisoArma t where t.pk=:pk")
.setParameter("pk", detArmaObj.getCdecomisoarma())
.getResultList().get(0);
decomisoArmaObj.setEstado("DEST");
em.merge(decomisoArmaObj);
//Actualizo el estado del registro tarmArma
TarmArmas armaObjAnterior = (TarmArmas) em.createQuery("select t from TarmArmas t where t.pk=:pk")
.setParameter("pk", decomisoArmaObj.getCarma())
.getResultList().get(0);
TarmArmas armaObj = new TarmArmas();
armaObj.setCantidad(armaObjAnterior.getCantidad());
armaObj.setCantoncode(armaObjAnterior.getCantoncode());
armaObj.setCitycode(armaObjAnterior.getCitycode());
armaObj.setCodigoarma(armaObjAnterior.getCodigoarma());
armaObj.setColor(armaObjAnterior.getColor());
armaObj.setColorcodigo(armaObjAnterior.getColorcodigo());
armaObj.setCountrycode(armaObjAnterior.getCountrycode());
armaObj.setCpaisorigen(armaObjAnterior.getCpaisorigen());
armaObj.setCregistro(armaObjAnterior.getCregistro());
armaObj.setCtipoarmaexplosivo(armaObjAnterior.getCtipoarmaexplosivo());
armaObj.setDireccion(armaObjAnterior.getDireccion());
armaObj.setEstado("DEST");
armaObj.setEstadocodigo("ESTADOARMA");
// Timestamp timeStamp = new Timestamp(System.currentTimeMillis());
// armaObj.setFecharegistro(timeStamp);
armaObj.setFemisionpermiso(armaObjAnterior.getFemisionpermiso());
armaObj.setLote(armaObjAnterior.getLote());
armaObj.setMarca(armaObjAnterior.getMarca());
armaObj.setMarcacodigo(armaObjAnterior.getMarcacodigo());
armaObj.setModelo(armaObjAnterior.getModelo());
armaObj.setNemonicoarma(armaObjAnterior.getNemonicoarma());
armaObj.setParroquiacode(armaObjAnterior.getParroquiacode());
armaObj.setPeso(armaObjAnterior.getPeso());
armaObj.setPesoAux(armaObjAnterior.getPesoAux());
armaObj.setProvincecode(armaObjAnterior.getProvincecode());
armaObj.setSeriecanon(armaObjAnterior.getSeriecanon());
armaObj.setTipofabricacion(armaObjAnterior.getTipofabricacion());
armaObj.setTipofabricacioncodigo(armaObjAnterior.getTipofabricacioncodigo());
armaObj.setUnidadmedidacantidad(armaObjAnterior.getUnidadmedidacantidad());
armaObj.setUnidadmedidacantidadcodigo(armaObjAnterior.getUnidadmedidacantidadcodigo());
armaObj.setValorAux(armaObjAnterior.getValorAux());
armaObj.setPk(getCodigoArma().toString());
em.persist(armaObj);
// Actualizar en TARMBODEGA el centro de control para el arma destruida
TarmBodega bodegaArmaObj = (TarmBodega) em.createQuery("select t from TarmBodega t where t.carma=:carma")
.setParameter("carma", decomisoArmaObj.getCarma())
.getResultList().get(0);
if(bodegaArmaObj!=null){
bodegaArmaObj.setCcentrocontrol(null);
em.merge(decomisoArmaObj);
}else{
TarmBodega bodegaObj = new TarmBodega();
bodegaObj.setPk(getCodigoBodega());
bodegaObj.setCarma(decomisoArmaObj.getCarma());
em.persist(bodegaObj);
}
// Inserta registro en transaccion Arma Bodega
TarmTransaccionArmaBodega tranArmaBodegaObj = new TarmTransaccionArmaBodega();
tranArmaBodegaObj.setPk(getCTransArmaBodega());
tranArmaBodegaObj.setCarma(decomisoArmaObj.getCarma());
tranArmaBodegaObj.setOperacion("DESTRUCCION");
tranArmaBodegaObj.setOperacioncode("OPERACIONDECOMISO");
tranArmaBodegaObj.setCcentrocontrolorigen("DPTOARMASPICH");
tranArmaBodegaObj.setFecha(new Timestamp(new Date().getTime()));
em.persist(tranArmaBodegaObj);
}
em.flush();
}
private String getCodigoArma() throws Exception{
Sequence sequence = new Sequence();
String carma = sequence.getNextValue("CARMA").toString();
return carma;
}
private Long getCodigoBodega() throws Exception{
Sequence sequence = new Sequence();
Integer cbodega = sequence.getNextValue("CBODEGA").intValue();
return new Long(cbodega);
}
private Long getCTransArmaBodega() throws Exception{
Sequence sequence = new Sequence();
Integer cTransArmaBodega = sequence.getNextValue("CTRANARMBODEGA").intValue();
return new Long(cTransArmaBodega);
}
}