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 inspeccion = (List)pSaveRequest.getSaveBeanModifiedRecords("INSPECCION"); if(inspeccion!=null){ List archivoList = (List)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'); } }