Skip to content

Releases: phpcfdi/sat-ws-descarga-masiva

Version 0.4.2

26 Nov 00:41
faa98b3
Compare
Choose a tag to compare
  • Se corrige el extractor de UUID de un CFDI, no estaba funcionando correctamente y en algunas ocasiones provocaba que se leyera el valor de CfdiRelacionado@UUID en lugar del valor correcto de TimbreFiscalDigital@UUID. Esto solo ocurría cuando en el nodo principal <Comprobante> se definía el espacio de nombres o la ubicación del esquema de TimbreFiscalDigital.

Version 0.4.1

26 Nov 00:36
6e7b737
Compare
Choose a tag to compare
  • PHPStan reporta error de tipo "Access to an undefined property" en la clase MetadataItem. Sin embargo, la clase implementa el método mágico __get por lo que la propiedad no necesariamente se debe considerar indefinida. Se corrigió anotando la línea para que fuera ignorada.
  • Se corrigen las pruebas porque ahora PHPStan entiende el control de flujo de PHPUnit y eso rompía la integración contínua con Travis-CI.
  • Se mejora el flujo de la prueba ServiceConsumerTest::testRunRequestWithWebClientException.
  • Se corrige en las pruebas el uso de current() pues puede devolver false y se espera string.

Version 0.4.0

19 Oct 22:45
b6e29cb
Compare
Choose a tag to compare

Actualización mayor, revisa la guía de actualización.

  • Guía de actualización de la versión 0.3.2 a la versión 0.4.0: UPGRADE_0.3_0.4
  • Se agregan excepciones específicas en la librería. Además, cuando se detecta una respuesta
    que contiene un SOAP Fault se genera una excepción.
  • Se rompe la dependencia directa de Service a Fiel, ahora depende de RequestBuilderInterface.
  • Se crea la implementación FielRequestBuilder para seguir trabajando con la Fiel.
  • Se mueve Fiel adentro del namespace PhpCfdi\SatWsDescargaMasiva\RequestBuilder\FielRequestBuilder.
  • Se modifican los servicios de autenticación, consulta, descarga y verificación para que,
    en lugar de que ellos mismos construyan las peticiones XML firmadas, ahora las deleguen a RequestBuilderInterface.
  • Ahora se puede especificar un RFC específico en la consulta:
    • Si consultamos los emitidos podríamos filtrar por el RFC receptor.
    • Si consultamos los recibidos podríamos filtrar por el RFC emisor.
  • Ahora se puede consumir el servicio para los CFDI de retenciones e información de pagos.
  • Se agrega la interfaz PackageReaderInterface que contiene el contrato esperado por un lector de paquetes.
  • Se crea la clase interna FilteredPackageReader que implementa PackageReaderInterface, también se agregan
    las clases MetadataFileFilter y CfdiFileFilter que permiten el filtrado de los archivos correctos dentro
    de los paquetes del SAT.
  • Se restructura MetadataPackageReader para cumplir con la interfaz PackageReaderInterface,
    ahora se comporta como una fachada de un FilteredPackageReader.
  • Se restructura CfdiPackageReader para cumplir con la interfaz PackageReaderInterface,
    ahora se comporta como una fachada de un FilteredPackageReader.
  • Se agrega el método generador CfdiPackageReader::cfdis() que contiene en su llave el UUID del CFDI
    y en el valor el contenido del CFDI.
  • Se agregan los constructores estáticos ::create() de los objetos usados en QueryParameters y en la propia clase.
  • Se convierten varias clases en finales: StatusCode, DateTime, DateTimePeriod, DownloadType, Fiel,
    RequestType, Token, QueryParameters, QueryResult, VerifyResult, DownloadResult.
  • Se mueven y crean diferentes clases que solo deben ser utilizadas internamente al namespace "interno"
    PhpCfdi\SatWsDescargaMasiva\Internal: Helpers, InteractsXmlTrait, ServiceConsumer, SoapFaultInfoExtractor.
  • Se marcan como clases internas los traductores usados dentro de los servicios.
  • Se mueve lógica repetida en los servicios de autenticación, consulta, verificación y descarga hacia dentro
    del método InteractsXmlTrait::createSignature.
  • Se implementa JsonSerializable en todos los DTO, en los lectores de paquetes y en las excepciones específicas.
  • Se agregan muchas pruebas unitarias para comprobar el funcionamiento esperado y la cobertura de código.
  • Se actualizan las dependencias:
    • guzzlehttp/guzzle de 6.3 a 7.2
    • robrichards/xmlseclibs de 3.0 a 3.1
    • phpunit/phpunit de 9.1 a 9.3
  • Documentación general:
    • Se agregan bloques de documentación a clases y métodos en toda la librería.
    • Se separan los bloques de ejemplos de uso en cada caso en lugar de usar solo un bloque.
    • Los códigos de servicios cambian de Services-StatusCode.md a CodigosDeServicios.

Closes #30, #29 & #18

Version 0.3.2

29 Jul 04:49
e6087d9
Compare
Choose a tag to compare
  • Se corrige el problema de cambio de formato al definir el nombre de los archivos contenidos en un paquete de Metadata, el formato anterior era aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee_01.txt y el nuevo es aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee-0001.txt. La corrección se relajó para que admita cualquier nombre de archivo con extensión .txt y que esté en el la raíz. Esta es la misma estrategia utilizada en el lector de paquetes de CFDI (issue #23).
  • Se corrige el problema en que dentro de un archivo de Metadata donde puede contener caracteres extraños en los campos de nombre emisor y nombre receptor. La corrección se consideró tomando en cuenta que estos campos pueden contener comillas ", para ello se considera el pipe | como delimitador de cadenas. La segunda corrección identifica si el EOL es <CR><LF> y en ese caso elimina cualquier <LF> intermedio (issue #23).
  • PHPStan estaba dando un falso positivo al detectar que DOMElement::$attributes puede contener null. Esto es solo cierto para cualquier DOMNode pero no para DOMElement.
  • Se corrigieron las ligas a Travis-CI.
  • Se agrega a Travis-CI la versión php: nightly, pero se le permite fallar.

Version 0.3.1

05 Jun 03:21
6459dd6
Compare
Choose a tag to compare
  • Se corrige el problema de que recientemente los archivos ZIP de consultas de CFDI vienen con doble extensión, por ejemplo aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.xml.xml.

Version 0.3.0

02 May 00:42
a565fb1
Compare
Choose a tag to compare
  • Se actualizan las dependencias php: >=7.3 y phpunit: ^9.1.
  • Se actualiza php-cs-fixer para usar @PHP73Migration.

Version 0.2.5

08 Jan 15:32
12e2939
Compare
Choose a tag to compare
  • Se actualiza el año de licencia a 2020.
  • Se remueve método privado FielData::readContents(): string porque ya no está en uso.
  • Se corrige la construcción con PHP 7.4 en Travis.
  • Se cambia la dependencia de desarrollo phpstan-shim a phpstan.

Version 0.2.4

06 Dec 21:43
380989c
Compare
Choose a tag to compare
  • Se agrega la clase PhpCfdi\SatWsDescargaMasiva\WebClient\GuzzleWebClient que estaba en testing
    a el código distribuible, aunque no se agrega la dependencia guzzlehttp/guzzle.
  • Se documenta el uso de GuzzleWebClient.
  • Forzar la dependencia de phpcfdi/credentials a ^1.1 para leer llaves privadas en formato DER.
  • Forzar la dependencia de robrichards/xmlseclibs a ^3.0.4 por reporte de seguridad CVE-2019-3465.
  • Agregar ejemplo en la documentación para crear y verificar un objeto Fiel.
  • Corrección en la documentación al crear una fiel, tenía los parámetros invertidos.
  • Integración continua (Travis CI):
    • Se remueve la configuración sudo: false.
    • No se permite el fallo del build en PHP 7.4snapshot.
  • Integración continua (Scrutinizer):
    • Se instala la extensión zip con pecl.
    • Se elimina la información de la versión fija.
    • Se modifica el archivo de configuración para que actualice composer.

Version 0.2.3

07 Oct 14:36
a63bf81
Compare
Choose a tag to compare
  • Improve usage of ResponseInterface->getBody(): StreamInterface using __toString() to retrieve contents at once.
  • Minor documentation typos
  • Include docs/ in package, exclude development file .phplint.yml.
  • Add PHP 7.4snapshot (allow fail) to Travis CI build matrix.

Version 0.2.2

23 Aug 14:38
5af2da8
Compare
Choose a tag to compare
  • Make sure that when constructing a DateTime it fails with an exception.
  • Improve code coverage.