maia/.svn/pristine/c6/c6a2e21565e81f57cd8a232e4db...

120 lines
4.8 KiB
Plaintext
Executable File

package com.fp.armas.rules.save.armas;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.ArrayList;
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.parmas.fun.TarmRegistroArmas;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.parmas.soli.TarmDecomiso;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.sessionbeans.helper.Sequence;
public class ImporteArma extends TransactionRule {
private static final long serialVersionUID = -7465655492847129136L;
/**
* Armas Decomisadas
*/
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
//EntityManager entityManager = PersistenceHelper.getEntityManager();
//lista de armas
List<Object> listArmas = pSaveRequest.getSaveBeanModifiedRecords("ARMASIMPORTE");
//cabecera del arma
TarmRegistroArmas registroArmas = (TarmRegistroArmas) pSaveRequest.getSaveBeanModifiedObject("TREGISTROARMAS");
//detalle del decomiso
List<Object> tarmDecomisoArma = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("TARMDECOMISOARMA");//seteado en el decomiso
if(tarmDecomisoArma==null){
tarmDecomisoArma=new ArrayList<>();
}
// TarmArmas arma = (TarmArmas) pSaveRequest.get("ARMAACTUAL");
registroArmas.setPk(getCodigoRegistro());
registroArmas.setFcreacion(new Date(System.currentTimeMillis()));
//DECOMISO
//se inserta el DECOMISO cabecera
TarmDecomiso decomiso=(TarmDecomiso)pSaveRequest.getSaveBeanModifiedObject("IMPORTEDECOMISO");
decomiso.setPk(Long.parseLong(getCodigo("CDECOMISO")));
decomiso.setNumerotransaccion(getNumeroTransaccion(decomiso.getTipoproceso(), decomiso.getPk().toString()));
for (Object object : listArmas) {
TarmArmas armaNueva = (TarmArmas)object;
armaNueva.setPk(getCodigoArma());
armaNueva.setFecharegistro(new Date(new java.util.Date().getTime()));
armaNueva.setCregistro(registroArmas.getPk());
armaNueva.setCodigoarma(armaNueva.getPk());
//seteo del detalle del DECOMISOARMA y a que arma se le hace el decomiso
TarmDecomisoArma decomisoArma= new TarmDecomisoArma();
decomisoArma.setCarma( armaNueva.getPk());
//estadoarma es igual que el estado del arma
decomisoArma.setEstado(armaNueva.getEstado());
decomisoArma.setEstadocode(armaNueva.getEstadocodigo());
//motivo del decomiso
decomisoArma.setMotivodecomiso(armaNueva.getModifiedData().get("motivocatalogo").toString());//motivo
decomisoArma.setMotivodecomisocodigo(armaNueva.getModifiedData().get("motivocatalogocode").toString());//1
//observacion
decomisoArma.setObservacion(armaNueva.getModifiedData().get("observaciondecomiso").toString());
//cantidad
decomisoArma.setCantidad(new BigDecimal(armaNueva.getModifiedData().get("cantidad").toString()));//cantidad
//unidad del arma o material explosivo
decomisoArma.setUnidadmedida(armaNueva.getUnidadmedidacantidad());//unidad de medida
decomisoArma.setUnidadmedidacode(armaNueva.getUnidadmedidacantidadcodigo());//3
//fecha del decomiso arma la actual
java.util.Date fechaRecepcion=(java.util.Date)armaNueva.getModifiedData().get("fechaRecepcion");
decomisoArma.setFdecomiso(new Timestamp(fechaRecepcion.getTime()));
//codigo del decomiso
decomisoArma.setPk(getCodigo("CDECOMISOARMA"));
//codigo del decomiso
decomisoArma.setCdecomiso(decomiso.getPk());
//en bodega
decomisoArma.setEnbodega("Y");
tarmDecomisoArma.add(decomisoArma);
}
return pSaveRequest;
}
@Override
public SaveRequest reverseProcess(SaveRequest pRequest) throws Exception {
return pRequest;
}
private Long getCodigoRegistro() throws Exception{
Sequence sequence = new Sequence();
Long cregistro = sequence.getNextValue("CREGISTRO").longValue();
return cregistro;
}
private String getCodigoArma() throws Exception{
Sequence sequence = new Sequence();
String carma = sequence.getNextValue("CARMA").toString();
return carma;
}
/**
* Metodo que devuelve la secuencia del codigo
* @param codigoSec
* @return String
* @throws Exception
*/
private String getCodigo(String codigoSec) throws Exception {
Sequence sequence = new Sequence();
String solcitud = sequence.getNextValue(codigoSec).toString();
return solcitud;
}
private String getNumeroTransaccion(String prefijo,String secuencia){
System.out.println("Ingresa al secuencial armas");
return prefijo+"-"+StringUtils.leftPad(secuencia, 9, '0');
}
}