bigdata-mx / factura-electronica

Librería de componentes Java para el desarrollo de aplicaciones de Factura Electrónica (CFDI)
Apache License 2.0
94 stars 107 forks source link

Error al crear xml de complemento de pago #204

Closed Richanixon100 closed 3 years ago

Richanixon100 commented 3 years ago

Hola, tengo el siguien error que me causa al querer hacer el xml de complemento de pago Captura

vi en un post que funciona renombrar el nombre del xmltype, pero no me ah funcionado, los errores como se muestra en la imagen son de 3, de la clase CMoneda, CMetodoPago y CTipoFactor

Richanixon100 commented 3 years ago

Ya lo pude resolver, al parecer tenía que renombrar el xmltype pero de las clases donde se encuentra comprobante. Ahora tengo otro problema con el xml que es que en vez de ns2 tiene que aparecer pagos10 image

rafavelar commented 3 years ago

Que tal amigo.

No se si sea la forma adecuada de resolverlo pero lo que yo hice fue lo siguiente:

En la clase mx.bigdata.sat.cfdi.CFDv33.java agrega estos dos strings al array XSD:

"/xsd/common/catPagos.xsd",
 "/xsd/common/Pagos/Pagos10.xsd",

Después en el método getSchemaLocation() agrega este if:

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");
          }

Y por ultimo, ya en el proyecto donde estas creando el CFDI crea el comprobante pasandole un array donde le indiques que usaras el complemento de pagos:

arrayStringComplementos = new String[1];
arrayStringComplementos[0] = "mx.bigdata.sat.common.pagos.schema";
cfdi = new CFDv33(c, arrayStringComplementos);

Espero te sirva.

Richanixon100 commented 3 years ago

Que tal amigo.

No se si sea la forma adecuada de resolverlo pero lo que yo hice fue lo siguiente:

En la clase mx.bigdata.sat.cfdi.CFDv33.java agrega estos dos strings al array XSD:

"/xsd/common/catPagos.xsd",
 "/xsd/common/Pagos/Pagos10.xsd",

Después en el método getSchemaLocation() agrega este if:

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");
          }

Y por ultimo, ya en el proyecto donde estas creando el CFDI crea el comprobante pasandole un array donde le indiques que usaras el complemento de pagos:

arrayStringComplementos = new String[1];
arrayStringComplementos[0] = "mx.bigdata.sat.common.pagos.schema";
cfdi = new CFDv33(c, arrayStringComplementos);

Espero te sirva.

mx.bigdata.sat.cfdi.CFDv33.java, ¿Dónde se encuentra esta clase o cual es esta clase?

rafavelar commented 3 years ago

Tienes que pasarte a la rama version33

El día 24 de noviembre de 2020 a las 9:37:28, Richanixon100 (notifications@github.com(mailto:notifications@github.com)) escrito:

Que tal amigo.

No se si sea la forma adecuada de resolverlo pero lo que yo hice fue lo siguiente:

En la clase mx.bigdata.sat.cfdi.CFDv33.java agrega estos dos strings al array XSD:

"/xsd/common/catPagos.xsd", "/xsd/common/Pagos/Pagos10.xsd",

Después en el método getSchemaLocation() agrega este if:

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"); }

Y por ultimo, ya en el proyecto donde estas creando el CFDI crea el comprobante pasandole un array donde le indiques que usaras el complemento de pagos:

arrayStringComplementos = new String[1]; arrayStringComplementos[0] = "mx.bigdata.sat.common.pagos.schema"; cfdi = new CFDv33(c, arrayStringComplementos);

Espero te sirva.

mx.bigdata.sat.cfdi.CFDv33.java, ¿Dónde se encuentra esta clase o cual es esta clase?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub(https://github.com/bigdata-mx/factura-electronica/issues/204#issuecomment-733054187), or unsubscribe(https://github.com/notifications/unsubscribe-auth/AEYD7RYK6ZSVXSDDVRMIJA3SRPHLRANCNFSM4T7YE4DA).

Richanixon100 commented 3 years ago

Tienes que pasarte a la rama version33 El día 24 de noviembre de 2020 a las 9:37:28, Richanixon100 (notifications@github.com(mailto:notifications@github.com)) escrito:

Que tal amigo. > > > No se si sea la forma adecuada de resolverlo pero lo que yo hice fue lo siguiente: > > > En la clase mx.bigdata.sat.cfdi.CFDv33.java agrega estos dos strings al array XSD: > > "/xsd/common/catPagos.xsd", "/xsd/common/Pagos/Pagos10.xsd", > > > Después en el método getSchemaLocation() agrega este if: > > 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"); } > > > Y por ultimo, ya en el proyecto donde estas creando el CFDI crea el comprobante pasandole un array donde le indiques que usaras el complemento de pagos: > > arrayStringComplementos = new String[1]; arrayStringComplementos[0] = "mx.bigdata.sat.common.pagos.schema"; cfdi = new CFDv33(c, arrayStringComplementos); > > > Espero te sirva. > mx.bigdata.sat.cfdi.CFDv33.java, ¿Dónde se encuentra esta clase o cual es esta clase? — You are receiving this because you commented. Reply to this email directly, view it on GitHub(#204 (comment)), or unsubscribe(https://github.com/notifications/unsubscribe-auth/AEYD7RYK6ZSVXSDDVRMIJA3SRPHLRANCNFSM4T7YE4DA).

Entonces al generar las clases de java del cfdi también arroja esa clase??

Richanixon100 commented 3 years ago

Ya quedó solucionado, solo tenía que agregar al xsd como digiste. Gracias