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

Permitir caracteres ( ) . #170

Closed franciscomontiel closed 7 years ago

franciscomontiel commented 7 years ago

Hola, estoy usando la branch 3.3 pero al momento de "crear" un CFDv33 marca error en lo siguiente:

'EMPRESA S.A DE C.V.' is not facet-valid with respect to pattern '([A-Z]|[a-z]|[0-9]| |Ñ|ñ|!|"|%|&|'|´|-|:|;|>|=|<|@|_|,|{|}|`|~|á|é|í|ó|ú|Á|É|Í|Ó|Ú|ü|Ü){1,254}' for type '#AnonType_NombreReceptorComprobante'.

Sospecho que el tipo AnonType_NombreReceptorComprobante tiene que cumplir el patrón, pero la factura es válida aún con los ' . ' puntos en el Nombre Receptor Comprobante, intenté aceptar más caracteres pero no encontré la clase en la que se define ese patrón.

También en los conceptos es un patrón similar y en este caso no permite leer paréntesis:

'ConceptoX - Operaciones(2)' is not facet-valid with respect to pattern '([A-Z]|[a-z]|[0-9]| |Ñ|ñ|!|"|%|&|'|´|-|:|;|>|=|<|@|_|,|{|}|`|~|á|é|í|ó|ú|Á|É|Í|Ó|Ú|ü|Ü){1,1000}' for type '#AnonType_DescripcionConceptoConceptosComprobante'

Alguien sabe dónde puedo cambiar esos patrones? Muchas gracias! PD. al eliminar los caracteres funciona bien.

camarillo commented 7 years ago

Hola @franciscomontiel si cambias los patrones para que pase, el PAC te lo va a rechazar por que aplica las mismas reglas.

franciscomontiel commented 7 years ago

Buen día @camarillo , gracias por tu respuesta, ya entiendo porque estan esos patrones, pero me interesa sólo validar el CFDI, es decir que supuestamente ya fue generado y sellado en otro PAC y fue válido (en esta ocasión estoy hablando de la nueva página para generar facturas del SAT) . Me interesa mucho cambiar el patron porque la factura ya esta hecha en otro sistema y sellada(SAT) y quiero armar el objeto CFD33 para validar el sello, gracias!

camarillo commented 7 years ago

Tendrias que cambiar el pattern en el XSD directamente factura-electronica/src/main/resources/xsd/v33/cfdv33.xsd

hortegag91 commented 7 years ago

@franciscomontiel , te recomiendo no tocar estos archivos, pues son literalmente los estandares definidos por el SAT, por lo que al modificar estos datos (y aún más al tratarse de las expresiones regulares) estaríamos incumpliendo con lo estipulado por el SAT. Repito, recomiendo no modificar estos archivos, pero si aún quisieras hacerlo bajo tu riesgo, efectivamente son los archivos que @camarillo te indicó.

franciscomontiel commented 7 years ago

Ya veo... suena lógico, pero eso significa que las facturas con el NombreReceptorComprobante con algún punto '.' son inválidas? Casi todas las facturas que estoy recibiendo tienen los nombres de las empresas con algun punto ej:

Empresa S.A. de C.V.

Y están siendo generadas por el software gratuito de la página del SAT, también en los "conceptos", los paréntesis ya vienen de allá...

Venta de artículo 1 (en estado usado) por x razon.

Sería válido decir que son inválidas por el patrón? y decirle a personas interesadas en validar sus CFDIs que si no cumple el patrón no tienen validez? tal vez el software del SAT usa otro patrón para firmar y sellar los cfdis? Este comportamiento, debería reportarse en algún lado?

Muchas gracias por las respuestas!

hortegag91 commented 7 years ago

En teoría así es, hace unos minutos que te respondí la verdad lo hice "apurado" por lo que te pido una disculpa. Revisando esto con más calma, me doy cuenta que en el XSD no tiene ese patrón. `

Atributo opcional para precisar el nombre, denominación o razón social del contribuyente receptor del comprobante. ` Asumo que los errores los copiaste textualmente como te los lanzó la librería. Podrías enviarnos el XML completo para revisarlo a detalle? No entiendo porqué marcaría ese error. Saludos
franciscomontiel commented 7 years ago

Te refieres al XML de la factura? Anexo en formato TXT, cambiar a XML, no me dejaba subirlo directamente.

Copia1.txt

Pudiera ser porque no compile bien el jar de la versión 3.3? Como mencionaban en otro Issue, el jar no se encuentra el repositorio central, así que es necesario compilarlo, podría hacer la prueba con un jar que alguien tenga funcionando? Gracias!

camarillo commented 7 years ago

Según yo si esta en el XSD el pattern en la parte del nombre en la rama version33:

`

Atributo opcional para precisar el nombre, denominación o razón social del contribuyente receptor del comprobante. ` Saludos
hortegag91 commented 7 years ago

Uff.. super error de primaria, jaja, tienes razón @camarillo , yo estaba consultando el branch principal y no el de version33, Efectivamente si trae una expresión regular, y como antes mencione, te recomiendo que bajo ninguna circunstancia modifiques esto.