maia_modificado/.svn/pristine/15/15fa65e442324b674c3dd4f33b6...

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;
}
}