Skip to content

Version 2.19.0

Compare
Choose a tag to compare
@eclipxe13 eclipxe13 released this 18 Jan 19:58
· 317 commits to master since this release

Add CFDI 4.0 compatibility: read, validate and create:

  • CfdiUtils\Cfdi object now can read CFDI 4.0.
  • CfdiUtils\CfdiValidator40 object was introduced to validate CFDI 4.0 with only the following validations:
    • The document follows de CFDI 4.0 specification (namespace, root element prefix and name).
    • The document follows de CFDI 4.0 schema.
    • The document has a valid NoCertificado, Certificado and Sello.
    • The document has a valid TimbreFiscalDigital and information matches with cfdi:Comprobante@Sello.
  • CfdiUtils\CfdiCreator40 object was introduced to create CFDI 4.0.
  • The helper elements CfdiUtils\Elements\Cfdi40 were created.
  • Add minimal documentation to read, validate and create CFDI 4.0.

The following are development details:

  • Created \CfdiUtils\Validate\Xml\XmlFollowSchema as a standard validator, it does not depend on the type of CFDI.
  • The validator CfdiUtils\Validate\Cfdi33\Xml\XmlFollowSchema is now an extended class of \CfdiUtils\Validate\Xml\XmlFollowSchema. The class is also deprecated.
  • Add CfdiUtils\Certificado::getPemContentsOneLine().
  • Add CFDI 4.0 information to:
    • CfdiUtils\CadenaOrigen\CfdiDefaultLocations.
    • CfdiUtils\Certificado\NodeCertificado.
    • CfdiUtils\CfdiVersion.
  • Deprecate CfdiUtils\Cfdi::CFDI_NAMESPACE.
  • Add CfdiUtils\CfdiCreateObjectException that contains all the failures when try to construct a CfdiUtils\Cfdi object.
  • Extract and share logic for several objects that are CFDI 3.3 and CFDI 4.0 compatible:
    • CfdiUtils\CfdiValidator33 to CfdiUtils\Validate\CfdiValidatorTrait.
    • CfdiUtils\Validate\Cfdi33\Standard\SelloDigitalCertificado to CfdiUtils\Validate\Common\SelloDigitalCertificadoValidatorTrait.
    • CfdiUtils\Validate\Cfdi33\Standard\TimbreFiscalDigitalSello to CfdiUtils\Validate\Common\TimbreFiscalDigitalSelloValidatorTrait.
    • CfdiUtils\Validate\Cfdi33\Standard\TimbreFiscalDigitalVersion to CfdiUtils\Validate\Common\TimbreFiscalDigitalVersionValidatorTrait.
    • CfdiUtils\CfdiCreator33 to CfdiUtils\Validate\CfdiCreatorTrait.
    • CfdiUtils\Elements\Cfdi33\Helpers\SumasConceptosWriter to CfdiUtils\SumasConceptos\SumasConceptosWriter.
  • The certificate PAC used for testing 30001000000400002495 is included.
  • The class CfdiUtilsTests\Validate\ValidateTestCase was renamed to CfdiUtilsTests\Validate\Validate33TestCase and extracted to CfdiUtilsTests\Validate\ValidateBaseTestCase because it shares a lot of logic with CfdiUtilsTests\Validate\Validate40TestCase.
  • The class CfdiUtils\SumasConceptos\SumasConceptosWriter can handle both CFDI 3.3 & 3.4.

This version introduces this soft breaking compatibility changes, your implementation should not be affected:

[BC] REMOVED: These ancestors of CfdiUtils\Validate\Cfdi33\Xml\XmlFollowSchema have been removed: ["CfdiUtils\\Validate\\Cfdi33\\Abstracts\\AbstractVersion33"]

Other changes:

  • Update license year, happy new year.
  • Update PHPUnit config file.