maia_modificado/.svn/pristine/93/930a0d3940b21efe9f4c3bf3854...

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