maia/.svn/pristine/7a/7a3e181d5f7b74af30dcf6ce761...

141 lines
5.5 KiB
Plaintext
Executable File

package com.fp.armas.rules.save.funcionalidad;
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.param.TarmTipoSancion;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmSancionDecomiso;
import com.fp.persistence.parmas.soli.TarmSancionRecomendacion;
import com.fp.sessionbeans.helper.Sequence;
/**
* @author Andres Cevallos
* Clase que ingresa un registro de evaluación psicológica y la registra
*/
/**
* @author Andres Cevallos
*
*/
public class Sancionar extends TransactionRule {
String numerosancion;
/**
* Se gestiona el estado del arma y el estado del documento habilitante
*/
private static final long serialVersionUID = 1L;
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
/*if (this.isNew(pSaveRequest)) {
return pSaveRequest;
}*/
// 1 SETEO DE LOS AMPOS PARA LA SANCION TarmSancionDecomiso *
List<Object> lsanciondecomiso =(List<Object>) pSaveRequest.getSaveBeanModifiedRecords("SANCIONDECOMISO");
// 2 RECOMENDACIONES *
List<Object> lrecomendacion = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("SANCIONRECOMENDACION");
//3 TarmArmas Nuevo registro con el nuevo estado
List<Object> larmas = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("ARMAS");
// 4 TarmDecomisoArma actualiza el estado
List<Object> larmasDecomisadas = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("TARMDECOMISOARMA");
if(lsanciondecomiso!=null && !lsanciondecomiso.isEmpty()){
TarmSancionDecomiso sanciondecomiso = (TarmSancionDecomiso) lsanciondecomiso.get(0);
//Genera el codigo compuesto de sancion
sanciondecomiso.getPk().setCsanciondecomiso(getCodigoSancion());
numerosancion=sanciondecomiso.getPk().getCsanciondecomiso();
sanciondecomiso.setNoresolucion("ENV"+"-"+StringUtils.leftPad(numerosancion, 9, '0'));
//recorremos las recomendaciones
if(lrecomendacion!=null && !lrecomendacion.isEmpty()){//lrecomendacion
for(Object recomendacion : lrecomendacion){
TarmSancionRecomendacion recomendacionObj= (TarmSancionRecomendacion) recomendacion;
recomendacionObj.setPk(getCodigoRecomendacion());
recomendacionObj.setCsanciondecomiso(sanciondecomiso.getPk().getCsanciondecomiso());
recomendacionObj.setCdecomiso(sanciondecomiso.getPk().getCdecomiso());
}
}
//Registro del arma sancionada TarmArma
TarmArmas armaSancionObj=(TarmArmas) sanciondecomiso.getModifiedData().get("arma");
armaSancionObj.setIsnew(true);
armaSancionObj.setFecharegistro(new java.sql.Date(new Date().getDate()));
armaSancionObj.setPk(getCodigoArmas());
//VALIDAMOS EL TIPO DE SANCION
TarmTipoSancion tipoSancionObj = TarmTipoSancion.find(PersistenceHelper.getEntityManager(), sanciondecomiso.getCtiposancion());
if(tipoSancionObj!=null){
System.out.println("sancion ...."+tipoSancionObj.getSancion());
if(tipoSancionObj.getSancion().equals("1")){
// CUANDO LA SANCION ESCOGIDA ES UNA CANCELACION DE PERMISO
armaSancionObj.setEstado("CANC");
armaSancionObj.setEstadocodigo("ESTADOARMA");
armaSancionObj.setFecharegistro(new java.sql.Date(new Date().getTime()));
}else if(tipoSancionObj.getSancion().equals("2")){
// CUANDO LA SANCION ESCOGIDA ES UNA SUSPENCION DE PERMISO
armaSancionObj.setEstado("SUSP");
armaSancionObj.setEstadocodigo("ESTADOARMA");
armaSancionObj.setFecharegistro(new java.sql.Date(new Date().getTime()));
}else if(tipoSancionObj.getSancion().equals("SANCIONSINDOC")){
//cuando no tiene documento para sancionar se le deja en estado incautado
armaSancionObj.setEstado("INC");
armaSancionObj.setEstadocodigo("ESTADOARMA");
armaSancionObj.setFecharegistro(new java.sql.Date(new Date().getTime()));
}else{
throw new Exception("SANCI\u00d3N NO ENCONTRADA : "+tipoSancionObj.getSancion());
}
}else{
throw new Exception("TIPO DE SANCI\u00d3N NO ENCONTRADA");
}
larmas.add(armaSancionObj);
//Registro del armaDECOMISO TarmDecomisoArma
TarmDecomisoArma tarmDecomisoArma = (TarmDecomisoArma) armaSancionObj.getModifiedData().get("decomisoArma");
tarmDecomisoArma.setEstado(armaSancionObj.getEstado());
larmasDecomisadas.add(tarmDecomisoArma);
}
return pSaveRequest;
}
@Override
public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
return pSaveRequest;
}
/**
* Obtiene el codigo de la evaluacion
* @return
* @throws Exception
*/
private String getCodigoRecomendacion() throws Exception {
Sequence sequence = new Sequence();
String codigo = sequence.getNextValue("CSANCIONRECOMENDACION").toString();
return codigo;
}
private String getCodigoSancion() throws Exception {
Sequence sequence = new Sequence();
String codigo = sequence.getNextValue("CSANCIONDECOMISO").toString();
return codigo;
}
private String getCodigoArmas() throws Exception {
Sequence sequence = new Sequence();
String codigoArma = sequence.getNextValue("CARMA").toString();
return codigoArma;
}
}