108 lines
3.7 KiB
Plaintext
Executable File
108 lines
3.7 KiB
Plaintext
Executable File
package com.fp.armas.rules.save.solicitud;
|
|
|
|
import java.util.Calendar;
|
|
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.parmas.soli.TarmBodega;
|
|
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
|
|
import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion;
|
|
import com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega;
|
|
import com.fp.sessionbeans.helper.Sequence;
|
|
|
|
/**
|
|
* Transaccion rule para decomiso de arma
|
|
* @author Carlos Guzman
|
|
*
|
|
*/
|
|
public class DecomisoArmaTransaccion extends TransactionRule {
|
|
|
|
/**
|
|
*
|
|
*/
|
|
private static final long serialVersionUID = -1840770563013500407L;
|
|
|
|
@Override
|
|
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
|
|
|
|
TarmDecomisoArmaTransaccion decomisoArmaTransaccion=(TarmDecomisoArmaTransaccion) pSaveRequest.getSaveBeanModifiedObject("DECOMISOARMATRANSACCION");
|
|
if(decomisoArmaTransaccion==null){
|
|
return pSaveRequest;
|
|
}
|
|
Calendar cal=Calendar.getInstance();
|
|
java.sql.Date fechaRegistro=new java.sql.Date(cal.getTimeInMillis());
|
|
Long codigoGenerado = Long.parseLong(getCodigo("CDECOMISOARMATRANSACCION"));
|
|
|
|
decomisoArmaTransaccion.setPk(codigoGenerado);
|
|
decomisoArmaTransaccion.setFtransaccion(fechaRegistro);
|
|
decomisoArmaTransaccion.setNumerotransaccion( getNumeroTransaccion("ENV",codigoGenerado.toString()));
|
|
TarmDecomisoArma decomisoArma=(TarmDecomisoArma)pSaveRequest.getSaveBeanModifiedObject("RPRTEDESTRUCCIONDEARMAS");
|
|
List<Object> lDecomisoArma = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("RPRTEDESTRUCCIONDEARMAS");
|
|
List<Object> lArmaBodega=(List<Object>)pSaveRequest.getSaveBeanModifiedRecords("TRANSACCIONARMABODEGA");
|
|
List<Object> lBodega=(List<Object>)pSaveRequest.getSaveBeanModifiedRecords("BODEGA");
|
|
|
|
if(lDecomisoArma.isEmpty()){
|
|
lDecomisoArma.add(decomisoArma);
|
|
}
|
|
|
|
for (Object object : lDecomisoArma) {
|
|
TarmDecomisoArma c=(TarmDecomisoArma)object;
|
|
|
|
if(c.getModifiedData().get("seleccion").equals(Boolean.TRUE)){
|
|
c.setCdecomisoarmatransaccion(codigoGenerado);
|
|
}
|
|
}
|
|
|
|
for (Object object : lArmaBodega) {
|
|
TarmTransaccionArmaBodega c=(TarmTransaccionArmaBodega)object;
|
|
c.setPk(Long.parseLong(getCodigo("CTRANARMBODEGA")));
|
|
c.setCdecomisoarmatransaccion(codigoGenerado);
|
|
c.setOperacion("ENVIO");
|
|
c.setOperacioncode("OPERACIONDECOMISO");
|
|
c.setFecha(new java.sql.Timestamp((new Date()).getTime()));
|
|
}
|
|
|
|
for (Object object : lBodega) {
|
|
TarmBodega c=(TarmBodega)object;
|
|
c.setPk(Long.parseLong(getCodigo("CBODEGA")));
|
|
}
|
|
|
|
return pSaveRequest;
|
|
}
|
|
|
|
|
|
@Override
|
|
public SaveRequest reverseProcess(SaveRequest arg0) throws Exception {
|
|
// TODO Auto-generated method stub
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Metodo para obtener el numero de secuencia de la base de datos
|
|
* @param codigoSec nombre del campo de la secuencia
|
|
* @return la secuencia generada
|
|
* @throws Exception
|
|
*/
|
|
private String getCodigo(String codigoSec) throws Exception {
|
|
Sequence sequence = new Sequence();
|
|
Integer codigo = Integer.valueOf(sequence.getNextValue(codigoSec).toString());
|
|
return codigo.toString();
|
|
}
|
|
|
|
/**
|
|
* Metodo que arma el numero de la transaccion
|
|
* @param prefijo prefijo a usarse pata el numero a generarse
|
|
* @param secuencia numero de secuencia
|
|
* @return el numero de documento generado
|
|
*/
|
|
private String getNumeroTransaccion(String prefijo,String secuencia){
|
|
return prefijo+"-"+StringUtils.leftPad(secuencia, 9, '0');
|
|
}
|
|
|
|
|
|
}
|