Giter Site home page Giter Site logo

Comments (22)

czarcj avatar czarcj commented on August 17, 2024 1

@turbinux @danielfigueroaj Estoy haciendo pruebas modificando algunas cosas de la libreria, al parecer estoy viendo la forma de no hacer instanciacion de la clase Object Factory de la ruta mx.bigdata.sat.common.Pagos, para utilizar el mismo Object Factory que se encuentra en complementos, ademas para utilizar los mismos catalogos del Comprobante general dentro de los pagos, y no estar utilizando diferentes catalogos tal como CMoneda y CMonedaPago o CMetodoPago y CMetodoPagoPago.

Esto haria la vida mas sencilla para los implementadores, si mis pruebas son exitosas comparto el jar con un ejemplo para generar comprobante de pagos.
Saludos

from factura-electronica.

mario-mtz avatar mario-mtz commented on August 17, 2024 1

Hola @jalgaba
Efectivamente revise la versión 3.3 y ya tiene los cambios que menciona @dpacanins .
Ya lo compile y lo tengo como dependencia en mi proyecto, funciona sin problema y mis pruebas para generación de complemento de pago me timbran bien. Te agradezco la respuesta.

Saludos

from factura-electronica.

turbinux avatar turbinux commented on August 17, 2024

Hola, a mi me sale el mismo error, lamento no poder ayudar, sigo viendo si puedo corregirlo. revise el codigo fuente y todo parece estar bien. no se que pueda estar fallando. Saludos.

from factura-electronica.

turbinux avatar turbinux commented on August 17, 2024

Ok, creo que encontre el problema, al generar el comprobante con pagos se necesita incluir el contexto de los pagos al mandar llamar al constructor:

CFDv33 cfd = new CFDv33(comp,"mx.bigdata.sat.common.pagos.schema");

despues de eso, ya no sale el error de JAXB, espero esto ayude.

Saludos

from factura-electronica.

danielfigueroaj avatar danielfigueroaj commented on August 17, 2024

@czarcj podrias compartirme el ejemplo completo de como armas el complemento?

from factura-electronica.

danielfigueroaj avatar danielfigueroaj commented on August 17, 2024

@turbinux Si uso la linea:

CFDv33 cfd = new CFDv33(comp,"mx.bigdata.sat.common.pagos.schema");

Obtengo este mensaje:

Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 3 counts of IllegalAnnotationExceptions
Two classes have the same XML type name "{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_TipoFactor". Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at mx.bigdata.sat.cfdi.v33.schema.CTipoFactor
at protected mx.bigdata.sat.cfdi.v33.schema.CTipoFactor mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos$Traslados$Traslado.tipoFactor
at mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos$Traslados$Traslado
at protected java.util.List mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos$Traslados.traslado
at mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos$Traslados
at protected mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos$Traslados mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos.traslados
at mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos
at protected mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto$Impuestos mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto.impuestos
at mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos$Concepto
at protected java.util.List mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos.concepto
at mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos
at public mx.bigdata.sat.cfdi.v33.schema.Comprobante$Conceptos mx.bigdata.sat.cfdi.v33.schema.ObjectFactory.createComprobanteConceptos()
at mx.bigdata.sat.cfdi.v33.schema.ObjectFactory

alguna idea?

from factura-electronica.

turbinux avatar turbinux commented on August 17, 2024

Si, yo tuve el mismo error, me di cuenta que fue corregido en la ultima version de la libreria, intenta con este jar:

https://drive.google.com/file/d/1eJ1_Erb-OBLSI7MmxcaP_MjflW4owqn-/view

vas a tener que cambiar algunos de los objetos como... MonedaPago

from factura-electronica.

danielfigueroaj avatar danielfigueroaj commented on August 17, 2024

Gracias, voy a probar con tu jar. La version que tengo le hice checkout a mediados de julio y empece a timbrar a principios de agosto, pero hace 1 semana me pidieron implementar Pagos, a ver si no me mueve mucho lo que ya tengo jejeje

Saludos, gracias

from factura-electronica.

czarcj avatar czarcj commented on August 17, 2024

@turbinux Muchas gracias por la informacion para agregar la linea
CFDv33 cfd = new CFDv33(comp,"mx.bigdata.sat.common.pagos.schema");
Al parecer ya funcionó la generación del comprobante, unicamente falta hacer pruebas con el pac para validar que me lo certifique correctamente.

Por cierto, el SAT dio prorroga hasta el 31 de Dic, por si tienen que hacer sus proyectos tengan un poco mas de tiempo.

Saludos

from factura-electronica.

czarcj avatar czarcj commented on August 17, 2024

@danielfigueroaj Te comparto el codigo como lo estoy generando:

public static Comprobante createComprobante() throws Exception {
ObjectFactory of = new ObjectFactory();
Comprobante comp = of.createComprobante();
comp.setVersion("3.3");
comp.setSerie("P");
comp.setFolio("12345");
comp.setFecha(DatatypeFactory.newInstance().newXMLGregorianCalendar(2017, 11, 10, 0, 0, 0, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED));
comp.setTotal(new BigDecimal("0"));
comp.setSubTotal(new BigDecimal("0"));
comp.setMoneda(CMoneda.XXX);
comp.setTipoDeComprobante(CTipoDeComprobante.P);
comp.setLugarExpedicion("03240");
comp.setEmisor(createEmisor(of));
comp.setReceptor(createReceptor(of));
comp.setConceptos(createConceptos(of));
Complemento cm = of.createComprobanteComplemento();
cm.getAny().add(createPagos(of));
comp.getComplemento().add(cm);
return comp;
}

private static Pagos createPagos(ObjectFactory of) throws Exception{
Pagos pgs = of.createPagos();
Pagos.Pago pg = of.createPagosPago();
Pagos.Pago.DoctoRelacionado d = of.createPagosPagoDoctoRelacionado();
pgs.setVersion("1.0");
pg.setFechaPago(DatatypeFactory.newInstance().newXMLGregorianCalendar(2017, 11, 10, 0, 0, 0, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED));
pg.setFormaDePagoP("03");
pg.setMonedaP(CMoneda.MXN);
pg.setMonto(new BigDecimal("11600"));
d.setIdDocumento("5201CB31-9C12-49CC-BF94-3F05AF07DAB1");
d.setMonedaDR(CMoneda.MXN);
d.setMetodoDePagoDR(CMetodoPago.PPD);
d.setNumParcialidad(BigInteger.ONE);
d.setImpSaldoAnt(new BigDecimal("11600.00"));
d.setImpPagado(new BigDecimal("11600.00"));
d.setImpSaldoInsoluto(BigDecimal.ZERO);
pg.getDoctoRelacionado().add(d);
pgs.getPago().add(pg);
return pgs;
}

Espero que este fragmento de codigo sea de tu ayuda

from factura-electronica.

danielfigueroaj avatar danielfigueroaj commented on August 17, 2024

@czarcj eso estaria genial, lo que ayuda un poco es que no hay muchos atributos en el nodo pagos y construirlo como esta ahorita no es tan tan complicado, pero si se puede optimizar eso, como dices, nos ayudaria muchisimo a todos.

Gracias por tu codigo, ya habia logrado armar tambien mis objetos para el complemento basandome en lo que pusiste en tu post inicial.

Estaria bien tambien incluir en Examples del proyecto, la forma de generar un comprobante con complemento

from factura-electronica.

hortegag91 avatar hortegag91 commented on August 17, 2024

@czarcj , ten cuidado con ese detalle, ya que JAXB no te permite usar el mismo catálogo en 2 lugares distintos, no se si por convicción de JAXB o si sea con cualquier librería.
De hecho si te fijas en el error, dice: "Two classes have the same XML type", debido a esto se tuvieron que separar algunos catálogos (se modificó el XSD del SAT apra agregarle dichos catálogos y que no marcara este error)
Si logras unificarlo sin que JAXB falle, el cambio es bienvenido.

from factura-electronica.

dpacanins avatar dpacanins commented on August 17, 2024

Buenas tardes, estoy utilizando la version del jar que publicaron en la url que" turbinux commented on Nov 23" publico y me manda el siguiente error:

Exception in thread "Thread-6" java.lang.NoClassDefFoundError: mx/bigdata/sat/cfdi/v33/schema/ObjectFactory
at virtualinvoice.model.provider.ProviderCFDv33.toComprobante(ProviderCFDv33.java:48)
at virtualinvoice.model.factory.CFDProviderFactory.getCFDv33(CFDProviderFactory.java:119)
at virtualinvoice.model.factory.CFDProviderFactory.getCFD(CFDProviderFactory.java:38)
at virtualinvoice.model.InvoiceBO.generateCFD(InvoiceBO.java:223)
at virtualinvoice.model.InvoiceBO.processInvoices(InvoiceBO.java:150)
at virtualinvoice.model.ProcessDispatcher.process(ProcessDispatcher.java:92)
at virtualinvoice.model.ProcessRunnable.run(ProcessRunnable.java:24)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: mx.bigdata.sat.cfdi.v33.schema.ObjectFactory
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)

Agradeceria su apoyo

from factura-electronica.

czarcj avatar czarcj commented on August 17, 2024

Hola a todos, anteriormente comente que estaba trabajando en una version modificada del jar para utilizar un solo object factory para el complemento de pagos. Les comparto el link de descarga y dentro del zip viene el ejemplo de como utilizarlo. Ya hice pruebas con mi PAC y todo funciona correctamente.

https://www.dropbox.com/s/3zowwufksy67fiv/cfdi-base-0.3.0-bin.zip?dl=0

@dpacanins espero que sea de tu apoyo esta version de la libreria.

P.D como soy nuevo con Git no supe como hacer una copia de los archivos fuente para poder integrarlos a la pagina del proyecto.

from factura-electronica.

dpacanins avatar dpacanins commented on August 17, 2024

Gracias czarcj

ya estoy urtilizando el jar que compartiste e instancie el "ObjectFactory" como lo indicas en tu ejemplo y me sigue enviando el mismo error

Exception in thread "Thread-6" java.lang.NoClassDefFoundError: mx/bigdata/sat/cfdi/v33/schema/ObjectFactory
at virtualinvoice.model.provider.ProviderCFDv33.toComprobante(ProviderCFDv33.java:61)

agradezco tu apoyo y felices fiestas

from factura-electronica.

czarcj avatar czarcj commented on August 17, 2024

@dpacanins Revisa que tengas integrados todos los jars de las dependencias en tu proyecto, en las clases donde usas la libreria, tengas todos los imports (como en los ejemplos) y que estes utilizando una version de java 1.7+. Te recomiendo que hagas una prueba en seco de la libreria que te mande o de la de turbinux en un proyecto nuevo y pruebes que no sea algo de tu java.

Saludos y felices fiestas

from factura-electronica.

dpacanins avatar dpacanins commented on August 17, 2024

Hola @czarcj ya realice la prueba en seco como sugieres y no fallo, en el proyecto que tengo de CFDI ya revise que tuviera todos los import de las clases que estoy utilizando y no me hace falta ninguno, y me sigue enviando el mismo error:

Exception in thread "Thread-6" java.lang.NoClassDefFoundError: mx/bigdata/sat/cfdi/v33/schema/ObjectFactory
at virtualinvoice.model.provider.ProviderCFDv33.toComprobante(ProviderCFDv33.java:62)
at virtualinvoice.model.factory.CFDProviderFactory.getCFDv33(CFDProviderFactory.java:119)
at virtualinvoice.model.factory.CFDProviderFactory.getCFD(CFDProviderFactory.java:38)
at virtualinvoice.model.InvoiceBO.generateCFD(InvoiceBO.java:223)
at virtualinvoice.model.InvoiceBO.processInvoices(InvoiceBO.java:150)
at virtualinvoice.model.ProcessDispatcher.process(ProcessDispatcher.java:92)
at virtualinvoice.model.ProcessRunnable.run(ProcessRunnable.java:24)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: mx.bigdata.sat.cfdi.v33.schema.ObjectFactory
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
... 8 more

tengo la version 1.7 de java y netbeans 8.0.2

from factura-electronica.

dpacanins avatar dpacanins commented on August 17, 2024

buen dia @czarcj

estoy utilizando la libreria que pusiste a disposicion más arriba, pero al momento de trabajar con complementos detallista al momento de compilar me envia el mensaje de error

El complemento mx.bigdata.sat.common.detallista.schema.Detallista@3239745d aún no ha sido declarado.

que es un mensaje de error del metodo "private String getSchemaLocation() throws Exception " el CFDI en la clase"public final class CFDv33 implements CFDI33 "

es aqui:

if (c instanceof mx.bigdata.sat.cfdi.schema.TimbreFiscalDigital) {
schema += " http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd";
addNamespace("http://www.sat.gob.mx/TimbreFiscalDigital", "tfd");
} else if (c instanceof mx.bigdata.sat.common.nomina.v12.schema.Nomina) {
schema += " http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd";
addNamespace("http://www.sat.gob.mx/nomina12", "nomina12");
} else if (c instanceof mx.bigdata.sat.common.implocal.schema.ImpuestosLocales) {
schema += " http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd";
addNamespace("http://www.sat.gob.mx/implocal", "implocal");
} else if (c instanceof mx.bigdata.sat.common.pagos.schema.Pagos) {
schema += " http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd";
addNamespace("http://www.sat.gob.mx/Pagos", "pago10");
} else {
System.out.println("El complemento " + c + " aún no ha sido declarado.");
}

La version que compartiste no trae este esquema integrado en la validación y es por eso que da ese error, ya revise la version que esta disponible en el Git en ambos branch´s y tampoco la integran, ademas la version que tu publicaste es la que me funciono, te queria pedir de favor si podrias integrar este esquema al metodo mencionado o pasarme el proyecto para integrar las lineas y compilarlo.

ahora si lo que tu decidas

saludos

from factura-electronica.

dpacanins avatar dpacanins commented on August 17, 2024

Buen dia @turbinux

oye hace una hora postie esto:

buen dia @czarcj

estoy utilizando la libreria que pusiste a disposicion más arriba, pero al momento de trabajar con complementos detallista al momento de compilar me envia el mensaje de error

El complemento mx.bigdata.sat.common.detallista.schema.Detallista@3239745d aún no ha sido declarado.

que es un mensaje de error del metodo "private String getSchemaLocation() throws Exception " el CFDI en la clase"public final class CFDv33 implements CFDI33 "

es aqui:

if (c instanceof mx.bigdata.sat.cfdi.schema.TimbreFiscalDigital) {
schema += " http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd";
addNamespace("http://www.sat.gob.mx/TimbreFiscalDigital", "tfd");
} else if (c instanceof mx.bigdata.sat.common.nomina.v12.schema.Nomina) {
schema += " http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd";
addNamespace("http://www.sat.gob.mx/nomina12", "nomina12");
} else if (c instanceof mx.bigdata.sat.common.implocal.schema.ImpuestosLocales) {
schema += " http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd";
addNamespace("http://www.sat.gob.mx/implocal", "implocal");
} else if (c instanceof mx.bigdata.sat.common.pagos.schema.Pagos) {
schema += " http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd";
addNamespace("http://www.sat.gob.mx/Pagos", "pago10");
} else {
System.out.println("El complemento " + c + " aún no ha sido declarado.");
}

La version que compartiste no trae este esquema integrado en la validación y es por eso que da ese error, ya revise la version que esta disponible en el Git en ambos branch´s y tampoco la integran, ademas la version que tu publicaste es la que me funciono, te queria pedir de favor si podrias integrar este esquema al metodo mencionado o pasarme el proyecto para integrar las lineas y compilarlo.

ahora si lo que tu decidas

no se si me puedas ayudar a agregar esta validacion en tu jar que compartiste de la API mas arriba y que pusiste a disposición

saludos

from factura-electronica.

mario-mtz avatar mario-mtz commented on August 17, 2024

Que tal chicos, @czarcj @dpacanins podría alguno compartir el jar o el proyecto para usarlo con java 1.8 por favor? El enlace de dropbox esta caído.

Saludos

from factura-electronica.

jalgaba avatar jalgaba commented on August 17, 2024

@mario-mtz Este repositorio parece ya estar descontinuado, el nuevo es este:
https://github.com/GrupoCorasa/factura-electronica
Ahí busca la liga que dice: "Descarga la última versión de las librerías" o igual lo puedes encontrar en el repositorio central http://mvnrepository.com/artifact/mx.grupocorasa.cfdi/cfdi-base/3.3.2
Aun si hubiera estado funcionando esa liga de dropbox, yo no recomendaría instalar el jar nomás así, ya que tiene otras dependencias (p.e. jaxb), así que a menos que quieras que te arroje un fabuloso java.lang.NoClassDefFoundError recomendaría usar un administrador de dependencias como maven, Apache Ivy, Gradle, etc.

¿O acaso necesitas la versión específica de @czarcj ? en cuyo caso creo que sería mejor preguntarle a @hortegag91 si este problema ya está arreglado en el nuevo repositorio.

Saludos.

from factura-electronica.

hortegag91 avatar hortegag91 commented on August 17, 2024

Asi es, este repo ha dejado de tener mantenimiento, el nuevo es el que comenta @jalgaba , actualmente ese repo debería funcionar de manera completa y sin problemas, actualmente lo usamos en varios proyectos.
Si tuvieran cualquier inconveniente les agradecería si pudieran levantar un issue en ese repo.
Saludos.

from factura-electronica.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.