commit 6f669ebb7604aaa94af4e18a0cdcfe83889e3883 Author: james Date: Tue Jun 23 09:27:09 2020 -0500 Cambios para notificacion 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 0000000..34c92ef Binary files /dev/null and b/src/main/resources/publico/acdcb.jpg differ 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