maia_modificado/.svn/pristine/31/318ac529e424a606a0e67702ad1...

144 lines
5.9 KiB
Plaintext
Executable File

package com.fp.armas.rules.save.solicitud;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.fp.dto.rules.TransactionRule;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.soli.TarmBodega;
import com.fp.persistence.parmas.soli.TarmDecomiso;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion;
import com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
import com.fp.persistence.pgeneral.gene.TgeneParametersKey;
import com.fp.sessionbeans.helper.Sequence;
public class DecomisoArmaRecepcion extends TransactionRule {
/**
*
*/
private static final long serialVersionUID = -1840770563013500407L;
@SuppressWarnings("unchecked")
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
TarmDecomisoArmaTransaccion decomisoArmaTransaccion=(TarmDecomisoArmaTransaccion) pSaveRequest.getSaveBeanModifiedObject("DECOMISOARMATRANSACCION");
//para las transacciones de la bodega
List<Object> transaccionArmaBodegas=(List<Object>) pSaveRequest.getSaveBeanModifiedRecords("TRANSACCIONARMABODEGA");
List<Object> bodegas=(List<Object>) pSaveRequest.getSaveBeanModifiedRecords("BODEGA");
if(decomisoArmaTransaccion==null){
return pSaveRequest;
}
if(transaccionArmaBodegas==null){
transaccionArmaBodegas= new ArrayList<>();
}
if(bodegas==null){
bodegas=new ArrayList<>();
}
TgeneParametersKey pKey= new TgeneParametersKey();
pKey.setCode("CODIGO.RECEPCION");
pKey.setCompanycode(1);
TgeneParameters parametro =TgeneParameters.find(PersistenceHelper.getEntityManager(), pKey);
String prefijo=pSaveRequest.get("prefijo").toString();
Calendar cal=Calendar.getInstance();
java.sql.Date fechaRegistro=new java.sql.Date(cal.getTimeInMillis());
//GENERA EL CODIGO PARA NUMERO DE TRANSACCION
//Long codigoGenerado = Long.parseLong(getCodigo("DECARMTRANRECECCION"));
decomisoArmaTransaccion.setPk(Long.parseLong(getCodigo("CDECOMISOARMATRANSACCION")));
decomisoArmaTransaccion.setFtransaccion(fechaRegistro);
decomisoArmaTransaccion.setNumerotransaccion( getNumeroTransaccion(prefijo,decomisoArmaTransaccion.getPk().toString()));
//actualizacion del decomiso cabecera el centro control destino
TarmDecomiso decomiso=(TarmDecomiso)pSaveRequest.getSaveBeanModifiedObject("DECOMISO");
TarmDecomisoArma decomisoArma=(TarmDecomisoArma)pSaveRequest.getSaveBeanModifiedObject("DECOMARMTRANRECECCION");
List<Object> lDecomisoArma = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("DECOMARMTRANRECECCION");
if(lDecomisoArma.isEmpty()){
lDecomisoArma.add(decomisoArma);
}
for (Object object : lDecomisoArma) {
TarmDecomisoArma c=(TarmDecomisoArma)object;
if(c.getModifiedData().get("seleccion").equals(Boolean.TRUE)){
String centroControl=null;
//bodega de origen por envio
if(c.getCdecomisoarmatransaccion()!=null && c.getCdecomisoarmatransaccion()>0){
TarmDecomisoArmaTransaccion transa= TarmDecomisoArmaTransaccion.find(PersistenceHelper.getEntityManager(), c.getCdecomisoarmatransaccion());
centroControl=transa.getCcentrocontrol();
}else{
centroControl=c.getModifiedData().get("ccentrocontrol").toString();
}
c.setCdecarmtranrecepcion(decomisoArmaTransaccion.getPk());
//transaccion del arma
TarmTransaccionArmaBodega tarmTransaccionArmaBodega = new TarmTransaccionArmaBodega();
tarmTransaccionArmaBodega.setPk(Long.parseLong(getCodigo("CTRANARMBODEGA")));
tarmTransaccionArmaBodega.setCdecomisoarmatransaccion(decomisoArmaTransaccion.getPk());
tarmTransaccionArmaBodega.setCcentrocontrolorigen(centroControl);
tarmTransaccionArmaBodega.setCcentrocontroldestino(decomisoArmaTransaccion.getCcentrocontrol());
tarmTransaccionArmaBodega.setCarma(c.getCarma());
tarmTransaccionArmaBodega.setOperacioncode("OPERACIONDECOMISO");
tarmTransaccionArmaBodega.setOperacion(parametro.getTextvalue());
tarmTransaccionArmaBodega.setFecha(new Timestamp(new Date().getTime()));
transaccionArmaBodegas.add(tarmTransaccionArmaBodega);
//bodega actualiza o inserta
TarmBodega bodega=null;
List<TarmBodega> bodegal=PersistenceHelper.getEntityManager()
.createQuery("select o from TarmBodega o where o.carma=:carma")
.setParameter("carma", c.getCarma())
.getResultList();
if(bodegal!=null && bodegal.size()>0){
bodega=bodegal.get(0);
}
if(bodega==null){
bodega= new TarmBodega();
bodega.setPk(Long.parseLong(getCodigo("CBODEGA")));
}
bodega.setCarma(c.getCarma());
bodega.setCcentrocontrol(decomisoArmaTransaccion.getCcentrocontrol());
bodegas.add(bodega);
//actualiza la cab del decomiso centro conttrol destino
decomiso=TarmDecomiso.find(PersistenceHelper.getEntityManager(), c.getCdecomiso());
decomiso.setCcentrocontroldestino(decomisoArmaTransaccion.getCcentrocontrol());
}
}
pSaveRequest.getResponse().put("numerotransaccionrecep", decomisoArmaTransaccion.getNumerotransaccion());
return pSaveRequest;
}
@Override
public SaveRequest reverseProcess(SaveRequest arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
private String getCodigo(String codigoSec) throws Exception {
Sequence sequence = new Sequence();
Integer solcitud = Integer.valueOf(sequence.getNextValue(codigoSec).toString());
return solcitud.toString();
}
private String getNumeroTransaccion(String prefijo,String secuencia){
System.out.println("Ingresa al secuencial");
return prefijo+"-"+StringUtils.leftPad(secuencia, 9, '0');
}
}