slam / php-validatore-fattura-elettronica
Validatore fattura elettronica
Fund package maintenance!
Slamdunk
paypal.me/filippotessarotto
Installs: 50 327
Dependents: 4
Suggesters: 0
Security: 0
Stars: 19
Watchers: 8
Forks: 7
Open Issues: 6
Requires
- php: ~8.3.0 || ~8.4.0
- ext-dom: *
- ext-libxml: *
Requires (Dev)
- phpstan/phpstan: ^1.12.4
- phpstan/phpstan-phpunit: ^1.4.0
- phpstan/phpstan-strict-rules: ^1.6.1
- phpunit/phpunit: ^11.3.6
- slam/php-cs-fixer-extensions: ^3.12.0
- dev-master
- v1.2.1-patch20240925.1
- v1.2.1-patch20231221.1
- v1.2.1-patch20231120.1
- v1.2.1-patch20230222.1
- v1.2.1-patch20220405.1
- v1.2.1-patch20201009.1
- v1.2.1-patch20201008.1
- v1.2-patch20190830.1
- v1.2-patch20190809.1
- v1.2-patch20181010.4
- v1.2-patch20181010.3
- v1.2-patch20181010.2
- v1.2-patch20181010.1
- dev-renovate/php
This package is auto-updated.
Last update: 2024-11-21 19:24:14 UTC
README
WARNING: This package only works for ITALIAN standards!
Installazione
composer require slam/php-validatore-fattura-elettronica
Utilizzo
use SlamFatturaElettronica\Validator; $feValidator = new Validator(); $feValidator->assertValidXml('<xml ...>'); // In caso di struttura XML errata, viene lanciata una // SlamFatturaElettronica\Exception\InvalidXmlStructureException // In caso di XML valido ma non aderente all'XSD, viene lanciata una // SlamFatturaElettronica\Exception\InvalidXsdStructureComplianceException
Elencare tutte le eccezioni
use SlamFatturaElettronica\Validator; $feValidator = new Validator(); $feValidator->getAllExceptions('<xml ...>'); // Restituisce un array contentente le eccezioni rilevati. Se non ci sono errori l'array sarà vuoto:
Notifiche
use SlamFatturaElettronica\Validator; $feValidator = new Validator(); $feValidator->assertValidXml('<xml ...>', Validator::XSD_MESSAGGI_LATEST);
Riferimenti
I due siti di riferimento sono al momento:
- https://www.agenziaentrate.gov.it/wps/content/Nsilib/Nsi/Schede/Comunicazioni/Fatture+e+corrispettivi/Fatture+e+corrispettivi+ST/ST+invio+di+fatturazione+elettronica/?page=schedecomunicazioni
- http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm
Gli XSD usati da questa libreria sono quelli presi dal primo dei due siti,
ovvero www.agenziaentrate.gov.it
, che a dispetto del numero di versione
esplicitato sembra quello più aggiornato (vedi ad esempio tra i tipi di
documento la differenza su Autofattura
).
Validazione Email in versione 1.2.1
La versione 1.2.1
introduce una regex per la validazione delle email, che tuttavia è costruita male.
Visto che la finalità di questa libreria è di più ampio respiro, è stata sovrascritta la regex delle email
con una più permissiva. La validazione della mail è in capo all'utente:
diff --git a/xsd/Schema_VFPR121a.xsd b/xsd/Schema_VFPR121a.xsd index e999199..fa5696b 100644 --- a/xsd/Schema_VFPR121a.xsd +++ b/xsd/Schema_VFPR121a.xsd @@ -1364,8 +1364,9 @@ </xs:simpleType> <xs:simpleType name="EmailType"> <xs:restriction base="xs:token"> + <xs:minLength value="7" /> <xs:maxLength value="256" /> - <xs:pattern value="([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|"(\[\]!#-[^-~ \t]|(\\[\t -~]))+")@([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*\])" /> + <xs:pattern value=".+@.+[.]+.+" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="EmailContattiType">