maia/.svn/pristine/5a/5aac95280168bb66100eb22864b...

84 lines
3.0 KiB
Plaintext
Executable File

package com.fp.armas.rules.save.solicitud;
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.soli.TarmInspeccion;
import com.fp.persistence.parmas.soli.TarmInspeccionArchivo;
import com.fp.sessionbeans.helper.Sequence;
/**
* Clase que se encarga de completar información de una solicitud de control de armas.
*
* @author C.P.
* @version 2.1
*/
public class RegistroInspeccion extends TransactionRule {
private static final long serialVersionUID = 1L;
/*
* (non-Javadoc)
*
* @see com.fp.dto.rules.TransactionRule#normalProcess(com.fp.dto.save.SaveRequest)
*/
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
List<Object> inspeccion = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("INSPECCION");
if(inspeccion!=null){
List<Object> archivoList = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("INSPECCIONARCHIVO");
TarmInspeccion tarmInspeccion = (TarmInspeccion)inspeccion.get(0);
tarmInspeccion.setPk(Long.valueOf(getCodigoSolicitud()));
tarmInspeccion.setNumordentrabajo(getNumeroTransaccion("TRA",tarmInspeccion.getPk().toString()));
PersistenceHelper.getEntityManager().persist(tarmInspeccion);
if(archivoList!=null && archivoList.size()>0){
for(Object obj:archivoList){
TarmInspeccionArchivo archivo=(TarmInspeccionArchivo)obj;
archivo.setCinspeccion(tarmInspeccion.getPk());
PersistenceHelper.getEntityManager().persist(archivo);
}
}
PersistenceHelper.getEntityManager().flush();
pSaveRequest.getResponse().put("numerotrabajo", tarmInspeccion.getNumordentrabajo());
}
return pSaveRequest;
}
/*
* (non-Javadoc)
*
* @see com.fp.dto.rules.TransactionRule#reverseProcess(com.fp.dto.save.SaveRequest)
*/
@Override
public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
return pSaveRequest;
}
/**
* Metodo que devuelve la secuencia de una solicitud de viaticos.
*
* @return Codigo de la nueva solicitud de viaticos.
* @throws Exception
*/
private String getCodigoSolicitud() throws Exception {
Sequence sequence = new Sequence();
Integer solcitud = Integer.valueOf(sequence.getNextValue("CINSPECCION").toString());
return solcitud.toString();
}
/**
* Metodo para generar el numero de trabajo
* @param prefijo
* @param secuencia
* @return String
*/
private String getNumeroTransaccion(String prefijo,String secuencia){
return prefijo+"-"+StringUtils.leftPad(secuencia, 9, '0');
}
}