/** * */ package net.conselldemallorca.helium.jbpm3.handlers; import net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge; import net.conselldemallorca.helium.v3.core.api.dto.ExpedientDto; import net.conselldemallorca.helium.v3.core.api.dto.ExpedientDto.IniciadorTipusDto; import net.conselldemallorca.helium.v3.core.api.dto.ZonaperExpedientDto; import org.jbpm.JbpmException; import org.jbpm.graph.exe.ExecutionContext; /** * Handler per a crear expedients a dins la zona personal del * ciutadà. * * @author Limit Tecnologies <limit@limit.es> */ @SuppressWarnings("serial") public class ZonaperExpedientCrearHandler extends AbstractHeliumActionHandler implements ZonaperExpedientCrearHandlerInterface { private String descripcio; private String varDescripcio; private String avisosHabilitat; private String avisosEmail; private String avisosSms; private String varAvisosHabilitat; private String varAvisosEmail; private String varAvisosSms; private String idioma; private String unitatAdministrativa; private String representantNif; private String representatNif; private String representatNom; private String varIdioma; private String varUnitatAdministrativa; private String varRepresentantNif; private String varRepresentatNif; private String varRepresentatNom; private String comprovarExistencia; public void execute(ExecutionContext executionContext) throws Exception { ExpedientDto expedient = getExpedientActual(executionContext); if (!isComprovarExistencia() || expedient.getTramitExpedientIdentificador() == null) { Jbpm3HeliumBridge.getInstanceService().zonaperExpedientCrear( expedient, construirExpedient( executionContext, expedient)); } } public void setDescripcio(String descripcio) { this.descripcio = descripcio; } public void setVarDescripcio(String varDescripcio) { this.varDescripcio = varDescripcio; } public void setAvisosHabilitat(String avisosHabilitat) { this.avisosHabilitat = avisosHabilitat; } public void setAvisosEmail(String avisosEmail) { this.avisosEmail = avisosEmail; } public void setAvisosSms(String avisosSms) { this.avisosSms = avisosSms; } public void setVarAvisosHabilitat(String varAvisosHabilitat) { this.varAvisosHabilitat = varAvisosHabilitat; } public void setVarAvisosEmail(String varAvisosEmail) { this.varAvisosEmail = varAvisosEmail; } public void setVarAvisosSms(String varAvisosSms) { this.varAvisosSms = varAvisosSms; } public void setIdioma(String idioma) { this.idioma = idioma; } public void setUnitatAdministrativa(String unitatAdministrativa) { this.unitatAdministrativa = unitatAdministrativa; } public void setRepresentantNif(String representantNif) { this.representantNif = representantNif; } public void setRepresentatNif(String representatNif) { this.representatNif = representatNif; } public void setRepresentatNom(String representatNom) { this.representatNom = representatNom; } public void setVarIdioma(String varIdioma) { this.varIdioma = varIdioma; } public void setVarUnitatAdministrativa(String varUnitatAdministrativa) { this.varUnitatAdministrativa = varUnitatAdministrativa; } public void setVarRepresentantNif(String varRepresentantNif) { this.varRepresentantNif = varRepresentantNif; } public void setVarRepresentatNif(String varRepresentatNif) { this.varRepresentatNif = varRepresentatNif; } public void setVarRepresentatNom(String varRepresentatNom) { this.varRepresentatNom = varRepresentatNom; } public void setComprovarExistencia(String comprovarExistencia) { this.comprovarExistencia = comprovarExistencia; } private ZonaperExpedientDto construirExpedient( ExecutionContext executionContext, ExpedientDto expedient) throws JbpmException { ZonaperExpedientDto zonaperExpedient = new ZonaperExpedientDto(); if (IniciadorTipusDto.SISTRA.equals(expedient.getIniciadorTipus())) { zonaperExpedient.setIdioma(expedient.getIdioma()); zonaperExpedient.setUnitatAdministrativa(expedient.getUnitatAdministrativa()); zonaperExpedient.setTramitNumero(expedient.getNumeroEntradaSistra()); zonaperExpedient.setAutenticat(expedient.isAutenticat()); zonaperExpedient.setRepresentantNif(expedient.getRepresentantNif()); if (expedient.getInteressatNif() == null || expedient.getInteressatNif().isEmpty()) { zonaperExpedient.setRepresentatNif( (String)getValorOVariable( executionContext, representatNif, varRepresentatNif)); } else { zonaperExpedient.setRepresentatNif(expedient.getInteressatNif()); } if (expedient.getInteressatNom() == null || expedient.getInteressatNom().isEmpty()) { zonaperExpedient.setRepresentatNom( (String)getValorOVariable( executionContext, representatNom, varRepresentatNom)); } else { zonaperExpedient.setRepresentatNom(expedient.getInteressatNom()); } } else { zonaperExpedient.setIdioma( (String)getValorOVariable( executionContext, idioma, varIdioma)); String ua = (String)getValorOVariable( executionContext, unitatAdministrativa, varUnitatAdministrativa); if (ua != null) zonaperExpedient.setUnitatAdministrativa( Long.parseLong(ua)); zonaperExpedient.setAutenticat(true); zonaperExpedient.setRepresentantNif( (String)getValorOVariable( executionContext, representantNif, varRepresentantNif)); zonaperExpedient.setRepresentatNif( (String)getValorOVariable( executionContext, representatNif, varRepresentatNif)); zonaperExpedient.setRepresentatNom( (String)getValorOVariable( executionContext, representatNom, varRepresentatNom)); } String desc = (String)getValorOVariable( executionContext, descripcio, varDescripcio); zonaperExpedient.setDescripcio(desc); String ah = (String)getValorOVariable( executionContext, avisosHabilitat, varAvisosHabilitat); if (ah != null) { zonaperExpedient.setAvisosHabilitat( "S".equalsIgnoreCase(ah) || "true".equalsIgnoreCase(ah)); zonaperExpedient.setAvisosEmail( (String)getValorOVariable( executionContext, avisosEmail, varAvisosEmail)); zonaperExpedient.setAvisosSMS( (String)getValorOVariable( executionContext, avisosSms, varAvisosSms)); } else { zonaperExpedient.setAvisosHabilitat(expedient.isAvisosHabilitats()); zonaperExpedient.setAvisosEmail(expedient.getAvisosEmail()); zonaperExpedient.setAvisosSMS(expedient.getAvisosMobil()); } return zonaperExpedient; } private boolean isComprovarExistencia() { return "true".equalsIgnoreCase(comprovarExistencia) || "S".equalsIgnoreCase(comprovarExistencia); } }