109 lines
3.9 KiB
Plaintext
Executable File
109 lines
3.9 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.parmas.inte.TarmColadeImpresion;
|
|
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante;
|
|
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitanteDetall;
|
|
import com.fp.sessionbeans.helper.Sequence;
|
|
|
|
/**
|
|
* Clase transaction rule para registrar el documento habilitante
|
|
* @author Carlos Guzman
|
|
*
|
|
*/
|
|
public class DocumentoHabilitanteTransaccion extends TransactionRule {
|
|
|
|
/**
|
|
*
|
|
*/
|
|
private static final long serialVersionUID = -1840770563013500407L;
|
|
|
|
@Override
|
|
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
|
|
|
|
TarmDocumentoHabilitante documentoHabilitante=(TarmDocumentoHabilitante) pSaveRequest.getSaveBeanModifiedObject("DOCUMENTOHABILITANTE");
|
|
if(documentoHabilitante==null){
|
|
return pSaveRequest;
|
|
}
|
|
|
|
TarmColadeImpresion colaImpresion=(TarmColadeImpresion)pSaveRequest.getSaveBeanModifiedObject("BODEGA");
|
|
|
|
|
|
Long codigoGenerado = Long.parseLong(getCodigo("TARMDOCUMENTOHABILITANTE"));
|
|
|
|
documentoHabilitante.setPk(codigoGenerado);
|
|
documentoHabilitante.setNumerodocumento(getNumeroTransaccion("DOC",codigoGenerado.toString()));
|
|
|
|
if(colaImpresion!=null){
|
|
colaImpresion.setPk(getCodigo("TARMCOLADEIMPRESION"));
|
|
colaImpresion.setCdocumento(codigoGenerado);
|
|
}
|
|
|
|
TarmDocumentoHabilitanteDetall documentohabilitanteDetall=(TarmDocumentoHabilitanteDetall)pSaveRequest.getSaveBeanModifiedObject("DOCUMENTOHABILITANTEDETAIL");
|
|
List<Object> lDocumentohabilitanteDetall = null;
|
|
if(documentohabilitanteDetall==null){
|
|
lDocumentohabilitanteDetall = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("DOCUMENTOHABILITANTEDETAIL");
|
|
}
|
|
if(documentohabilitanteDetall!=null || (documentohabilitanteDetall==null && lDocumentohabilitanteDetall!=null)){
|
|
//lDocumentohabilitanteDetall = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("DOCUMENTOHABILITANTEDETAIL");
|
|
if(documentohabilitanteDetall!=null && (lDocumentohabilitanteDetall == null ||lDocumentohabilitanteDetall.size()==0)){
|
|
documentohabilitanteDetall.setPk(getCodigo("CODIGODETALLE"));
|
|
documentohabilitanteDetall.setCdocumento(codigoGenerado);
|
|
}
|
|
else{
|
|
if(lDocumentohabilitanteDetall!=null && lDocumentohabilitanteDetall.isEmpty() && documentohabilitanteDetall!=null){
|
|
lDocumentohabilitanteDetall.add(documentohabilitanteDetall);
|
|
}
|
|
if(lDocumentohabilitanteDetall!=null && !lDocumentohabilitanteDetall.isEmpty()){
|
|
|
|
for (Object object : lDocumentohabilitanteDetall) {
|
|
TarmDocumentoHabilitanteDetall c=(TarmDocumentoHabilitanteDetall)object;
|
|
c.setPk(getCodigo("CODIGODETALLE"));
|
|
c.setCdocumento(codigoGenerado);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
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 documento = Integer.valueOf(sequence.getNextValue(codigoSec).toString());
|
|
return documento.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');
|
|
}
|
|
|
|
|
|
}
|