120 lines
4.7 KiB
Plaintext
Executable File
120 lines
4.7 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');
|
|
}
|
|
}
|