Skip to content

Releases: phpcfdi/cfdi-cleaner

Versión 1.4.0

24 Jul 20:31

Choose a tag to compare

Se agrega una nueva característica:

  • Se agrega un nuevo limpiador RebuildDocument que reconstruye el documento a partir de uno original,
    especificando de forma correcta el prefijo de los espacios de nombres registrados en el SAT y el
    espacio de nombres http://www.w3.org/2001/XMLSchema-instance.
  • Se asegura que la herramienta funciona en PHP 8.4.

Se hacen las siguientes correcciones:

  • Se mejora el código interno de RenameElementAddPrefix#cleanElement() para una mejor comprensión,
    además de eliminar una comparación superflua. Gracias PHPStan.
  • Se hacen más correcciones menores para satisfacer el análisis de PHPStan.

Se hacen los siguientes cambios al entorno de desarrollo:

  • Se agrega PHP 8.4 a la matrix de pruebas.
  • Se ejecutan los trabajos de los flujos de trabajo de GitHub en PHP 8.4.
  • Se actualiza la integración con SonarQube Cloud.
  • Se actualizan las herramientas de desarrollo.

Versión 1.3.4

07 Oct 16:37
1d3f3c7

Choose a tag to compare

Se hacen las siguientes correcciones:

  • Se corrige la ubicación del XSD del complemento "Enajenaciones de acciones" para Retenciones e información de pagos.
  • Se corrige la el espacio de nombres del complemento "Pagos a extranjeros" para Retenciones e información de pagos.
  • El limpiador de Addenda incluye también los CFDI de Retenciones e información de pagos.

Se hacen los siguientes cambios al entorno de desarrollo:

  • En el flujo de trabajo build en el trabajo tests se usa la variable php-version en singular.
  • En el flujo de trabajo coverage en el trabajo test-coverage se usa mejora el título.
  • Se actualizan las herramientas de desarrollo.

Versión 1.3.3

21 Jun 17:49
46b5e9d

Choose a tag to compare

Se agrega Complemento de Carta Porte 3.1 a la lista de espacio de nombres conocidos.

Se hacen los siguientes cambios al entorno de desarrollo:

  • Se agrega a las herramientas de desarrollo composer-normalize:
    • Se agrega a los scripts de desarrollo de composer en dev:check-style y dev:fix-style.
    • Se agrega al flujo de trabajo de integración contínua.
    • Se normaliza el archivo composer.json.
  • Se aplicó en los flujos de trabajo:
    • Se actualizan las acciones de GitHub a la versión 4.
    • Se permite la ejecución de los flujos de trabajo manualmente.
  • Se excluye test/_files de la detección de lenguajes de GitHub.
  • Se actualizan las herramientas de desarrollo.

Versión 1.3.2

16 Jan 06:01

Choose a tag to compare

  • Se agrega Comercio Exterior 2.0 a la lista de espacio de nombres conocidos.
  • Se actualiza el año de licencia.
  • Se corrige la liga al proyecto en el archivo CONTRIBUTING.md.
  • Se corrige el correo de comunicación en CODE_OF_CONDUCT.md.
  • Se aplicó en los flujos de trabajo:
    • Se incluye PHP 8.3 a la matriz de pruebas.
    • Ejecutar todo en PHP 8.3.
  • Se actualizan las herramientas de desarrollo.
  • Se corrigen algunas partes de código marcadas por SonarCloud

Versión 1.3.1

22 Oct 23:20
bbecc9b

Choose a tag to compare

  • Se agrega Carta Porte 3.0 a la lista de espacio de nombres conocidos.

Mantenimiento 2023-10-22

  • Se corrige la configuración de PHP-CS-Fixer.
  • Se corrigen las exclusiones de archivos para SonarCloud.
  • Se actualizan las herramientas de desarrollo.

Versión 1.3.0

22 Dec 06:23
01ca528

Choose a tag to compare

Se agrega la opción de excluir limpiadores específicos por nombre de clase.
En futuras versiones se implementará una mejor manera de manejar estas exclusiones.
La implementación actual no genera cambios que rompan la compatibilidad y requieran una versión mayor.

Versión 1.2.4

22 Jun 00:45
5ee35eb

Choose a tag to compare

Se corrigen los limpiadores RemoveAddenda y CollapseComplemento porque no estaban actuando sobre CFDI 4.0.
Gracias @luffynando.

El problema de fondo es que la clase Cfdi3XPath solo actuaba sobre el XML namespace http://www.sat.gob.mx/cfd/3
y nunca sobre http://www.sat.gob.mx/cfd/4. En la corrección se renombra la clase interna Cfdi3XPath a CfdiXPath
y esta clase actúa sobre el XML namespace del nodo principal siempre que sea http://www.sat.gob.mx/cfd/3
y http://www.sat.gob.mx/cfd/4.

Se refactoriza internamente la clase CfdiXPath y ahora incluye un método querySchemaLocations.

Se actualizan las librerías de desarrollo y el estilo de código. Siendo lo más importante la actualización de
PHPStan 1.7.15 que lleva a múltiples definiciones de tipos.

Se actualizan los flujos de trabajo de GitHub para usar PHP 8.1 y las acciones de GitHub en versión 3.

Versión 1.2.3

04 May 16:35
3b9ea47

Choose a tag to compare

La limpieza de CFDI grandes tardaba mucho tiempo en el limpiador RemoveUnusedNamespaces.

Se optimizó para que el resultado de la llamada al método privado isPrefixedNamespaceOnUse (método puro) fuera almacenado en caché y así evitar hacer consultas XPath innecesarias.

Después de la optimización, la ejecución de limpieza en un CFDI con más de 2500 conceptos pasó de 180 segundos a menos de 0.5 segundos.

Versión 1.2.2

27 Apr 02:29
e278065

Choose a tag to compare

Se modifica el limpiador XmlNsSchemaLocation para que la limpieza se realice a nivel elemento XML.
Si no existe un atributo xsi:schemaLocation entonces el atributo xmlns:schemaLocation es renombrado.
Si ya existe un atributo xsi:schemaLocation entonces el atributo xmlns:schemaLocation es eliminado.
Esta modificación cierra el issue #13.

Versión 1.2.1

21 Mar 23:15
0255987

Choose a tag to compare

Se agrega la definición del espacio de nombres de Ingresos de Hidrocarburos 1.0 a SetKnownSchemaLocations.
Con esta actualización se corrige el proceso de integración continua.

Se corrige el estilo de código:

  • Se modifican los textos HEREDOC usados como argumentos de funciones.
  • Se actualiza php-cs-fixer de 3.6.0 a 3.8.0.