Repository navigation
Aceptar Grecia en VIES y sacar al Reino Unido de la UE - #2059
Merged
Merged
Conversation
… la UE VIES identifica Grecia con el prefijo EL, pero los checkVies() del core le pasan el código ISO del país (GR), así que un cliente griego daba siempre "país fuera de la UE". Y Paises::MIEMBROS_UE seguía incluyendo el Reino Unido (GB), que salió de la UE el 31/01/2020. - Vies::vatPrefix(): prefijo del NIF-IVA de un país (GR → EL). check() y fetch() lo usan, así que aceptan GR y EL. - Vies::normalize() quita tanto el código ISO como el prefijo del NIF-IVA (en Grecia, GR y EL). - Paises::MIEMBROS_UE sin GB. - Tests de vatPrefix(), normalize() y check() con GR, y PaisesTest.
This was referenced Oct 27, 2026
NeoRazorX
approved these changes
Oct 28, 2026
NeoRazorX
left a comment
Owner
There was a problem hiding this comment.
Revisado: correcto. phpcs limpio y ViesTest, PaisesTest y los tests de modelo con VIES/intracomunitaria pasan en local (PHP 8.3 + MariaDB).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descripción
Dos fallos con la lista de países de la UE:
EL, pero loscheckVies()de cliente, proveedor, empresa, contacto y agente, yIntracomunitariaTrait, le pasan el código ISO del país, que esGR. ComoGRno está enVies::EU_COUNTRIES, un cliente griego daba siempre "país fuera de la UE" sin llegar a consultar VIES, y la factura no se marcaba como intracomunitaria. RemesasSEPA ya hace esta conversión a mano.Paises::MIEMBROS_UEseguía incluyendoGB, que salió de la UE el 31/01/2020. En el core no cambia el resultado desetIntracomunitaria(), porque VIES ya rechazabaGB(solo cambia el aviso, que ahora es "fuera de la UE"). Sí afecta a los plugins que usanPaises::miembroUE(), como Modelo347.Cambios realizados
Vies::vatPrefix()(y la constanteVAT_PREFIXES): prefijo del NIF-IVA de un país a partir de su código ISO (GR→EL; el resto, igual).check()yfetch()lo aplican antes de validar y consultar, así que aceptanGRyEL.Vies::normalize()quita tanto el código ISO como el prefijo del NIF-IVA: en Grecia,GR123456789yEL123456789quedan en123456789.Paises::MIEMBROS_UEsinGB(27 países).testVatPrefix,testGreeceIsEuy casos nuevos denormalizeenViesTest, dos casos de integración con Grecia, yPaisesTest(27 miembros, sinGB, y todos con prefijo en VIES).Cómo probar
EL…),$cliente->checkVies()consulta VIES. Antes devolvíafalsecon el aviso "país fuera de la UE", sin llegar a consultar.Vies::normalize('GR123456789', 'GR')yVies::normalize('EL123456789', 'GR')devuelven123456789.Paises::miembroUEbyIso('GB')devuelvefalse.ViesTestyPaisesTest. La batería completa del core pasa en PHP 8.1–8.5 con MySQL y PostgreSQL.