141 lines
5.5 KiB
Plaintext
Executable File
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
} |