151 lines
5.9 KiB
Plaintext
Executable File
151 lines
5.9 KiB
Plaintext
Executable File
package com.fp.armas.rules.save.solicitud;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.sql.Timestamp;
|
|
import java.util.List;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import com.fp.dto.data.SaveData;
|
|
import com.fp.dto.rules.TransactionRule;
|
|
import com.fp.dto.save.SaveRequest;
|
|
import com.fp.persistence.parmas.soli.TarmArmas;
|
|
import com.fp.persistence.parmas.soli.TarmCustodiaTemporal;
|
|
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetailKey;
|
|
import com.fp.sessionbeans.helper.Sequence;
|
|
|
|
/**
|
|
* Clase que se encarga de completar información para realizar una custodia temporal.
|
|
*
|
|
* @author C.P.
|
|
* @version 2.1
|
|
*/
|
|
public class CustodiaTemporal 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> armaList = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("ARMAS");
|
|
List<Object> custodiaTemporalList = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("CUSTODIATEM");
|
|
//tabla del detalle de la custodia
|
|
List<Object> tarmDecomisoArma = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("TARMDECOMISOARMA");
|
|
|
|
//registramos el arma y si ya existe le cambiamos de estado
|
|
for(Object obj:armaList){
|
|
TarmArmas arma=(TarmArmas)obj;
|
|
//creamos el arma
|
|
arma.setPk(getCodigo("CARMA"));
|
|
if(tarmDecomisoArma!=null && tarmDecomisoArma.size()>0){
|
|
TarmDecomisoArma decomisoArma= (TarmDecomisoArma)tarmDecomisoArma.get(0);
|
|
decomisoArma.setCarma( arma.getPk());
|
|
}else{
|
|
//seteo del detalle del decomiso y a que arma se le hace el decomiso
|
|
TarmDecomisoArma decomisoArma= new TarmDecomisoArma();
|
|
decomisoArma.setCarma( arma.getPk());
|
|
decomisoArma.setObservacion(arma.getModifiedData().get("observacion").toString());
|
|
//unidad de medida
|
|
decomisoArma.setUnidadmedida(arma.getUnidadmedidacantidad());//unidad de medida
|
|
decomisoArma.setUnidadmedidacode(arma.getUnidadmedidacantidadcodigo());//3
|
|
//estado igual al del arma
|
|
decomisoArma.setEstado(arma.getEstado());
|
|
decomisoArma.setEstadocode(arma.getEstadocodigo());
|
|
//cantidad
|
|
if(arma.getCantidad()!=null){
|
|
decomisoArma.setCantidad(new BigDecimal(arma.getCantidad()));
|
|
}
|
|
//estados anteriores
|
|
if(arma.getModifiedData().get("estadoanterior")!=null){
|
|
decomisoArma.setEstadoanterior(arma.getModifiedData().get("estadoanterior").toString());
|
|
}
|
|
decomisoArma.setFdecomiso((new Timestamp(new java.util.Date().getTime())));
|
|
//codigo del arma
|
|
decomisoArma.setCarma(arma.getPk());
|
|
tarmDecomisoArma.add(decomisoArma);
|
|
}
|
|
}
|
|
TarmCustodiaTemporal custodiaTem=null;
|
|
if(custodiaTemporalList!=null && custodiaTemporalList.size()>0){
|
|
//seteo de los codigos de la custodia temporal
|
|
for(Object obj:custodiaTemporalList){
|
|
custodiaTem=(TarmCustodiaTemporal)obj;
|
|
custodiaTem.setPk(getCodigo("CCUSTEMP"));
|
|
custodiaTem.setNotransaccion(getNumeroTransaccion(custodiaTem.getTiporegistro(), custodiaTem.getPk().toString()));
|
|
pSaveRequest.getResponse().put("numerotransaccion",custodiaTem.getNotransaccion());
|
|
}
|
|
}
|
|
|
|
//se inserta el detalle del decomiso
|
|
for(Object obj:tarmDecomisoArma){
|
|
TarmDecomisoArma decomisoArma=(TarmDecomisoArma)obj;
|
|
if(custodiaTem!=null){
|
|
decomisoArma.setCcustemp(custodiaTem.getPk());//codigo del arma
|
|
}
|
|
decomisoArma.setPk(getCodigo("CDECOMISOARMA"));
|
|
|
|
}
|
|
return pSaveRequest;
|
|
}
|
|
|
|
/**
|
|
* Metodo que devuelve la secuencia que le pertenece a una nueva persona.
|
|
*
|
|
* @return Codigo de la nueva persona.
|
|
* @throws Exception
|
|
*/
|
|
protected Integer getPersonCode() throws Exception {
|
|
Sequence sequence = new Sequence();
|
|
Integer personcode = Integer.valueOf(sequence.getNextValue("PERSONCODE").toString());
|
|
SaveData.getMap().put("PERSONCODE", personcode.toString());
|
|
return personcode;
|
|
}
|
|
|
|
/**
|
|
* Completa el codigo de la persona en la tabla TcustPersonDetail
|
|
*
|
|
* @param tcustPersonDetail Objeto que posee el registro a guardar en la tabla TcustPersonDetail.
|
|
* @param personcode Codigo de la nueva persona a ser guardada.
|
|
* @throws Exception
|
|
*/
|
|
protected void completePersonDetail(TcustPersonDetail tcustPersonDetail, Integer personcode) throws Exception {
|
|
TcustPersonDetailKey tcustPersonDetailKey = new TcustPersonDetailKey();
|
|
tcustPersonDetailKey.setPersoncode(personcode);
|
|
tcustPersonDetail.setPk(tcustPersonDetailKey);
|
|
}
|
|
/*
|
|
* (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 del codigo
|
|
* @param codigoSec
|
|
* @return String
|
|
* @throws Exception
|
|
*/
|
|
private String getCodigo(String codigoSec) throws Exception {
|
|
Sequence sequence = new Sequence();
|
|
Integer solcitud = Integer.valueOf(sequence.getNextValue(codigoSec).toString());
|
|
return solcitud.toString();
|
|
}
|
|
/**
|
|
* Genera el numero de transaccion para la custodia
|
|
*/
|
|
private String getNumeroTransaccion(String prefijo,String secuencia){
|
|
return prefijo+"-"+StringUtils.leftPad(secuencia, 6, '0');
|
|
}
|
|
|
|
}
|