Releases: phpcfdi/finkok
Versión 0.6.0
Esta versión tiene cambios importantes dado que:
- Elimina la compatibilidad con PHP 7.3, PHP 7.4 y PHP 8.0.
- Agrega la compatibilidad con PHP 8.4.
Al realizar esta actualización, también cambiaron algunos nombres de parámetros, específicamente:
PhpCfdi\Finkok\Finkok#__constructparámetrofactoryasettings.PhpCfdi\Finkok\QuickFinkok#__construct()parámetrofactoryasettings.PhpCfdi\Finkok\Services\Registration\Customer#__construct()parámetrorawadata.PhpCfdi\Finkok\Services\Stamping\StampingAlert#__construct()parámetrorawadata.PhpCfdi\Finkok\Services\Cancel\CancelledDocument#__construct()parámetrorawadata.
Se hacen varios cambios menores:
- Se mejora la documentación de los servicios de cancelación. Gracias @aarongmx.
- Se actualiza el año de licencia a 2025.
- Se actualizan las insignias a las comúnmente usadas en PhpCfdi.
Se hacen varios cambios al entorno de desarrollo:
- Se corrige la documentación de pruebas de integración contínua y pruebas funcionales.
- Se elimina la integración con Scrutinizer CI. Gracias por todo.
- Se agrega la integración con SonarQube Cloud.
- Se actualizan los estándares de código a los comúnmente usados en PhpCfdi.
- Se ejecutan los flujos de trabajo en PHP 8.4.
- Se agrega PHP 8.4 a la matriz de pruebas.
- Se elimina PHP 7.3, 7.4 y 8.0 de la matriz de pruebas.
- Se actualizan las herramientas de desarrollo.
Versión 0.5.5
- Se mueve
PhpCfdi\Finkok\Tests\LoggerPrinteraPhpCfdi\Finkok\Helpers\FileLoggerpara permitir la distribución de la herramienta dentro de la librería. - Se crea la utilería
PhpCfdi\Finkok\Helpers\JsonDecoderLoggerpara transformar un mensaje JSON a texto simple generado por la funciónprint_r. Se puede configurar para enviar también el mensaje JSON. - Se normaliza el formato de los mensajes JSON para usar
JSON_PRETTY_PRINTyJSON_UNESCAPED_SLASHES. - Se actualiza la documentación en el
README.
Versión 0.5.4
Se actualiza el año de la licencia a 2024.
Se agrega una sección Capturar conversación HTTP al archivo README.md.
Se agrega la documentación del problema: Al timbrar con un texto & devuelve 705 - XML Estructura inválida.
Se actualizan las reglas del estándar de código.
Se permite usar symfony/dotenv:^7.0 en desarrollo.
Se omite la detección de lenguaje en el directorio tests/_files.
Se actualizan los flujos de trabajo de GitHub:
- Se agrega PHP 8.3 a la matriz de pruebas.
- Se ejecutan los procesos en PHP 8.3.
- Se usan las acciones de GitHub versión 4.
Se actualizan las herramientas de desarrollo.
Versión 0.5.3
Se agrega la información de la excepción al momento de hacer la llamada SOAP.
Si la excepción no implementa JsonSerializable se exporta como texto resultado de print_r.
Se realizan los siguientes cambios en desarrollo:
- Se cambian las pruebas de CFDI de Retenciones y pagos a versión 2.0.
- Se corrige el método
QuickFinkokTest#obtainParameterFromLatestCallpara que devuelva una cadena de texto.
Con este cambio se corrige el problema detectado por PHPStan. - En el proceso de integración continua, en el trabajo
php-cs-fixerse usa PHP 8.2. - Se cambian los comentarios de ubicación de la imagen
shivammathur/setup-php@v2al inicio. - Se corrige la acción de composer
dev:coverage, faltaba-dxdebug.mode=coverage. - Se permite ejecutar los trabajos a voluntad, agregando
workflow_dispatch. - Se quita el paso para remover dependencias de desarrollo que ya no existen.
Versión 0.5.2
Se reportó que el webservice Registration#Get no estaba aceptando un RFC vacío para devolver el listado
de clientes. La respuesta de Finkok fue implementar un nuevo método Registration#Customers que devuelve
el listado de clientes paginado. El método Registration#Get ya no permitirá devolver un listado de clientes.
Se agregan los métodos Finkok::registrationCustomers y QuickFinkok::customersObtainAll
para consumir Registration#Customers.
El método Finkok::registrationCustomers(ObtainCustomersCommand $command): ObtainCustomersResult devuelve
el resultado de una sola página, con toda la información: mensaje e información de paginado.
El método QuickFinkok::customersObtainAll devuelve solamente el listado de clientes consumiendo
todas las páginas necesarias.
Se actualizó el estado del documento de problemas: El método Registration#Get con taxpayer_id vacío no devuelve el listado de clientes.
Se cambió el año en el archivo de licencia, ¡Feliz 2023!.
Versión 0.5.1
Se actualiza phpcfdi/xml-cancelacion a la versión ^2.0.2.
Esta actualización remueve el atributo vacío FolioSustitucion en la solicitud de cancelación firmada.
Se aplican los cambios necesarios en las pruebas.
Se documenta el error de funcionamiento en Finkok en el método Registration#Get.
Versión 0.5.0
Implementación del método get_contracts_snid
Se utiliza el nuevo método get_contracts_snid en lugar del obsoleto get_contracts.
Esto lleva a que la clase PhpCfdi\Finkok\Services\Manifest\GetContractsCommand ahora requiere de $snid.
Igualmente, PhpCfdi\Finkok\QuickFinkok#customerGetContracts() requiere de $snid.
Mejorar la dependencia de PSR-3
Ahora se permite compatibilidad del paquete psr/log con las versiones ^1.1, ^2.0 o ^3.0.
Mejorar la dependencia de symfony/dotenv
Se permite la compatibilidad de desarrollo de la librería symfony/dotenv con ^5.0 o ^6.0.
Saltar las pruebas de integración de cancelación que fallen
A menudo el servicio de pruebas del SAT relacionado con cancelaciones presenta fallas.
Por esto, las pruebas de integración relacionadas con tocar este servicio, en lugar de marcarlas como fallidas se marcarán como brincadas.
PhpCfdi\Finkok\Tests\Integration\Services\Cancel\CancelServicesTest::testCreateCfdiThenGetSatStatusThenCancelSignatureThenGetReceipt().PhpCfdi\Finkok\Tests\Integration\Services\Cancel\GetRelatedSignatureServiceTest::testConsumeServiceWithRelated().PhpCfdi\Finkok\Tests\Integration\Services\Retentions\CancelSignatureServiceTest::testCancelSignatureRecentlyCreatedDocument().
Pruebas largas tienen duración definida
Las pruebas largas que reintentan varias veces una tarea ahora tienen un límite de tiempo definido en la variable de entorno FINKOK_LONGTEST_TIMEOUT. Debe ser un valor entero en segundos, el valor si no existe es 30, mínimo 30 y máximo 600.
Búsqueda de RFC libre en pruebas
Se implementa una búsqueda binaria en un espacio consecutivo de RFC para hacer únicamente 16 búsquedas.
Anteriormente, se usaba un espacio que podía conducir a muchas más búsquedas y la prueba PhpCfdi\Finkok\Tests\Integration\Services\Registration\AddServiceTest::testConsumeAddServiceWithRandomRfc no era ejecutada a menos que se permitieran pruebas de larga duración.
Normalización de composer.json
Se incluye la herramienta composer-normalize para revisar y normalizar el archivo composer.json.
Se integran los cambios previos no liberados
2022-08-08
Corregir el proceso de construcción:
- Se define el tipo de dato
TEntryparaMicroCatalog<TEntry>enAcceptRejectUuidStatus. - Actualizar librerías de desarrollo.
2022-07-18
Corregir el proceso de construcción:
- Corregir
tests/stamp-precfdi-devenv.phpen su inicialización y estilo de código. - Actualizar librerías de desarrollo.
2022-07-04
Estos cambios están presentes únicamente en desarrollo, no es necesaria una nueva versión:
- Se agregan pruebas unitarias para CFDI 4.0.
- Se corrigen las instrucciones de construcción en el archivo
CONTRIBUTING.md.
Versión 0.4.4
El servidor de producción de Quadrum (para firmar manifiestos) es más estricto que el servidor de pruebas y no acepta la URL https://manifiesto.cfdiquadrum.com.mx//servicios/soap/firmar.wsdl.
En esta versión se elimina la doble diagonal.
Versión 0.4.3
Se agrega CFDI 4.0 al extractor de información GetSatStatusExtractor.
Con este cambio el servicio https://wiki.finkok.com/doku.php?id=get_sat_status ya soporta CFDI 4.0.
Se actualiza phpcfdi/cfdi-expresiones a la versión 3.2.0.
Versión 0.4.2
- Se corrige
Finkok::checkCommandpues podría llamar a la funciónis_acon un parámetro que no es un objeto. - Se actualizan las versiones de herramientas de desarrollo
phpstanyphp-cs-fixer. - Correcciones al proceso de integración continua
build:- Los trabajos se ejecutan en PHP 8.1.
- Se agrega PHP 8.1 a la matriz de pruebas.
phpcsusa los directorios configurados enphpcs.xml.dist.- Las acciones de github se actualizan a la versión 3.