82 lines
3.2 KiB
Plaintext
Executable File
82 lines
3.2 KiB
Plaintext
Executable File
package com.fp.armas.rules.save.armas;
|
|
|
|
import java.sql.Date;
|
|
|
|
import javax.persistence.EntityManager;
|
|
|
|
import com.fp.dto.rules.TransactionRule;
|
|
import com.fp.dto.save.SaveRequest;
|
|
import com.fp.persistence.commondb.PersistenceHelper;
|
|
import com.fp.persistence.parmas.fun.TarmRegistroArmas;
|
|
import com.fp.persistence.parmas.soli.TarmArmas;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
|
|
import com.fp.sessionbeans.helper.Sequence;
|
|
|
|
public class CambiarUsuarioArma extends TransactionRule {
|
|
|
|
private static final long serialVersionUID = -7465655492847129136L;
|
|
|
|
/**
|
|
* Cambio el estado del arma y genero un nuevo registro para una nueva persona
|
|
*/
|
|
@Override
|
|
public SaveRequest normalProcess(SaveRequest pRequest) throws Exception {
|
|
EntityManager entityManager = PersistenceHelper.getEntityManager();
|
|
TarmArmas arma = (TarmArmas) pRequest.get("ARMAACTUAL");
|
|
TcustPersonDetail persona = (TcustPersonDetail) pRequest.get("NUEVAPERSONA");
|
|
TarmRegistroArmas registroActual = TarmRegistroArmas.find(entityManager, arma.getCregistro());
|
|
//arma antigua genera un registro a cambio de propietario
|
|
arma.setPk(getCodigoArma());
|
|
String estadoArmaAnterior=arma.getEstado();
|
|
arma.setEstado("CDP");//CAMBIO DE PROPIETARIO
|
|
arma.setEstadocodigo("ESTADOARMA");
|
|
arma.setFecharegistro(new Date(new java.util.Date().getTime()));
|
|
entityManager.persist(arma);
|
|
//registro de la nueva cabecera del propietario
|
|
TarmRegistroArmas registroArmas = new TarmRegistroArmas();
|
|
registroArmas.setPk(getCodigoRegistro());
|
|
registroArmas.setFcreacion(new Date(System.currentTimeMillis()));
|
|
registroArmas.setAeropuertopuerto(registroActual.getAeropuertopuerto());
|
|
registroArmas.setDui(registroActual.getDui());
|
|
registroArmas.setFechasolicitud(registroActual.getFechasolicitud());
|
|
registroArmas.setPersoncode(persona.getPk().getPersoncode());
|
|
registroArmas.setFabricante(registroActual.getFabricante());
|
|
registroArmas.setPaisorigen(registroActual.getPaisorigen());
|
|
registroArmas.setTiporegistro("CDP");//CAMBIO DE PROPIETARIO
|
|
registroArmas.setTiporegistrocodigo(registroActual.getTiporegistrocodigo());
|
|
registroArmas.setTramite(registroActual.getTramite());
|
|
registroArmas.setSolicitudnum(registroActual.getSolicitudnum());
|
|
registroArmas.setTotalfob(registroActual.getTotalfob());
|
|
entityManager.persist(registroArmas);
|
|
//regisro de la nueva arma con el nuevo propietario
|
|
TarmArmas armaNueva = (TarmArmas) arma.cloneMe();
|
|
armaNueva.setPk(getCodigoArma());
|
|
entityManager.detach(armaNueva);
|
|
armaNueva.setEstado(estadoArmaAnterior);//se mantiene el mismo estado del arma
|
|
armaNueva.setFecharegistro(new Date(new java.util.Date().getTime()));
|
|
armaNueva.setCregistro(registroArmas.getPk());
|
|
//armaNueva.setCodigoarma(armaNueva.getPk());
|
|
entityManager.persist(armaNueva);
|
|
|
|
return pRequest;
|
|
}
|
|
|
|
@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;
|
|
}
|
|
|
|
}
|