CfdiUtils Versions Save

PHP Common utilities for Mexican CFDI 3.2, 3.3 & 4.0

v2.28.1

1 month ago
  • Allow dependency on symfony/process branch 7.x.
  • Migrate GitHub actions to version 4.

v2.28.0

2 months ago
  • Deprecate CfdiUtils\Utils\Crp20277Fixer since SAT changed the rule CRP20277.
  • Fix code style (use same case for XsltProcessor).
  • Run GitHub jobs using PHP 8.3.

v2.27.1

3 months ago
  • Add Complemento Comercio Exterior 2.0 documentation.
  • Fix CHANGELOG for 2.26.0: it say that CCE had version 3.0 when it was 2.0.

Note: Release as a minor change to include the documentation on the package, but no "new feature" or "bug fix" is included.

v2.27.0

3 months ago

Add CfdiUtils\Utils\Crp20277Fixer to work with new rule CRP20277 (apply since 2024-01-15).

v2.26.0

3 months ago

Add CfdiUtils\Elements\Cce20 Elements to work with "Complemento de Comercio Exterior 2.0".

Extract logic to move SAT definitions to root element to a helper in order to use it on other creators:

  • Add SatNsDefinitionsMover helper.
  • Change CfdiCreatorTrait::moveSatDefinitionsToComprobante to use helper.
  • Add RetencionesCreatorTrait::moveSatDefinitionsToRetenciones.
  • Document samples using $creator->moveSatDefinitionsToRetenciones().
  • Fix tests sample files with sat definitions on root element.

v2.25.0

5 months ago

Add CfdiUtils\Elements\CartaPorte30 Elements to work with "Carta Porte 3.0". Thanks @alejandrogova1 for your contribution.

Other fixes:

  • Add CFDI 4.0 to mkdocs configuration file.
  • Fix .readthedocs.yaml configuration file.

v2.24.1

9 months ago

Fix calculator for complement Pagos 2.0. For attributes BaseP and ImporteP the value was truncated. Now, the value has to be rounded. Some vendors communicate this change, such as Finkok.

Improve calculator with new getter and setter for paymentTaxesPrecision and currencies.

Update code style as other PhpCfdi projects.

Set up PHPStan paths on configuration file.

v2.24.0

10 months ago

Add a calculator and writer for complement Pagos 2.0.

This tool takes a Pre-CFDI elements to write Pagos\Totales, Pagos\Pago[]\ImpuestosP and (if not found) Pagos\Pago[]@Monto. This feature is also documented.

Make SOAP extension requirement optional.

  • Add element helpers for complement Servicios parciales de construcción 1.0.
  • Add element helpers for complement Consumo de combustibles 1.1.
  • Add element helpers for complement Donatarias 1.1.
  • Add element helpers for complement Instituciones educativas privadas 1.0.
  • Add element helpers for complement INE 1.1.
  • Add element helpers for complement Leyendas Fiscales 1.0.
  • Add element helpers for complement Notarios Públicos 1.0.

Thanks @BlakePro for the initial work on these improvements.

Changes on development environment and documentation:

  • Move CFDI creation from 3.3 to 4.0.
  • Review all files and fix almost all typos and phrasing errors, thanks PhpStorm.
  • Add usage of phpcfdi/credentials.
  • Add support for PHP 8.2 on README.md
  • Remove GitHub code language detection on tests/assets/.
  • Update markdownlint-cli tool.
  • Fix issues found by markdownlint-cli.

v2.23.5

10 months ago
  • Fix SELLO04 false positives on CFDI 4.0.
    • If name is empty then status is error since it is mandatory.
    • If Persona Moral then status is none since it is not possible to compare names.
    • If Persona Física then status is ok when name is identical to certificate name.
  • Improve SUMAS07 explanation.
  • Fix PHPStan false positives.
  • Update license year.
  • Update php-cs-fixer configuration file.
  • Fix genkgo/xsl dependency version.
  • GitHub Workflow:
    • Add PHP 8.2 to test matrix.
    • Jobs run in PHP 8.2.
    • Remove development tools before install project dependencies.
  • Fix build badge.
  • When testing using Genkgo, ignore deprecation errors.
  • Replace utf8_decode calls with mb_convert_encoding.

v2.23.4

1 year ago

This is a maintenance release to fix the continuous integration workflow and append pending development changes.

  • Fix test CertificadoTest::testConstructWithValidExample() to allow quoted slashes on name.
  • Add phpdoc to the method Certificate::getCertificateName(). The value can contain quoted slashes \/ depending on the OpenSSL version.
  • Update script tests/validate.php to validate CFDI 3.3 or CFDI 4.0.
  • Add return types to some methods:
    • Status::comparableValue and Status::__toString.
    • Discoverer::discoverInFile.
  • Improve TestCase::installCertificate(): It doesn't depend on the certificate's file name to install correctly.
  • Update GitHub build workflow:
    • Update GH Workflows: Remove deprecated ::set-output & ::save-state.
    • Split full build actions to individual jobs.
    • Split Windows and Linux testing.