PHP Common utilities for Mexican CFDI 3.2, 3.3 & 4.0
symfony/process
branch 7.x
.CfdiUtils\Utils\Crp20277Fixer
since SAT changed the rule CRP20277
.XsltProcessor
).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.
Add CfdiUtils\Utils\Crp20277Fixer
to work with new rule CRP20277
(apply since 2024-01-15).
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:
SatNsDefinitionsMover
helper.CfdiCreatorTrait::moveSatDefinitionsToComprobante
to use helper.RetencionesCreatorTrait::moveSatDefinitionsToRetenciones
.$creator->moveSatDefinitionsToRetenciones()
.Add CfdiUtils\Elements\CartaPorte30
Elements to work with "Carta Porte 3.0".
Thanks @alejandrogova1 for your contribution.
Other fixes:
mkdocs
configuration file..readthedocs.yaml
configuration file.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.
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.
Thanks @BlakePro for the initial work on these improvements.
Changes on development environment and documentation:
tests/assets/
.markdownlint-cli
tool.markdownlint-cli
.SELLO04
false positives on CFDI 4.0.
SUMAS07
explanation.php-cs-fixer
configuration file.genkgo/xsl
dependency version.utf8_decode
calls with mb_convert_encoding
.This is a maintenance release to fix the continuous integration workflow and append pending development changes.
CertificadoTest::testConstructWithValidExample()
to allow quoted slashes on name.Certificate::getCertificateName()
.
The value can contain quoted slashes \/
depending on the OpenSSL version.tests/validate.php
to validate CFDI 3.3 or CFDI 4.0.Status::comparableValue
and Status::__toString
.Discoverer::discoverInFile
.TestCase::installCertificate()
: It doesn't depend on the certificate's file name to install correctly.::set-output
& ::save-state
.