package net.conselldemallorca.helium.jbpm3.handlers;
import java.util.Collections;
import javax.xml.datatype.XMLGregorianCalendar;
import net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge;
import net.conselldemallorca.helium.v3.core.api.dto.DetalleAvisoDto;
import net.conselldemallorca.helium.v3.core.api.dto.RespostaJustificantDetallRecepcioDto;
import net.conselldemallorca.helium.v3.core.api.dto.RespostaJustificantRecepcioDto;
import net.conselldemallorca.helium.v3.core.api.dto.TipoAvisoDto;
import net.conselldemallorca.helium.v3.core.api.dto.TipoConfirmacionAvisoDto;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmException;
import org.jbpm.graph.def.GraphElement;
import org.jbpm.graph.exe.ExecutionContext;
/**
* Handler per a interactuar amb el registre de sortida.
*
* @author Limit Tecnologies <limit@limit.es>
*/
@SuppressWarnings({"serial", "unused"})
public class ZonaperEventNotificacioJustificantHandler extends BasicActionHandler {
private String numeroRegistre;
private String varNumeroRegistre;
private String detall;
private String varDetall;
private String varData;
private String varTipoEstadoNotificacion;
private String varFechaAcuseRecibo;
private String varReferenciaRDSJustificanteClave;
private String varReferenciaRDSJustificanteCodigo;
private String varTipo;
private String varDestinatario;
private String varEnviado;
private String varFechaEnvio;
private String varConfirmarEnvio;
private String varConfirmadoEnvio;
public void execute(ExecutionContext executionContext) throws Exception {
boolean detalle = false;
if (varDetall != null || !varDetall.isEmpty()) {
String val = ((String)getValorOVariable(
executionContext,
detall,
varDetall));
detalle = (val != null && "true".equals(val));
}
String num = ((String)getValorOVariable(
executionContext,
numeroRegistre,
varNumeroRegistre));
if (detalle) {
RespostaJustificantDetallRecepcioDto resposta = obtenirJustificantDetallRecepcio(num);
logger.debug("RespostaJustificantDetallRecepcioDto: " + resposta);
if (varData != null)
executionContext.setVariable(
varData,
resposta.getData());
if (varTipoEstadoNotificacion != null)
executionContext.setVariable(
varTipoEstadoNotificacion,
resposta.getEstado().name());
if (varFechaAcuseRecibo != null)
executionContext.setVariable(
varFechaAcuseRecibo,
resposta.getFechaAcuseRecibo());
if (varReferenciaRDSJustificanteClave != null)
executionContext.setVariable(
varReferenciaRDSJustificanteClave,
resposta.getFicheroAcuseRecibo().getClave());
if (varReferenciaRDSJustificanteCodigo != null)
executionContext.setVariable(
varReferenciaRDSJustificanteCodigo,
resposta.getFicheroAcuseRecibo().getCodigo());
// Ăšltima alerta
if (!resposta.getAvisos().getAviso().isEmpty()) {
Collections.sort(resposta.getAvisos().getAviso());
DetalleAvisoDto detalleAviso = resposta.getAvisos().getAviso().get(0);
if (varTipo != null)
executionContext.setVariable(
varTipo,
detalleAviso.getTipo().name());
if (varDestinatario != null)
executionContext.setVariable(
varDestinatario,
detalleAviso.getDestinatario());
if (varEnviado != null)
executionContext.setVariable(
varEnviado,
detalleAviso.isEnviado());
if (varConfirmarEnvio != null)
executionContext.setVariable(
varConfirmarEnvio,
detalleAviso.isConfirmarEnvio());
if (varConfirmadoEnvio != null)
executionContext.setVariable(
varConfirmadoEnvio,
detalleAviso.getConfirmadoEnvio());
if (varFechaEnvio != null)
executionContext.setVariable(
varFechaEnvio,
detalleAviso.getFechaEnvio());
}
} else {
RespostaJustificantRecepcioDto resposta = obtenirJustificantRecepcio(num);
logger.debug("RespostaJustificantRecepcioDto: " + resposta);
if (varData != null)
executionContext.setVariable(
varData,
resposta.getData());
}
}
public void setNumeroRegistre(String numeroRegistre) {
this.numeroRegistre = numeroRegistre;
}
public void setDetall(String detall) {
this.detall = detall;
}
public void setVarData(String varData) {
this.varData = varData;
}
public void setVarTipoEstadoNotificacion(String varTipoEstadoNotificacion) {
this.varTipoEstadoNotificacion = varTipoEstadoNotificacion;
}
public void setVarFechaAcuseRecibo(String varFechaAcuseRecibo) {
this.varFechaAcuseRecibo = varFechaAcuseRecibo;
}
public void setVarTipo(String varTipo) {
this.varTipo = varTipo;
}
public void setVarDestinatario(String varDestinatario) {
this.varDestinatario = varDestinatario;
}
public void setVarEnviado(String varEnviado) {
this.varEnviado = varEnviado;
}
public void setVarFechaEnvio(String varFechaEnvio) {
this.varFechaEnvio = varFechaEnvio;
}
public void setVarConfirmarEnvio(String varConfirmarEnvio) {
this.varConfirmarEnvio = varConfirmarEnvio;
}
public void setVarConfirmadoEnvio(String varConfirmadoEnvio) {
this.varConfirmadoEnvio = varConfirmadoEnvio;
}
public void setVarNumeroRegistre(String varNumeroRegistre) {
this.varNumeroRegistre = varNumeroRegistre;
}
public void setVarDetall(String varDetall) {
this.varDetall = varDetall;
}
public void setVarReferenciaRDSJustificanteClave(String varReferenciaRDSJustificanteClave) {
this.varReferenciaRDSJustificanteClave = varReferenciaRDSJustificanteClave;
}
public void setVarReferenciaRDSJustificanteCodigo(String varReferenciaRDSJustificanteCodigo) {
this.varReferenciaRDSJustificanteCodigo = varReferenciaRDSJustificanteCodigo;
}
private static final Log logger = LogFactory.getLog(ZonaperEventNotificacioJustificantHandler.class);
}