From 6f669ebb7604aaa94af4e18a0cdcfe83889e3883 Mon Sep 17 00:00:00 2001 From: james Date: Tue, 23 Jun 2020 09:27:09 -0500 Subject: [PATCH] Cambios para notificacion --- nb-configuration.xml | 29 +++ nbactions.xml | 50 +++++ pom.xml | 116 +++++++++++ .../java/com/qsoft/wmp/filter/CorsFilter.java | 68 +++++++ .../wmp/services/rest/AccionResource.java | 130 +++++++++++++ .../wmp/services/rest/ApplicationConfig.java | 39 ++++ .../wmp/services/rest/ConsultaResource.java | 88 +++++++++ .../wmp/services/rest/MultipartResource.java | 184 ++++++++++++++++++ .../qsoft/wmp/services/util/ServiceUtil.java | 124 ++++++++++++ .../wmp/services/xsd/BodyEntradaAccion.java | 46 +++++ .../wmp/services/xsd/BodyEntradaConsulta.java | 62 ++++++ .../services/xsd/BodyEntradaLiquidacion.java | 54 +++++ .../wmp/services/xsd/BodySalidaAccion.java | 36 ++++ .../wmp/services/xsd/BodySalidaConsulta.java | 39 ++++ .../qsoft/wmp/services/xsd/EntradaAccion.java | 79 ++++++++ .../wmp/services/xsd/EntradaConsulta.java | 80 ++++++++ .../wmp/services/xsd/EntradaLiquidacion.java | 80 ++++++++ .../qsoft/wmp/services/xsd/SalidaAccion.java | 97 +++++++++ .../wmp/services/xsd/SalidaConsulta.java | 97 +++++++++ src/main/resources/publico/acdcb.jpg | Bin 0 -> 12948 bytes src/main/webapp/META-INF/context.xml | 2 + .../WEB-INF/jboss-deployment-structure.xml | 8 + src/main/webapp/WEB-INF/jboss-web.xml | 4 + src/main/webapp/WEB-INF/web.xml | 4 + src/main/webapp/index.html | 10 + src/test/java/com/qsoft/test/DetalleLiq.json | 45 +++++ src/test/java/com/qsoft/test/FactVen.json | 62 ++++++ src/test/java/com/qsoft/test/Tester.java | 105 ++++++++++ src/test/java/com/qsoft/test/testJson.json | 23 +++ 29 files changed, 1761 insertions(+) create mode 100755 nb-configuration.xml create mode 100644 nbactions.xml create mode 100755 pom.xml create mode 100644 src/main/java/com/qsoft/wmp/filter/CorsFilter.java create mode 100644 src/main/java/com/qsoft/wmp/services/rest/AccionResource.java create mode 100644 src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java create mode 100644 src/main/java/com/qsoft/wmp/services/rest/ConsultaResource.java create mode 100644 src/main/java/com/qsoft/wmp/services/rest/MultipartResource.java create mode 100644 src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaAccion.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaConsulta.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaLiquidacion.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/BodySalidaAccion.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/BodySalidaConsulta.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/EntradaAccion.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/EntradaConsulta.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/EntradaLiquidacion.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/SalidaAccion.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/SalidaConsulta.java create mode 100644 src/main/resources/publico/acdcb.jpg create mode 100644 src/main/webapp/META-INF/context.xml create mode 100644 src/main/webapp/WEB-INF/jboss-deployment-structure.xml create mode 100644 src/main/webapp/WEB-INF/jboss-web.xml create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100755 src/main/webapp/index.html create mode 100644 src/test/java/com/qsoft/test/DetalleLiq.json create mode 100644 src/test/java/com/qsoft/test/FactVen.json create mode 100644 src/test/java/com/qsoft/test/Tester.java create mode 100644 src/test/java/com/qsoft/test/testJson.json diff --git a/nb-configuration.xml b/nb-configuration.xml new file mode 100755 index 0000000..32b40de --- /dev/null +++ b/nb-configuration.xml @@ -0,0 +1,29 @@ + + + + + + + 1.8-web + ide + false + /less:/css + false + false + + + /scss:/css + js/libs + pfv5ee8 + + diff --git a/nbactions.xml b/nbactions.xml new file mode 100644 index 0000000..0105d0a --- /dev/null +++ b/nbactions.xml @@ -0,0 +1,50 @@ + + + + run + + war + ear + ejb + + + package + + + true + werp-services + + + + debug + + war + ear + ejb + + + package + + + true + true + werp-services + + + + profile + + ejb + ear + war + + + package + + + true + true + werp-services + + + diff --git a/pom.xml b/pom.xml new file mode 100755 index 0000000..cf7c916 --- /dev/null +++ b/pom.xml @@ -0,0 +1,116 @@ + + + 4.0.0 + + com.qsoft + werp-services + 1.0-SNAPSHOT + war + + werp-services + + + ${project.build.directory}/endorsed + UTF-8 + + + + + org.glassfish.jersey.media + jersey-media-multipart + 2.30 + + + org.hibernate + hibernate-core + 5.3.0.Final + provided + + + javax.xml.bind + jaxb-api + 2.3.1 + jar + + + com.qsoft.util + qsoft-util + 1.1.1-SNAPSHOT + jar + + + com.qsoft + werp-domain + 1.0-SNAPSHOT + jar + + + javax + javaee-web-api + 7.0 + provided + + + javax.ws.rs + javax.ws.rs-api + 2.1.1 + + + com.fasterxml.jackson.core + jackson-databind + 2.10.1 + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 11 + 11 + + ${endorsed.dir} + + + + + org.apache.maven.plugins + maven-war-plugin + 2.3 + + false + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.1.1 + + + validate + + copy + + + ${endorsed.dir} + true + + + javax + javaee-endorsed-api + 7.0 + jar + + + + + + + + + + diff --git a/src/main/java/com/qsoft/wmp/filter/CorsFilter.java b/src/main/java/com/qsoft/wmp/filter/CorsFilter.java new file mode 100644 index 0000000..834c842 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/filter/CorsFilter.java @@ -0,0 +1,68 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.filter; + +import java.io.IOException; +import java.util.List; +import javax.annotation.Priority; +import javax.ws.rs.Priorities; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.ext.Provider; + +/** + * See http://www.w3.org/TR/cors/ + * + * @author airhacks.com + */ +@Provider +@Priority(Priorities.HEADER_DECORATOR) +public class CorsFilter implements ContainerResponseFilter { + + public static final String ALLOWED_METHODS = "GET, POST, PUT, DELETE, OPTIONS, HEAD"; + public final static int MAX_AGE = 42 * 60 * 60; + public final static String DEFAULT_ALLOWED_HEADERS = "origin,accept,content-type"; + public final static String DEFAULT_EXPOSED_HEADERS = "location,info"; + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { + final MultivaluedMap headers = responseContext.getHeaders(); + headers.add("Access-Control-Allow-Origin", "*"); + headers.add("Access-Control-Allow-Headers", getRequestedAllowedHeaders(requestContext)); + headers.add("Access-Control-Expose-Headers", getRequestedExposedHeaders(requestContext)); + headers.add("Access-Control-Allow-Credentials", "true"); + headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); + headers.add("Access-Control-Max-Age", MAX_AGE); + headers.add("x-responded-by", "cors-response-filter"); + } + + String getRequestedAllowedHeaders(ContainerRequestContext responseContext) { + List headers = responseContext.getHeaders().get("Access-Control-Allow-Headers"); + return createHeaderList(headers, DEFAULT_ALLOWED_HEADERS); + } + + String getRequestedExposedHeaders(ContainerRequestContext responseContext) { + List headers = responseContext.getHeaders().get("Access-Control-Expose-Headers"); + return createHeaderList(headers, DEFAULT_EXPOSED_HEADERS); + } + + String createHeaderList(List headers, String defaultHeaders) { + if (headers == null || headers.isEmpty()) { + return defaultHeaders; + } + StringBuilder retVal = new StringBuilder(); + for (int i = 0; i < headers.size(); i++) { + String header = (String) headers.get(i); + retVal.append(header); + retVal.append(','); + } + retVal.append(defaultHeaders); + return retVal.toString(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java b/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java new file mode 100644 index 0000000..8d9158f --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java @@ -0,0 +1,130 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.rest; + +import com.qsoft.util.constantes.CodigoRespuesta; +import com.qsoft.util.constantes.ErrorTipo; +import com.qsoft.util.ms.pojo.HeaderMS; +import com.qsoft.erp.constantes.DominioConstantes; +import com.qsoft.erp.constantes.EntidadEnum; +import com.qsoft.erp.dominio.AccionGenerica; +import com.qsoft.erp.dominio.exception.DominioExcepcion; +import com.qsoft.wmp.services.util.ServiceUtil; +import com.qsoft.wmp.services.xsd.EntradaAccion; +import com.qsoft.wmp.services.xsd.SalidaAccion; +import java.util.List; +import javax.annotation.PostConstruct; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.Produces; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.MediaType; + +/** + * REST Web Service + * + * @author james + */ +@Path("accion") +public class AccionResource { + + @Inject + private AccionGenerica accion; + + @PostConstruct + public void postConstructor() { + System.out.println("POST CONTRUCTOR " + accion); + } + + /** + * + * @return an instance of java.lang.String + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + public SalidaAccion getJson() { + SalidaAccion salida = ServiceUtil.crearSalidaAccionError(CodigoRespuesta.CODIGO_ERROR_GENERICO, + "Acción no soportada por favor ejecute la consulta via POST"); + return salida; + } + + /** + * PUT method for updating or creating an instance of ConsultaResource + * + * @param entrada + * @return + */ + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public SalidaAccion postJson(EntradaAccion entrada) { + SalidaAccion salida = null; + if (entrada == null) { + salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula"); + } else { + EntidadEnum entidad = Enum.valueOf(EntidadEnum.class, entrada.getBodyIn().getEntidad()); + if (entidad == null) { + salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, "No se puede identificar la entidad a la cual se desea acceder"); + } else { + try { + salida = ejecutarAccion(entrada, entidad); + } catch (DominioExcepcion ex) { + salida = ServiceUtil.crearSalidaAccionError(ex.getTipo(), ex.getCodigo(), ex.getMensaje()); + } catch (Exception ex) { + System.out.println("============ ERROR NO CONTROLADO =============="); + ex.printStackTrace(System.err); + String msg = getCauses(ex, new StringBuilder()); + if (msg.contains("Duplicate entry")) { + salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_ERROR_GUARDA_BDD, + "Error el registro " + entrada.getBodyIn().getEntidad() + " ya existe en la Base de datos"); + } else { + salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_ERROR_GENERICO, "ERROR NO CONTROLADO: " + msg); + } + } + } + } + return salida; + } + + /** + * @param e + * @param build + * @return + */ + private String getCauses(Throwable e, StringBuilder build) { + build.append("\n").append(e.toString()); + for (Throwable t : e.getSuppressed()) { + System.out.println("SUPRESS =====> " + t); + build.append("\n").append(t.toString()); + getCauses(t, build); + } + System.out.println("CAUSE =====> " + e); + if (e.getCause() != null) { + getCauses(e.getCause(), build); + } + return build.toString(); + } + + /** + * Ejecuta la accion + * + * @param entrada + * @param entidad + * @return + * @throws DominioExcepcion + */ + public SalidaAccion ejecutarAccion(EntradaAccion entrada, EntidadEnum entidad) throws DominioExcepcion { + List resultado = accion.accionGenerica(entrada.getHeaderIn(), entidad, entrada.getBodyIn().getEntidades(), entrada.getBodyIn().getTipoAccion()); + String msg = "A continuacion se muestra el resultado de la accion."; + HeaderMS header = entrada.getHeaderIn(); + header.setFechaHora(DominioConstantes.getDateTime()); + SalidaAccion salida = ServiceUtil.crearSalidaAccionOk(header, msg, resultado); + return salida; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java b/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java new file mode 100644 index 0000000..b5523e7 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java @@ -0,0 +1,39 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.rest; + +import java.util.Set; +import javax.ws.rs.core.Application; +import org.glassfish.jersey.media.multipart.MultiPartFeature; + +/** + * + * @author james + */ +@javax.ws.rs.ApplicationPath("servicios") +public class ApplicationConfig extends Application { + + @Override + public Set> getClasses() { + Set> resources = new java.util.HashSet<>(); + resources.add(MultiPartFeature.class); + addRestResourceClasses(resources); + return resources; + } + + /** + * Do not modify addRestResourceClasses() method. It is automatically populated with all resources defined in the project. If required, comment + * out calling this method in getClasses(). + */ + private void addRestResourceClasses(Set> resources) { + resources.add(com.qsoft.wmp.filter.CorsFilter.class); + resources.add(com.qsoft.wmp.services.rest.AccionResource.class); + resources.add(com.qsoft.wmp.services.rest.ConsultaResource.class); + resources.add(com.qsoft.wmp.services.rest.MultipartResource.class); + } + + +} diff --git a/src/main/java/com/qsoft/wmp/services/rest/ConsultaResource.java b/src/main/java/com/qsoft/wmp/services/rest/ConsultaResource.java new file mode 100644 index 0000000..e00b6ee --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/rest/ConsultaResource.java @@ -0,0 +1,88 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.rest; + +import com.qsoft.util.constantes.CodigoRespuesta; +import com.qsoft.util.constantes.ErrorTipo; +import com.qsoft.util.ms.pojo.HeaderMS; +import com.qsoft.erp.constantes.DominioConstantes; +import com.qsoft.erp.dominio.ConsultaGenerica; +import com.qsoft.erp.dominio.exception.DominioExcepcion; +import com.qsoft.wmp.services.util.ServiceUtil; +import com.qsoft.wmp.services.xsd.EntradaConsulta; +import com.qsoft.wmp.services.xsd.SalidaConsulta; +import java.util.List; +import javax.annotation.PostConstruct; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.Produces; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.MediaType; + +/** + * REST Web Service + * + * @author james + */ +@Path("consulta") +public class ConsultaResource { + + @Inject + private ConsultaGenerica consulta; + + @PostConstruct + public void postConstructor() { + System.out.println("======> POST CONTRUCTOR " + consulta); + } + + /** + * + * @return an instance of java.lang.String + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + public SalidaConsulta getJson() { + SalidaConsulta salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, + "Acción no soportada por favor ejecute la consulta via POST"); + return salida; + } + + /** + * PUT method for updating or creating an instance of ConsultaResource + * + * @param entrada + * @return + */ + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public SalidaConsulta postJson(EntradaConsulta entrada) { + SalidaConsulta salida = null; + if (entrada == null) { + salida = ServiceUtil.crearSalidaConsultaError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula"); + } else { + try { + List resultado = null; + resultado = consulta.consultaGenerica(entrada.getHeaderIn(), entrada.getBodyIn().getEntidad(), + entrada.getBodyIn().getParametros(), entrada.getBodyIn().getMaximoRegistros(), entrada.getBodyIn().getTipoConsulta()); + + HeaderMS header = entrada.getHeaderIn(); + header.setFechaHora(DominioConstantes.getDateTime()); + salida = ServiceUtil.crearSalidaConsultaOk(header, entrada.getBodyIn().getEntidad(), resultado); + } catch (DominioExcepcion ex) { + salida = ServiceUtil.crearSalidaConsultaError(ex.getTipo(), ex.getCodigo(), ex.getMensaje()); + }catch (Exception ex) { + salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, ex.toString()); + ex.printStackTrace(); + } + + } + return salida; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/rest/MultipartResource.java b/src/main/java/com/qsoft/wmp/services/rest/MultipartResource.java new file mode 100644 index 0000000..16e2d92 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/rest/MultipartResource.java @@ -0,0 +1,184 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.rest; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.qsoft.util.constantes.CodigoRespuesta; +import com.qsoft.util.constantes.ErrorTipo; +import com.qsoft.util.ms.pojo.HeaderMS; +import com.qsoft.erp.constantes.DominioConstantes; +import com.qsoft.erp.constantes.EntidadEnum; +import com.qsoft.erp.dominio.MultipartService; +import com.qsoft.erp.dominio.exception.DominioExcepcion; +import com.qsoft.erp.dto.DocumentoDTO; +import com.qsoft.erp.dto.LiquidacionDTO; +import com.qsoft.wmp.services.util.ServiceUtil; +import com.qsoft.wmp.services.xsd.EntradaLiquidacion; +import com.qsoft.wmp.services.xsd.SalidaConsulta; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import javax.annotation.PostConstruct; +import javax.inject.Inject; +import javax.servlet.annotation.MultipartConfig; +import javax.ws.rs.Consumes; +import javax.ws.rs.Produces; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.MediaType; +import org.glassfish.jersey.media.multipart.FormDataBodyPart; +import org.glassfish.jersey.media.multipart.FormDataMultiPart; + +/** + * REST Web Service + * + * @author james + */ +@Path("multipart") +@MultipartConfig( + maxFileSize = 838860800l, // 100Mb + fileSizeThreshold = 52428800, //512 + maxRequestSize = 1024000 // 10Kb +) +public class MultipartResource { + + @Inject + private MultipartService multipart; + + @PostConstruct + public void postConstructor() { + + } + + /** + * + * @return an instance of java.lang.String + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + public SalidaConsulta getJson() { + SalidaConsulta salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, + "Acción no soportada por favor ejecute la consulta via POST"); + return salida; + } + + @POST + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.APPLICATION_JSON) + public SalidaConsulta postFile(FormDataMultiPart input) { + SalidaConsulta salida = null; + EntradaLiquidacion entrada = null; + + boolean estado = false; + if (input != null) { + List data = new ArrayList<>(); + Map> parts = input.getFields(); + int i = 0; + try { + System.out.println("===========> RECIBE: " + parts); + for (List p : parts.values()) { + FormDataBodyPart bp = p.get(0); + if (i == 0) { + entrada = getEntrada(bp); + if(entrada != null && entrada.getBodyIn().getParametros() != null && + entrada.getBodyIn().getParametros().get("Liquidacion") != null && + entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() != null && + entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() == -1){ + throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, + "No existe una poliza activa no puede ejecutar este proceso"); + } + } else { + InputStream in = bp.getValueAs(InputStream.class); + try { + if (in != null && entrada != null && entrada.getBodyIn().getParametros() != null && + entrada.getBodyIn().getParametros().get("Liquidacion") != null) { + DocumentoDTO doc = (DocumentoDTO) entrada.getBodyIn().getParametros().get("Liquidacion").getDocumentos().get(i - 1); + doc.setData(in.readAllBytes()); + } + } catch (IOException ex) { + System.out.println("ERROR CARGANDO ARCHIVO " + ex); + } + } + i++; + } + if (!validarEntrada(entrada)) { + throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, + "Uno o mas documentos enviados son nulos por favor verifique la informacion"); + } + EntidadEnum entidad = Enum.valueOf(EntidadEnum.class, entrada.getBodyIn().getEntidad()); + data = this.multipart.multipartGenerico(entrada.getHeaderIn(), entidad, + entrada.getBodyIn().getParametros(), entrada.getBodyIn().getTipoConsulta()); + HeaderMS header = entrada.getHeaderIn(); + header.setFechaHora(DominioConstantes.getDateTime()); + salida = ServiceUtil.crearSalidaConsultaOk(header, entrada.getBodyIn().getEntidad(), data); + } catch (DominioExcepcion ex) { + salida = ServiceUtil.crearSalidaConsultaError(ex.getCodigo(), ex.getMensaje()); + ex.printStackTrace(); + } catch (Exception ex) { + salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, ex.toString()); + ex.printStackTrace(); + } + + } else { + ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_VALOR_NULO, "ERROR. La entrada no puede ser nula"); + } + + return salida; + } + + /** + * + * @param entrada + * @return + */ + private boolean validarEntrada(EntradaLiquidacion entrada) { + boolean estado = true; + if (entrada == null || entrada.getBodyIn() == null || entrada.getBodyIn().getParametros() == null) { + return false; + } + if (entrada.getBodyIn() != null && entrada.getBodyIn().getParametros() != null) { + for (LiquidacionDTO liq : entrada.getBodyIn().getParametros().values()) { + if (liq.getDocumentos() != null) { + for (DocumentoDTO doc : liq.getDocumentos()) { + if (doc == null || doc.getData() == null) { + estado = false; + break; + } + } + } + } + } + return estado; + } + + /** + * Crea la entrada a partir de la consulta del servicio + * + * @param bp + * @return + */ + public EntradaLiquidacion getEntrada(FormDataBodyPart bp) throws DominioExcepcion { + EntradaLiquidacion entrada = null; + InputStream in = bp.getValueAs(InputStream.class); + if (in != null) { + try { + String json = new String(in.readAllBytes()); + ObjectMapper maper = new ObjectMapper(); + maper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); + entrada = maper.readValue(json, EntradaLiquidacion.class); + } catch (IOException ex) { + throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, "No es posible convertir el JSON " + ex.toString()); + } + } + System.out.println("CREO ENTRADA... " + entrada); + return entrada; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java b/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java new file mode 100644 index 0000000..7e7cdc8 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java @@ -0,0 +1,124 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.util; + +import com.qsoft.util.constantes.CodigoRespuesta; +import com.qsoft.util.constantes.ErrorTipo; +import com.qsoft.util.ms.pojo.HeaderMS; +import com.qsoft.wmp.services.xsd.SalidaAccion; +import com.qsoft.wmp.services.xsd.SalidaConsulta; +import java.util.List; +import java.util.Map; + +/** + * + * @author james + */ +public class ServiceUtil { + + + + /** + * Crear salida + * + * @param codigo + * @param mensaje + * @return + */ + public static SalidaConsulta crearSalidaConsultaError(CodigoRespuesta codigo, String mensaje) { + SalidaConsulta salida = new SalidaConsulta(); + salida.getError().setCodigo(codigo.getCodigo()); + salida.getError().setMensaje(mensaje); + salida.getError().setTipo(ErrorTipo.ERROR.name()); + return salida; + } + + /** + * Crear salida + * + * @param codigo + * @param mensaje + * @return + */ + public static SalidaAccion crearSalidaAccionError(CodigoRespuesta codigo, String mensaje) { + SalidaAccion salida = new SalidaAccion(); + salida.getError().setCodigo(codigo.getCodigo()); + salida.getError().setMensaje(mensaje); + salida.getError().setTipo(ErrorTipo.ERROR.name()); + return salida; + } + + /** + * Crear salida + * + * @param error + * @param codigo + * @param mensaje + * @return + */ + public static SalidaConsulta crearSalidaConsultaError(ErrorTipo error, CodigoRespuesta codigo, String mensaje) { + SalidaConsulta salida = new SalidaConsulta(); + salida.getError().setCodigo(codigo.getCodigo()); + salida.getError().setMensaje(mensaje); + salida.getError().setTipo(error.name()); + return salida; + } + + /** + * Crear salida + * + * @param error + * @param codigo + * @param mensaje + * @return + */ + public static SalidaAccion crearSalidaAccionError(ErrorTipo error, CodigoRespuesta codigo, String mensaje) { + SalidaAccion salida = new SalidaAccion(); + salida.getError().setCodigo(codigo.getCodigo()); + salida.getError().setMensaje(mensaje); + salida.getError().setTipo(error.name()); + return salida; + } + + /** + * Crear salida ok + * + * @param header + * @param tipoSalida + * @param data + * @return + */ + public static SalidaConsulta crearSalidaConsultaOk(HeaderMS header, String tipoSalida, List data) { + SalidaConsulta salida = new SalidaConsulta(); + salida.setHeaderOut(header); + salida.getError().setCodigo(CodigoRespuesta.CODIGO_OK.getCodigo()); + salida.getError().setMensaje(CodigoRespuesta.CODIGO_OK.name()); + salida.getError().setTipo(ErrorTipo.INFO.name()); + salida.getBodyOut().setEntidad(tipoSalida); + salida.getBodyOut().setData(data); + return salida; + } + + /** + * Crear salida ok + * + * @param header + * @param estado + * @param data + * @return + */ + public static SalidaAccion crearSalidaAccionOk(HeaderMS header, String estado, List data) { + SalidaAccion salida = new SalidaAccion(); + salida.setHeaderOut(header); + salida.getError().setCodigo(CodigoRespuesta.CODIGO_OK.getCodigo()); + salida.getError().setMensaje(CodigoRespuesta.CODIGO_OK.name()); + salida.getError().setTipo(ErrorTipo.INFO.name()); + salida.getBodyOut().setEstado(estado); + salida.getBodyOut().setResultados(data); + return salida; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaAccion.java b/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaAccion.java new file mode 100644 index 0000000..b1fb01c --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaAccion.java @@ -0,0 +1,46 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.xsd; + +import java.util.List; +import java.util.Map; + +/** + * + * @author james + * @param + */ +public class BodyEntradaAccion { + + private Integer tipoAccion; + private String entidad; + private List> entidades; + + public Integer getTipoAccion() { + return tipoAccion; + } + + public void setTipoAccion(Integer tipoAccion) { + this.tipoAccion = tipoAccion; + } + + public String getEntidad() { + return entidad; + } + + public void setEntidad(String entidad) { + this.entidad = entidad; + } + + public List> getEntidades() { + return entidades; + } + + public void setEntidades(List> entidades) { + this.entidades = entidades; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaConsulta.java b/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaConsulta.java new file mode 100644 index 0000000..7a64a1e --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaConsulta.java @@ -0,0 +1,62 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.xsd; + +import java.util.Map; + +/** + * + * @author james + */ +public class BodyEntradaConsulta { + + private Integer tipoConsulta; + private Integer maximoRegistros; + private Integer registroInicio; + private String entidad; + private Map parametros; + + public Integer getTipoConsulta() { + return tipoConsulta; + } + + public void setTipoConsulta(Integer tipoConsulta) { + this.tipoConsulta = tipoConsulta; + } + + public Map getParametros() { + return parametros; + } + + public void setParametros(Map parametros) { + this.parametros = parametros; + } + + public String getEntidad() { + return entidad; + } + + public void setEntidad(String entidad) { + this.entidad = entidad; + } + + public Integer getMaximoRegistros() { + return maximoRegistros; + } + + public void setMaximoRegistros(Integer maximoRegistros) { + this.maximoRegistros = maximoRegistros; + } + + public Integer getRegistroInicio() { + return registroInicio; + } + + public void setRegistroInicio(Integer registroInicio) { + this.registroInicio = registroInicio; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaLiquidacion.java b/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaLiquidacion.java new file mode 100644 index 0000000..8f50eac --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/BodyEntradaLiquidacion.java @@ -0,0 +1,54 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.xsd; + +import com.qsoft.erp.dto.LiquidacionDTO; +import java.util.Map; + +/** + * + * @author james + */ +public class BodyEntradaLiquidacion { + + private Integer tipoConsulta; + private Integer maximoRegistros; + private String entidad; + private Map parametros; + + public Integer getTipoConsulta() { + return tipoConsulta; + } + + public void setTipoConsulta(Integer tipoConsulta) { + this.tipoConsulta = tipoConsulta; + } + + public Map getParametros() { + return parametros; + } + + public void setParametros(Map parametros) { + this.parametros = parametros; + } + + public String getEntidad() { + return entidad; + } + + public void setEntidad(String entidad) { + this.entidad = entidad; + } + + public Integer getMaximoRegistros() { + return maximoRegistros; + } + + public void setMaximoRegistros(Integer maximoRegistros) { + this.maximoRegistros = maximoRegistros; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/BodySalidaAccion.java b/src/main/java/com/qsoft/wmp/services/xsd/BodySalidaAccion.java new file mode 100644 index 0000000..41ecdf7 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/BodySalidaAccion.java @@ -0,0 +1,36 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.xsd; + +import java.util.List; + +/** + * + * @author james + */ +public class BodySalidaAccion { + + private String estado; + + private List resultados; + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public List getResultados() { + return resultados; + } + + public void setResultados(List resultados) { + this.resultados = resultados; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/BodySalidaConsulta.java b/src/main/java/com/qsoft/wmp/services/xsd/BodySalidaConsulta.java new file mode 100644 index 0000000..1ded321 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/BodySalidaConsulta.java @@ -0,0 +1,39 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.wmp.services.xsd; + +import java.io.Serializable; +import java.util.List; + +/** + * + * @author james + * @param + */ +public class BodySalidaConsulta { + + private String entidad; + + private List data; + + public String getEntidad() { + return entidad; + } + + public void setEntidad(String entidad) { + this.entidad = entidad; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/EntradaAccion.java b/src/main/java/com/qsoft/wmp/services/xsd/EntradaAccion.java new file mode 100644 index 0000000..699c43c --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/EntradaAccion.java @@ -0,0 +1,79 @@ +/* + * EntradaConsulta.java + * 15 de feb. de 2017 + * Copyright 2017 TCS. + * Todos los derechos reservados. + */ +package com.qsoft.wmp.services.xsd; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.qsoft.util.ms.pojo.HeaderMS; +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +/** + * Entrada del servicio web. + * + * @author jaime Ruales + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class EntradaAccion implements Serializable { + + private static final long serialVersionUID = 8142263336233087792L; + + @XmlElement(name = "headerIn") + @JsonAlias("headerIn") + private HeaderMS headerIn; + + @XmlElement(name = "bodyIn") + @JsonAlias("bodyIn") + private BodyEntradaAccion bodyIn; + + public EntradaAccion() { + this.headerIn = new HeaderMS(); + this.bodyIn = new BodyEntradaAccion(); + } + + /** + * Accesor del campo headerIn + * + * @return + */ + public HeaderMS getHeaderIn() { + return headerIn; + } + + /** + * Modificador del campo headerIn + * + * @param headerIn + */ + public void setHeaderIn(final HeaderMS headerIn) { + this.headerIn = headerIn; + } + + /** + * Accesor del campo bodyIn + * + * @return + */ + public BodyEntradaAccion getBodyIn() { + return bodyIn; + } + + /** + * Modificador del campo bodyIn + * + * @param bodyIn + */ + public void setBodyIn(final BodyEntradaAccion bodyIn) { + this.bodyIn = bodyIn; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/EntradaConsulta.java b/src/main/java/com/qsoft/wmp/services/xsd/EntradaConsulta.java new file mode 100644 index 0000000..b1a6a90 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/EntradaConsulta.java @@ -0,0 +1,80 @@ +/* + * EntradaConsulta.java + * 15 de feb. de 2017 + * Copyright 2017 TCS. + * Todos los derechos reservados. + */ +package com.qsoft.wmp.services.xsd; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.qsoft.util.ms.pojo.HeaderMS; +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; + + +/** + * Entrada del servicio web. + * + * @author jaime Ruales + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class EntradaConsulta implements Serializable { + + private static final long serialVersionUID = 8142263336233087792L; + + @XmlElement(name = "headerIn") + @JsonAlias("headerIn") + private HeaderMS headerIn; + + @XmlElement(name = "bodyIn") + @JsonAlias("bodyIn") + private BodyEntradaConsulta bodyIn; + + public EntradaConsulta() { + this.headerIn = new HeaderMS(); + this.bodyIn = new BodyEntradaConsulta(); + } + + /** + * Accesor del campo headerIn + * + * @return + */ + public HeaderMS getHeaderIn() { + return headerIn; + } + + /** + * Modificador del campo headerIn + * + * @param headerIn + */ + public void setHeaderIn(final HeaderMS headerIn) { + this.headerIn = headerIn; + } + + /** + * Accesor del campo bodyIn + * + * @return + */ + public BodyEntradaConsulta getBodyIn() { + return bodyIn; + } + + /** + * Modificador del campo bodyIn + * + * @param bodyIn + */ + public void setBodyIn(final BodyEntradaConsulta bodyIn) { + this.bodyIn = bodyIn; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/EntradaLiquidacion.java b/src/main/java/com/qsoft/wmp/services/xsd/EntradaLiquidacion.java new file mode 100644 index 0000000..6e37aad --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/EntradaLiquidacion.java @@ -0,0 +1,80 @@ +/* + * EntradaConsulta.java + * 15 de feb. de 2017 + * Copyright 2017 TCS. + * Todos los derechos reservados. + */ +package com.qsoft.wmp.services.xsd; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.qsoft.util.ms.pojo.HeaderMS; +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; + + +/** + * Entrada del servicio web. + * + * @author jaime Ruales + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class EntradaLiquidacion implements Serializable { + + private static final long serialVersionUID = 8142263336233087792L; + + @XmlElement(name = "headerIn") + @JsonAlias("headerIn") + private HeaderMS headerIn; + + @XmlElement(name = "bodyIn") + @JsonAlias("bodyIn") + private BodyEntradaLiquidacion bodyIn; + + public EntradaLiquidacion() { + this.headerIn = new HeaderMS(); + this.bodyIn = new BodyEntradaLiquidacion(); + } + + /** + * Accesor del campo headerIn + * + * @return + */ + public HeaderMS getHeaderIn() { + return headerIn; + } + + /** + * Modificador del campo headerIn + * + * @param headerIn + */ + public void setHeaderIn(final HeaderMS headerIn) { + this.headerIn = headerIn; + } + + /** + * Accesor del campo bodyIn + * + * @return + */ + public BodyEntradaLiquidacion getBodyIn() { + return bodyIn; + } + + /** + * Modificador del campo bodyIn + * + * @param bodyIn + */ + public void setBodyIn(final BodyEntradaLiquidacion bodyIn) { + this.bodyIn = bodyIn; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/SalidaAccion.java b/src/main/java/com/qsoft/wmp/services/xsd/SalidaAccion.java new file mode 100644 index 0000000..2f9b04c --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/SalidaAccion.java @@ -0,0 +1,97 @@ +package com.qsoft.wmp.services.xsd; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.qsoft.util.ms.pojo.ErrorMS; +import com.qsoft.util.ms.pojo.HeaderMS; +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; + + +/** + * Salida del Servicio Web. + * + * @author Jaime Ruales. + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class, ErrorMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class SalidaAccion implements Serializable { + + private static final long serialVersionUID = 5403227918589158188L; + + @XmlElement(name = "headerOut") + @JsonAlias("headerOut") + protected HeaderMS headerOut; + + @XmlElement(name = "bodyOut") + @JsonAlias("bodyOut") + protected BodySalidaAccion bodyOut; + + @XmlElement(name = "error") + protected ErrorMS error; + + public SalidaAccion() { + this.error = new ErrorMS(); + this.headerOut = new HeaderMS(); + this.bodyOut = new BodySalidaAccion(); + } + + /** + * Accesor del campo headerOut + * + * @return + */ + public HeaderMS getHeaderOut() { + return headerOut; + } + + /** + * Modificador del campo headerOut + * + * @param headerOut + */ + public void setHeaderOut(final HeaderMS headerOut) { + this.headerOut = headerOut; + } + + /** + * Accesor del campo error + * + * @return + */ + public ErrorMS getError() { + return error; + } + + /** + * Accesor del campo bodyOut + * + * @return + */ + public BodySalidaAccion getBodyOut() { + return bodyOut; + } + + /** + * Modificador del campo bodyOut + * + * @param bodyOut + */ + public void setBodyOut(final BodySalidaAccion bodyOut) { + this.bodyOut = bodyOut; + } + + /** + * Modificador del campo error + * + * @param error + */ + public void setError(final ErrorMS error) { + this.error = error; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/SalidaConsulta.java b/src/main/java/com/qsoft/wmp/services/xsd/SalidaConsulta.java new file mode 100644 index 0000000..a711ab7 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/SalidaConsulta.java @@ -0,0 +1,97 @@ +package com.qsoft.wmp.services.xsd; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.qsoft.util.ms.pojo.ErrorMS; +import com.qsoft.util.ms.pojo.HeaderMS; +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; + + +/** + * Salida del Servicio Web. + * + * @author Jaime Ruales. + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class, ErrorMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class SalidaConsulta implements Serializable { + + private static final long serialVersionUID = 5403227918589158188L; + + @XmlElement(name = "headerOut") + @JsonAlias("headerOut") + protected HeaderMS headerOut; + + @XmlElement(name = "bodyOut") + @JsonAlias("bodyOut") + protected BodySalidaConsulta bodyOut; + + @XmlElement(name = "error") + protected ErrorMS error; + + public SalidaConsulta() { + this.error = new ErrorMS(); + this.headerOut = new HeaderMS(); + this.bodyOut = new BodySalidaConsulta(); + } + + /** + * Accesor del campo headerOut + * + * @return + */ + public HeaderMS getHeaderOut() { + return headerOut; + } + + /** + * Modificador del campo headerOut + * + * @param headerOut + */ + public void setHeaderOut(final HeaderMS headerOut) { + this.headerOut = headerOut; + } + + /** + * Accesor del campo error + * + * @return + */ + public ErrorMS getError() { + return error; + } + + /** + * Accesor del campo bodyOut + * + * @return + */ + public BodySalidaConsulta getBodyOut() { + return bodyOut; + } + + /** + * Modificador del campo bodyOut + * + * @param bodyOut + */ + public void setBodyOut(final BodySalidaConsulta bodyOut) { + this.bodyOut = bodyOut; + } + + /** + * Modificador del campo error + * + * @param error + */ + public void setError(final ErrorMS error) { + this.error = error; + } + +} diff --git a/src/main/resources/publico/acdcb.jpg b/src/main/resources/publico/acdcb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34c92ef2a568ad6810500f8d00e122e10cbb0c8a GIT binary patch literal 12948 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 ul}Y5tE literal 0 HcmV?d00001 diff --git a/src/main/webapp/META-INF/context.xml b/src/main/webapp/META-INF/context.xml new file mode 100644 index 0000000..ee96a65 --- /dev/null +++ b/src/main/webapp/META-INF/context.xml @@ -0,0 +1,2 @@ + + diff --git a/src/main/webapp/WEB-INF/jboss-deployment-structure.xml b/src/main/webapp/WEB-INF/jboss-deployment-structure.xml new file mode 100644 index 0000000..ebf3253 --- /dev/null +++ b/src/main/webapp/WEB-INF/jboss-deployment-structure.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jboss-web.xml b/src/main/webapp/WEB-INF/jboss-web.xml new file mode 100644 index 0000000..0dd5ace --- /dev/null +++ b/src/main/webapp/WEB-INF/jboss-web.xml @@ -0,0 +1,4 @@ + + + /erp-services + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..0635f06 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html new file mode 100755 index 0000000..3368e9c --- /dev/null +++ b/src/main/webapp/index.html @@ -0,0 +1,10 @@ + + + + Start Page + + + +

Hello World!

+ + diff --git a/src/test/java/com/qsoft/test/DetalleLiq.json b/src/test/java/com/qsoft/test/DetalleLiq.json new file mode 100644 index 0000000..eb60d63 --- /dev/null +++ b/src/test/java/com/qsoft/test/DetalleLiq.json @@ -0,0 +1,45 @@ +{ + "headerIn": { + "dispositivo": "WeLaptop", + "canal": null, + "medio": null, + "aplicacion": "WeMedicalProV1.0", + "tipoTransaccion": "0101102", + "usuario": "james", + "uuid": "a1290bc2516a607bb39a913251fb94cc5dcb7c4f9f6e0038a685758e014a45f1", + "fechaHora": null, + "idioma": null, + "empresa": null, + "geolocalizacion": null + }, + "bodyIn": { + "tipoAccion": 2, + "entidad": "DetalleLiquidacion", + "entidades": [ + { + "delCodigo": 104, + "delValorRegistrado": 60, + "delValorObjetado": 124.16, + "detalle": [ + { + "talCodigo": 1, + "talValorObjetado": 35.25, + "talEstado": 1, + "tarCodigo": 6172 + }, { + "talCodigo": 2, + "talValorObjetado": 38.22, + "talEstado": 1, + "tarCodigo": 5 + }, + { + "talCodigo": 3, + "talValorObjetado": 50.69, + "talEstado": 1, + "tarCodigo": 6663 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/test/java/com/qsoft/test/FactVen.json b/src/test/java/com/qsoft/test/FactVen.json new file mode 100644 index 0000000..118f8db --- /dev/null +++ b/src/test/java/com/qsoft/test/FactVen.json @@ -0,0 +1,62 @@ +{ + "headerIn": { + "dispositivo": "james-laptop001", + "canal": null, + "medio": null, + "aplicacion": "WeERPV1.0", + "tipoTransaccion": "0101151", + "usuario": "james", + "uuid": "2e25aed60f2d4c63e33864a638b906f2df987a9b37ce3f8dafde7b565b2a6c41", + "fechaHora": "20/05/2020 23:55:36", + "idioma": "ES", + "empresa": "Enigma-Lovers", + "geolocalizacion": null + }, + "bodyIn": { + "tipoAccion": 1, + "entidad": "FacturaCompra", + "entidades": [ + { + "facEstablecimiento": "001", + "facPtoEmision": "001", + "facSecuencial": "00000001", + "facClaveAcceso": null, + "facAutorizacion": null, + "facTotalDescuentos": null, + "facTotalImpuestos": null, + "facTotalOtros": null, + "facImporte": null, + "facTotal": null, + "facAdelanto": null, + "facPendiente": null, + "facReferencia": null, + "facPropina": null, + "facFechaRegistro": null, + "facFechaAutorizacion": null, + "facDescripcion": null, + "facObservacion": null, + "facDetalle": null, + "facDinamico": "CUANDO SE ADQUIERE SERVICIOS O CONSUMIBLES QUE NO GENERAN ENTRADA SE AGREGA AQUI", + "ejeCodigo": null, + "empCodigo": null, + "proCodigo": 1, + "detEstado": null, + "detTipo": null, + "usuCodigo": null, + "detalle": [ + { + "denCantidad": 2.0, + "denPrecioCompra": 89.3, + "denFecProduccion": 1590073789081, + "denFecCaducidad": 1590073789081, + "artCodigo": 1, + "bodCodigo": 1, + "detUnidad": null, + "entCodigo": null + } + ] + } + ] + } +} + diff --git a/src/test/java/com/qsoft/test/Tester.java b/src/test/java/com/qsoft/test/Tester.java new file mode 100644 index 0000000..f1fed12 --- /dev/null +++ b/src/test/java/com/qsoft/test/Tester.java @@ -0,0 +1,105 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.qsoft.test; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.qsoft.erp.constantes.DominioConstantes; +import com.qsoft.erp.constantes.EntidadEnum; +import com.qsoft.erp.dominio.AccionGenerica; +import com.qsoft.erp.dto.DocumentoDTO; +import com.qsoft.erp.dto.EstadoLiquidacionDTO; +import com.qsoft.erp.dto.LiquidacionDTO; +import com.qsoft.erp.dto.PolizaDTO; +import com.qsoft.wmp.services.rest.AccionResource; +import com.qsoft.wmp.services.rest.ConsultaResource; +import com.qsoft.wmp.services.xsd.EntradaAccion; +import com.qsoft.wmp.services.xsd.EntradaConsulta; +import com.qsoft.wmp.services.xsd.SalidaConsulta; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * @author james + */ +public class Tester { + + public static void main(String[] args) throws IOException { + System.out.println("TEST " + DominioConstantes.getDateTime()); + testAccionService(); + } + + public static void testConsultaService() throws IOException { + ObjectMapper maper = new ObjectMapper(); + EntradaConsulta entrada = new EntradaConsulta(); + entrada.getBodyIn().setTipoConsulta(1); + entrada.getBodyIn().setEntidad(EntidadEnum.Liquidacion.name()); + + LiquidacionDTO ld = new LiquidacionDTO(); + List documentos = new ArrayList<>(); + List estados = new ArrayList<>(); + documentos.add(new DocumentoDTO()); + estados.add(new EstadoLiquidacionDTO()); + ld.setDocumentos(documentos); + ld.setEstados(estados); + Map parametros = new HashMap<>(); + parametros.put(EntidadEnum.Liquidacion.name(), ld); + + entrada.getBodyIn().setParametros(parametros); + String s = maper.writeValueAsString(entrada); + System.out.println("JSON=> " + s); + + ConsultaResource cr = new ConsultaResource(); + System.out.println("POSTING...."); + SalidaConsulta salida = cr.postJson(entrada); + System.out.println("Funciono???/ " + salida); + s = maper.writeValueAsString(salida); + System.out.println("JSON=> " + s); + } + + public static void testAccionService() throws IOException { + ObjectMapper maper = new ObjectMapper(); + EntradaAccion entrada = new EntradaAccion(); + entrada.getBodyIn().setTipoAccion(AccionGenerica.GUARDA); + entrada.getBodyIn().setEntidad(EntidadEnum.DetalleLiquidacion.name()); + List> entidades = new ArrayList<>(); + //TODO: agregar entidades + entrada.getBodyIn().setEntidades(entidades); + + String s = maper.writeValueAsString(entrada); + System.out.println("JSON=> " + s); + AccionResource ar = new AccionResource(); + System.out.println("POSTING...."); + List data = new ArrayList<>(); + PolizaDTO pol = new PolizaDTO(); + pol.setDetTipoIdentificacion(3); + pol.setPerCedulaTitular("1715060073"); + pol.setDetModalidad(25); + pol.setDetPeriodicidad(17200); + pol.setDetFormaPago(23516); + pol.setDetIfi(17205); + pol.setDetSucursalIfi(23484); + pol.setDetPromocion(23584); + pol.setDetTipoCuenta(17187); + pol.setEmpCodigo(2); + pol.setCedulaDebito("1715060012"); + pol.setCuentaDebito("123456789"); + pol.setPolBroker("Asesor CPN"); + + data.add(pol); + + s = maper.writeValueAsString(data); + System.out.println("JSON=> " + s); +// SalidaAccion salida = ar.postJson(entrada); +// System.out.println("Funciono??? " + salida); +// s = maper.writeValueAsString(salida); +// System.out.println("JSON=> " + s); + } + +} diff --git a/src/test/java/com/qsoft/test/testJson.json b/src/test/java/com/qsoft/test/testJson.json new file mode 100644 index 0000000..b0ecf0b --- /dev/null +++ b/src/test/java/com/qsoft/test/testJson.json @@ -0,0 +1,23 @@ +{ + "headerIn": { + "dispositivo": "WeLaptop", + "canal": null, + "medio": null, + "aplicacion": "WeMedicalProV1.0", + "tipoTransaccion": "0101000", + "usuario": "james", + "uuid": "7cbec0b8ec642ddbd7b9b24a35e39b70938d", + "fechaHora": null, + "idioma": null, + "empresa": null, + "geolocalizacion": null + }, + "bodyIn": { + "maximoRegistros": 10, + "tipoConsulta": 1, + "entidad": "Empresa", + "parametros": { + "tipoNemonico": "COMERC" + } + } +} \ No newline at end of file