Closed velnae closed 1 year ago
Tengo el mismo error, no se muestra los errores
$factory = new CpeValidatorFactory(); $validator = $factory->create(__DIR__ . '/../Resources'); $name = '20480657323-01-FT01-56.xml'; $xml = file_get_contents(__DIR__ . '/../Resources/'.$name); $error = $validator->validateFromXml($name, $xml); return $error;
tengo el xsl bajado de SUNAT
Actualizacion, segun investigue, el XSL distribuido por SUNAT trabaja con sintaxis compatible de XPath 2.0 y 3.0 , pero la libreria nativa de php XSL
especificamente XSLTprocessor.php que usa Cpe-validator no soporta esa sintaxis 2.0 y 3.0 para transformar (validar) el XML de SUNAT. por lo que recomendaria usar una libreria de terceros para PHP en vez de la nativa.
a menos que me este equivocando y alguien aqui tenga otra solución.
No se puede usar directamente los archivos XSL que provee SUNAT, se tiene que hacer algunos ajustes, tambien existen funciones xslt que no soporta, se tuvo que reemplazar por funciones personalizadas en PHP. e.g.
Esto son los archivos XSL usados en BeatOSE beatose-xsl-rules.zip
Bueno, entonces personalmente yo recomendaría en usar librerías Xslt PHP de terceros que en mi caso me ayudó, sin hacer muchos cambios a los XSL de la SUNAT, lo q se puede mejorar en esta libreria cpe-validator es en el constructor del validador de XML , enviarle una interfaz de la herramienta a usar para validar, así usar el xsl de php u otro, según al preferencia del programador, implementando la interfaz, si deseas le hago un pull request para eso @giansalex
@velnae si, seria bueno tener otra alternativa, en aquel entonces no logre encontrar otra librería.
@velnae muchas gracias por el PR, lo estaré esperando 🥳
Hola @giansalex, en primer lugar agradecerte por todo el gran aporte que nos das en facturacion.
Mi consulta es respecto a los paquetes de validacion xml que encontre en Greenter
Y guiandome segun el README de los paquetes, los test y la documentacion que hay en https://fe-primer.greenter.dev/docs/validation/ he podido configurar el paquete para su funcionamiento de:
Sim embargo para los otros 2 paquetes he podido levantar correctamentes y cargar el path de los xsl modificados como indican en su manual en fe-primer.greentee.dev/docs/validation segun veo modificaste
<xsl:include href="../../../error/validate_utils.xsl" dp:ignore-multiple="yes"/>
pero al ejectuar ya sea desde cpe-validator o beatose no me reconoce los errores de XML.Pero probando con un XSL personalizado que encontre en un test de cpe-validator https://github.com/thegreenter/cpe-validator/blob/master/tests/Resources/2.X/ValidaExprRegFactura-2.0.1.xsl si funciona la validacion .
Tambien he probado con el binario "xsltproc" en Linux si me salen lo errores de validación del XML
Pero nuevamente en los paquetes cpe-validator o beatose no me muestran los errores, a pesar de cargar los XSL modificados, y revisando el codigo y depurando con XDEBUG se obtiene lo siguiente:
Se probo con el primer error que valida el XSL, que el ruc del nombre del archivo coincida con el que esta dentro del XML y no se obtuvo el error, se probo con mas errores y ninguno funciona en los paquetes, todo esto sin funciona con xsltproc si muestra los errores