Releases: phpcfdi/sat-ws-descarga-masiva
Releases · phpcfdi/sat-ws-descarga-masiva
Version 0.4.2
- 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 deTimbreFiscalDigital@UUID
. Esto solo ocurría cuando en el nodo principal<Comprobante>
se definía el espacio de nombres o la ubicación del esquema deTimbreFiscalDigital
.
Version 0.4.1
- 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 devolverfalse
y se esperastring
.
Version 0.4.0
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
aFiel
, ahora depende deRequestBuilderInterface
. - Se crea la implementación
FielRequestBuilder
para seguir trabajando con laFiel
. - Se mueve
Fiel
adentro del namespacePhpCfdi\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 aRequestBuilderInterface
. - 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 implementaPackageReaderInterface
, también se agregan
las clasesMetadataFileFilter
yCfdiFileFilter
que permiten el filtrado de los archivos correctos dentro
de los paquetes del SAT. - Se restructura
MetadataPackageReader
para cumplir con la interfazPackageReaderInterface
,
ahora se comporta como una fachada de unFilteredPackageReader
. - Se restructura
CfdiPackageReader
para cumplir con la interfazPackageReaderInterface
,
ahora se comporta como una fachada de unFilteredPackageReader
. - 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 enQueryParameters
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étodoInteractsXmlTrait::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
de6.3
a7.2
robrichards/xmlseclibs
de3.0
a3.1
phpunit/phpunit
de9.1
a9.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
aCodigosDeServicios
.
Version 0.3.2
- 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 esaaaaaaaa-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 elEOL
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 contenernull
. Esto es solo cierto para cualquierDOMNode
pero no paraDOMElement
. - 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
- 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
- Se actualizan las dependencias
php: >=7.3
yphpunit: ^9.1
. - Se actualiza
php-cs-fixer
para usar@PHP73Migration
.
Version 0.2.5
- 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
aphpstan
.
Version 0.2.4
- Se agrega la clase
PhpCfdi\SatWsDescargaMasiva\WebClient\GuzzleWebClient
que estaba en testing
a el código distribuible, aunque no se agrega la dependenciaguzzlehttp/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 seguridadCVE-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
.
- Se remueve la configuración
- Integración continua (Scrutinizer):
- Se instala la extensión
zip
conpecl
. - Se elimina la información de la versión fija.
- Se modifica el archivo de configuración para que actualice
composer
.
- Se instala la extensión
Version 0.2.3
- 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
- Make sure that when constructing a
DateTime
it fails with an exception. - Improve code coverage.