From 80b7776bd5b608489ede5758cc55b28be9c22ae0 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 16 May 2024 23:27:08 +1000 Subject: [PATCH] Fattura Models --- .gitattributes | 2 + .gitignore | 1 + src/Models/FatturaPA/Allegati.php | 16 +++ .../FatturaPA/AllegatiType/Allegati.php | 34 +++++ src/Models/FatturaPA/AltriDatiGestionali.php | 15 +++ .../AltriDatiGestionali.php | 31 +++++ src/Models/FatturaPA/Anagrafica.php | 16 +++ .../FatturaPA/AnagraficaType/Anagrafica.php | 34 +++++ src/Models/FatturaPA/CedentePrestatore.php | 22 ++++ .../CedentePrestatore.php | 29 +++++ .../FatturaPA/CessionarioCommittente.php | 19 +++ .../CessionarioCommittente.php | 19 +++ src/Models/FatturaPA/CodiceArticolo.php | 12 ++ .../CodiceArticoloType/CodiceArticolo.php | 19 +++ src/Models/FatturaPA/Contatti.php | 14 ++ src/Models/FatturaPA/ContattiTrasmittente.php | 13 ++ .../ContattiTrasmittente.php | 21 +++ .../FatturaPA/ContattiType/Contatti.php | 26 ++++ .../FatturaPA/DatiAnagraficiCedente.php | 42 ++++++ .../DatiAnagrafici.php | 65 ++++++++++ .../FatturaPA/DatiAnagraficiCessionario.php | 16 +++ .../DatiAnagrafici.php | 23 ++++ .../DatiAnagraficiRappresentante.php | 16 +++ .../DatiAnagrafici.php | 23 ++++ .../DatiAnagraficiTerzoIntermediario.php | 16 +++ .../DatiAnagrafici.php | 23 ++++ .../FatturaPA/DatiAnagraficiVettore.php | 17 +++ .../DatiAnagraficiVettore.php | 28 ++++ src/Models/FatturaPA/DatiBeniServizi.php | 14 ++ .../DatiBeniServiziType/DatiBeniServizi.php | 15 +++ src/Models/FatturaPA/DatiBollo.php | 14 ++ .../FatturaPA/DatiBolloType/DatiBollo.php | 17 +++ .../FatturaPA/DatiCassaPrevidenziale.php | 74 +++++++++++ .../DatiCassaPrevidenziale.php | 87 +++++++++++++ src/Models/FatturaPA/DatiDDT.php | 14 ++ src/Models/FatturaPA/DatiDDTType/DatiDDT.php | 24 ++++ .../FatturaPA/DatiDocumentiCorrelati.php | 18 +++ .../DatiContratto.php | 45 +++++++ .../DatiConvenzione.php | 45 +++++++ .../DatiFattureCollegate.php | 45 +++++++ .../DatiOrdineAcquisto.php | 45 +++++++ .../DatiRicezione.php | 45 +++++++ src/Models/FatturaPA/DatiGenerali.php | 31 +++++ .../FatturaPA/DatiGeneraliDocumento.php | 54 ++++++++ .../DatiGeneraliDocumento.php | 76 +++++++++++ .../DatiGeneraliType/DatiGenerali.php | 31 +++++ src/Models/FatturaPA/DatiPagamento.php | 20 +++ .../DatiPagamentoType/DatiPagamento.php | 21 +++ src/Models/FatturaPA/DatiRiepilogo.php | 54 ++++++++ .../DatiRiepilogoType/DatiRiepilogo.php | 68 ++++++++++ src/Models/FatturaPA/DatiRitenuta.php | 56 ++++++++ .../DatiRitenutaType/DatiRitenuta.php | 61 +++++++++ src/Models/FatturaPA/DatiSAL.php | 11 ++ src/Models/FatturaPA/DatiSALType/DatiSAL.php | 12 ++ src/Models/FatturaPA/DatiTrasmissione.php | 20 +++ .../DatiTrasmissioneType/DatiTrasmissione.php | 33 +++++ src/Models/FatturaPA/DatiTrasporto.php | 26 ++++ .../DatiTrasportoType/DatiTrasporto.php | 61 +++++++++ src/Models/FatturaPA/DatiVeicoli.php | 12 ++ .../FatturaPA/DatiVeicoliType/DatiVeicoli.php | 23 ++++ src/Models/FatturaPA/DettaglioLinee.php | 67 ++++++++++ .../DettaglioLineeType/DettaglioLinee.php | 95 ++++++++++++++ src/Models/FatturaPA/DettaglioPagamento.php | 59 +++++++++ .../DettaglioPagamento.php | 120 ++++++++++++++++++ src/Models/FatturaPA/FatturaElettronica.php | 14 ++ .../FatturaPA/FatturaElettronicaBody.php | 21 +++ .../FatturaElettronicaBody.php | 21 +++ .../FatturaPA/FatturaElettronicaHeader.php | 23 ++++ .../FatturaElettronicaHeader.php | 23 ++++ src/Models/FatturaPA/FatturaPrincipale.php | 12 ++ .../FatturaPrincipale.php | 23 ++++ src/Models/FatturaPA/IdFiscale.php | 12 ++ .../FatturaPA/IdFiscaleType/IdFiscaleIVA.php | 19 +++ .../IdFiscaleType/IdTrasmittente.php | 19 +++ src/Models/FatturaPA/Indirizzo.php | 16 +++ .../FatturaPA/IndirizzoType/IndirizzoResa.php | 41 ++++++ src/Models/FatturaPA/IndirizzoType/Sede.php | 41 ++++++ .../IndirizzoType/StabileOrganizzazione.php | 41 ++++++ src/Models/FatturaPA/IscrizioneREA.php | 18 +++ .../IscrizioneREAType/IscrizioneREA.php | 30 +++++ .../FatturaPA/RappresentanteFiscale.php | 12 ++ .../RappresentanteFiscaleCessionario.php | 15 +++ .../RappresentanteFiscale.php | 30 +++++ .../RappresentanteFiscale.php | 13 ++ src/Models/FatturaPA/ScontoMaggiorazione.php | 15 +++ .../ScontoMaggiorazione.php | 20 +++ .../TerzoIntermediarioSoggettoEmittente.php | 12 ++ .../TerzoIntermediarioOSoggettoEmittente.php | 13 ++ 88 files changed, 2629 insertions(+) create mode 100644 .gitattributes create mode 100644 src/Models/FatturaPA/Allegati.php create mode 100644 src/Models/FatturaPA/AllegatiType/Allegati.php create mode 100644 src/Models/FatturaPA/AltriDatiGestionali.php create mode 100644 src/Models/FatturaPA/AltriDatiGestionaliType/AltriDatiGestionali.php create mode 100644 src/Models/FatturaPA/Anagrafica.php create mode 100644 src/Models/FatturaPA/AnagraficaType/Anagrafica.php create mode 100644 src/Models/FatturaPA/CedentePrestatore.php create mode 100644 src/Models/FatturaPA/CedentePrestatoreType/CedentePrestatore.php create mode 100644 src/Models/FatturaPA/CessionarioCommittente.php create mode 100644 src/Models/FatturaPA/CessionarioCommittenteType/CessionarioCommittente.php create mode 100644 src/Models/FatturaPA/CodiceArticolo.php create mode 100644 src/Models/FatturaPA/CodiceArticoloType/CodiceArticolo.php create mode 100644 src/Models/FatturaPA/Contatti.php create mode 100644 src/Models/FatturaPA/ContattiTrasmittente.php create mode 100644 src/Models/FatturaPA/ContattiTrasmittenteType/ContattiTrasmittente.php create mode 100644 src/Models/FatturaPA/ContattiType/Contatti.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiCedente.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiCedenteType/DatiAnagrafici.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiCessionario.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiCessionarioType/DatiAnagrafici.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiRappresentante.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiRappresentanteType/DatiAnagrafici.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiTerzoIntermediario.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiTerzoIntermediarioType/DatiAnagrafici.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiVettore.php create mode 100644 src/Models/FatturaPA/DatiAnagraficiVettoreType/DatiAnagraficiVettore.php create mode 100644 src/Models/FatturaPA/DatiBeniServizi.php create mode 100644 src/Models/FatturaPA/DatiBeniServiziType/DatiBeniServizi.php create mode 100644 src/Models/FatturaPA/DatiBollo.php create mode 100644 src/Models/FatturaPA/DatiBolloType/DatiBollo.php create mode 100644 src/Models/FatturaPA/DatiCassaPrevidenziale.php create mode 100644 src/Models/FatturaPA/DatiCassaPrevidenzialeType/DatiCassaPrevidenziale.php create mode 100644 src/Models/FatturaPA/DatiDDT.php create mode 100644 src/Models/FatturaPA/DatiDDTType/DatiDDT.php create mode 100644 src/Models/FatturaPA/DatiDocumentiCorrelati.php create mode 100644 src/Models/FatturaPA/DatiDocumentiCorrelatiType/DatiContratto.php create mode 100644 src/Models/FatturaPA/DatiDocumentiCorrelatiType/DatiConvenzione.php create mode 100644 src/Models/FatturaPA/DatiDocumentiCorrelatiType/DatiFattureCollegate.php create mode 100644 src/Models/FatturaPA/DatiDocumentiCorrelatiType/DatiOrdineAcquisto.php create mode 100644 src/Models/FatturaPA/DatiDocumentiCorrelatiType/DatiRicezione.php create mode 100644 src/Models/FatturaPA/DatiGenerali.php create mode 100644 src/Models/FatturaPA/DatiGeneraliDocumento.php create mode 100644 src/Models/FatturaPA/DatiGeneraliDocumentoType/DatiGeneraliDocumento.php create mode 100644 src/Models/FatturaPA/DatiGeneraliType/DatiGenerali.php create mode 100644 src/Models/FatturaPA/DatiPagamento.php create mode 100644 src/Models/FatturaPA/DatiPagamentoType/DatiPagamento.php create mode 100644 src/Models/FatturaPA/DatiRiepilogo.php create mode 100644 src/Models/FatturaPA/DatiRiepilogoType/DatiRiepilogo.php create mode 100644 src/Models/FatturaPA/DatiRitenuta.php create mode 100644 src/Models/FatturaPA/DatiRitenutaType/DatiRitenuta.php create mode 100644 src/Models/FatturaPA/DatiSAL.php create mode 100644 src/Models/FatturaPA/DatiSALType/DatiSAL.php create mode 100644 src/Models/FatturaPA/DatiTrasmissione.php create mode 100644 src/Models/FatturaPA/DatiTrasmissioneType/DatiTrasmissione.php create mode 100644 src/Models/FatturaPA/DatiTrasporto.php create mode 100644 src/Models/FatturaPA/DatiTrasportoType/DatiTrasporto.php create mode 100644 src/Models/FatturaPA/DatiVeicoli.php create mode 100644 src/Models/FatturaPA/DatiVeicoliType/DatiVeicoli.php create mode 100644 src/Models/FatturaPA/DettaglioLinee.php create mode 100644 src/Models/FatturaPA/DettaglioLineeType/DettaglioLinee.php create mode 100644 src/Models/FatturaPA/DettaglioPagamento.php create mode 100644 src/Models/FatturaPA/DettaglioPagamentoType/DettaglioPagamento.php create mode 100644 src/Models/FatturaPA/FatturaElettronica.php create mode 100644 src/Models/FatturaPA/FatturaElettronicaBody.php create mode 100644 src/Models/FatturaPA/FatturaElettronicaBodyType/FatturaElettronicaBody.php create mode 100644 src/Models/FatturaPA/FatturaElettronicaHeader.php create mode 100644 src/Models/FatturaPA/FatturaElettronicaHeaderType/FatturaElettronicaHeader.php create mode 100644 src/Models/FatturaPA/FatturaPrincipale.php create mode 100644 src/Models/FatturaPA/FatturaPrincipaleType/FatturaPrincipale.php create mode 100644 src/Models/FatturaPA/IdFiscale.php create mode 100644 src/Models/FatturaPA/IdFiscaleType/IdFiscaleIVA.php create mode 100644 src/Models/FatturaPA/IdFiscaleType/IdTrasmittente.php create mode 100644 src/Models/FatturaPA/Indirizzo.php create mode 100644 src/Models/FatturaPA/IndirizzoType/IndirizzoResa.php create mode 100644 src/Models/FatturaPA/IndirizzoType/Sede.php create mode 100644 src/Models/FatturaPA/IndirizzoType/StabileOrganizzazione.php create mode 100644 src/Models/FatturaPA/IscrizioneREA.php create mode 100644 src/Models/FatturaPA/IscrizioneREAType/IscrizioneREA.php create mode 100644 src/Models/FatturaPA/RappresentanteFiscale.php create mode 100644 src/Models/FatturaPA/RappresentanteFiscaleCessionario.php create mode 100644 src/Models/FatturaPA/RappresentanteFiscaleCessionarioType/RappresentanteFiscale.php create mode 100644 src/Models/FatturaPA/RappresentanteFiscaleType/RappresentanteFiscale.php create mode 100644 src/Models/FatturaPA/ScontoMaggiorazione.php create mode 100644 src/Models/FatturaPA/ScontoMaggiorazioneType/ScontoMaggiorazione.php create mode 100644 src/Models/FatturaPA/TerzoIntermediarioSoggettoEmittente.php create mode 100644 src/Models/FatturaPA/TerzoIntermediarioSoggettoEmittenteType/TerzoIntermediarioOSoggettoEmittente.php diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6020c3cd --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/src/Standards/* export-ignore +.git* export-ignore \ No newline at end of file diff --git a/.gitignore b/.gitignore index 57872d0f..ffba88fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /vendor/ +/src/Standards/ export-ignore \ No newline at end of file diff --git a/src/Models/FatturaPA/Allegati.php b/src/Models/FatturaPA/Allegati.php new file mode 100644 index 00000000..d589e86f --- /dev/null +++ b/src/Models/FatturaPA/Allegati.php @@ -0,0 +1,16 @@ + ' Regime ordinario', + 'RF02' => 'Regime dei contribuenti minimi (art. 1,c.96-117, L. 244/2007)', + 'RF04' => 'Agricoltura e attività connesse e pesca (artt. 34 e 34-bis, D.P.R. 633/1972)', + 'RF05' => 'Vendita sali e tabacchi (art. 74, c.1, D.P.R. 633/1972)', + 'RF06' => 'Commercio dei fiammiferi (art. 74, c.1, D.P.R. 633/1972)', + 'RF07' => 'Editoria (art. 74, c.1, D.P.R. 633/1972)', + 'RF08' => 'Gestione di servizi di telefonia pubblica (art. 74, c.1, D.P.R. 633/1972)', + 'RF09' => 'Rivendita di documenti di trasporto pubblico e di sosta (art. 74, c.1, D.P.R. 633/1972)', + 'RF10' => "Intrattenimenti, giochi e altre attività\tdi cui alla tariffa allegata al D.P.R. 640/72 (art. 74, c.6, D.P.R. 633/1972)", + 'RF11' => 'Agenzie di viaggi e turismo (art. 74-ter, D.P.R. 633/1972)', + 'RF12' => 'Agriturismo (art. 5, c.2, L. 413/1991)', + 'RF13' => 'Vendite a domicilio (art. 25-bis, c.6, D.P.R. 600/1973)', + 'RF14' => "Rivendita di beni usati, di oggetti\td’arte, d’antiquariato o da collezione (art.\t36, D.L. 41/1995)", + 'RF15' => 'Agenzie di vendite all’asta di oggetti d’arte, antiquariato o da collezione (art. 40-bis, D.L. 41/1995)', + 'RF16' => 'IVA per cassa P.A. (art. 6, c.5, D.P.R. 633/1972)', + 'RF17' => 'IVA per cassa (art. 32-bis, D.L. 83/2012)', + 'RF19' => 'Regime forfettario', + 'RF18' => 'Altro', + ]; +} diff --git a/src/Models/FatturaPA/DatiAnagraficiCedenteType/DatiAnagrafici.php b/src/Models/FatturaPA/DatiAnagraficiCedenteType/DatiAnagrafici.php new file mode 100644 index 00000000..e2b9714e --- /dev/null +++ b/src/Models/FatturaPA/DatiAnagraficiCedenteType/DatiAnagrafici.php @@ -0,0 +1,65 @@ + ' Regime ordinario', + 'RF02' => 'Regime dei contribuenti minimi (art. 1,c.96-117, L. 244/2007)', + 'RF04' => 'Agricoltura e attività connesse e pesca (artt. 34 e 34-bis, D.P.R. 633/1972)', + 'RF05' => 'Vendita sali e tabacchi (art. 74, c.1, D.P.R. 633/1972)', + 'RF06' => 'Commercio dei fiammiferi (art. 74, c.1, D.P.R. 633/1972)', + 'RF07' => 'Editoria (art. 74, c.1, D.P.R. 633/1972)', + 'RF08' => 'Gestione di servizi di telefonia pubblica (art. 74, c.1, D.P.R. 633/1972)', + 'RF09' => 'Rivendita di documenti di trasporto pubblico e di sosta (art. 74, c.1, D.P.R. 633/1972)', + 'RF10' => "Intrattenimenti, giochi e altre attività\tdi cui alla tariffa allegata al D.P.R. 640/72 (art. 74, c.6, D.P.R. 633/1972)", + 'RF11' => 'Agenzie di viaggi e turismo (art. 74-ter, D.P.R. 633/1972)', + 'RF12' => 'Agriturismo (art. 5, c.2, L. 413/1991)', + 'RF13' => 'Vendite a domicilio (art. 25-bis, c.6, D.P.R. 600/1973)', + 'RF14' => "Rivendita di beni usati, di oggetti\td’arte, d’antiquariato o da collezione (art.\t36, D.L. 41/1995)", + 'RF15' => 'Agenzie di vendite all’asta di oggetti d’arte, antiquariato o da collezione (art. 40-bis, D.L. 41/1995)', + 'RF16' => 'IVA per cassa P.A. (art. 6, c.5, D.P.R. 633/1972)', + 'RF17' => 'IVA per cassa (art. 32-bis, D.L. 83/2012)', + 'RF19' => 'Regime forfettario', + 'RF18' => 'Altro', + ]; +} diff --git a/src/Models/FatturaPA/DatiAnagraficiCessionario.php b/src/Models/FatturaPA/DatiAnagraficiCessionario.php new file mode 100644 index 00000000..fd87bc71 --- /dev/null +++ b/src/Models/FatturaPA/DatiAnagraficiCessionario.php @@ -0,0 +1,16 @@ + 'SI']; + public float|Optional $ImportoBollo; +} diff --git a/src/Models/FatturaPA/DatiBolloType/DatiBollo.php b/src/Models/FatturaPA/DatiBolloType/DatiBollo.php new file mode 100644 index 00000000..8e944fdc --- /dev/null +++ b/src/Models/FatturaPA/DatiBolloType/DatiBollo.php @@ -0,0 +1,17 @@ + 'SI']; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $ImportoBollo; +} diff --git a/src/Models/FatturaPA/DatiCassaPrevidenziale.php b/src/Models/FatturaPA/DatiCassaPrevidenziale.php new file mode 100644 index 00000000..f7ab7fb5 --- /dev/null +++ b/src/Models/FatturaPA/DatiCassaPrevidenziale.php @@ -0,0 +1,74 @@ + 'Cassa nazionale previdenza e assistenza avvocati e procuratori legali', + 'TC02' => 'Cassa previdenza dottori commercialisti', + 'TC03' => 'Cassa previdenza e assistenza geometri', + 'TC04' => 'Cassa nazionale previdenza e assistenza ingegneri e architetti liberi professionisti', + 'TC05' => 'Cassa nazionale del notariato', + 'TC06' => 'Cassa nazionale previdenza e assistenza ragionieri e periti commerciali', + 'TC07' => 'Ente nazionale assistenza agenti e rappresentanti di commercio (ENASARCO)', + 'TC08' => 'Ente nazionale previdenza e assistenza consulenti del lavoro (ENPACL)', + 'TC09' => 'Ente nazionale previdenza e assistenza medici (ENPAM)', + 'TC10' => 'Ente nazionale previdenza e assistenza farmacisti (ENPAF)', + 'TC11' => 'Ente nazionale previdenza e assistenza veterinari (ENPAV)', + 'TC12' => 'Ente nazionale previdenza e assistenza impiegati dell\'agricoltura (ENPAIA)', + 'TC13' => 'Fondo previdenza impiegati imprese di spedizione e agenzie marittime', + 'TC14' => 'Istituto nazionale previdenza giornalisti italiani (INPGI)', + 'TC15' => 'Opera nazionale assistenza orfani sanitari italiani (ONAOSI)', + 'TC16' => 'Cassa autonoma assistenza integrativa giornalisti italiani (CASAGIT)', + 'TC17' => 'Ente previdenza periti industriali e periti industriali laureati (EPPI)', + 'TC18' => 'Ente previdenza e assistenza pluricategoriale (EPAP)', + 'TC19' => 'Ente nazionale previdenza e assistenza biologi (ENPAB)', + 'TC20' => 'Ente nazionale previdenza e assistenza professione infermieristica (ENPAPI)', + 'TC21' => 'Ente nazionale previdenza e assistenza psicologi (ENPAP)', + 'TC22' => 'INPS', + ]; + + public float $AlCassa; + public float $ImportoContributoCassa; + public float|Optional $ImponibileCassa; + public float $AliquotaIVA; + public string|Optional $Ritenuta; + public array $Ritenuta_array = ['SI' => 'SI = Cessione / Prestazione soggetta a ritenuta']; + public string|Optional $Natura; + + public array $Natura_array = [ + 'N1' => 'Escluse ex. art. 15 del D.P.R. 633/1972', + 'N2' => 'Non soggette', + 'N2.1' => 'Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72', + 'N2.2' => 'Non soggette - altri casi', + 'N3' => 'Non imponibili', + 'N3.1' => 'Non Imponibili - esportazioni', + 'N3.2' => 'Non Imponibili - cessioni intracomunitarie', + 'N3.3' => 'Non Imponibili - cessioni verso San Marino', + 'N3.4' => 'Non Imponibili - operazioni assimilate alle cessioni all\'esportazione', + 'N3.5' => 'Non Imponibili - a seguito di dichiarazioni d\'intento', + 'N3.6' => 'Non Imponibili - altre operazioni che non concorrono alla formazione del plafond', + 'N4' => 'Esenti', + 'N5' => 'Regime del margine/IVA non esposta in fattura', + 'N6' => 'Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)', + 'N6.1' => 'Inversione contabile - cessione di rottami e altri materiali di recupero', + 'N6.2' => 'Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO', + 'N6.3' => 'Inversione contabile - subappalto nel settore edile', + 'N6.4' => 'Inversione contabile - cessione di fabbricati', + 'N6.5' => 'Inversione contabile - cessione di telefoni cellulari', + 'N6.6' => 'Inversione contabile - cessione di prodotti elettronici', + 'N6.7' => 'Inversione contabile - prestazioni comparto edile e settori connessi', + 'N6.8' => 'Inversione contabile - operazioni settore energetico', + 'N6.9' => 'Inversione contabile - altri casi', + 'N7' => 'IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)', + ]; + + public string|Optional $RiferimentoAmministrazione; +} diff --git a/src/Models/FatturaPA/DatiCassaPrevidenzialeType/DatiCassaPrevidenziale.php b/src/Models/FatturaPA/DatiCassaPrevidenzialeType/DatiCassaPrevidenziale.php new file mode 100644 index 00000000..c0d1a3f0 --- /dev/null +++ b/src/Models/FatturaPA/DatiCassaPrevidenzialeType/DatiCassaPrevidenziale.php @@ -0,0 +1,87 @@ + 'Cassa nazionale previdenza e assistenza avvocati e procuratori legali', + 'TC02' => 'Cassa previdenza dottori commercialisti', + 'TC03' => 'Cassa previdenza e assistenza geometri', + 'TC04' => 'Cassa nazionale previdenza e assistenza ingegneri e architetti liberi professionisti', + 'TC05' => 'Cassa nazionale del notariato', + 'TC06' => 'Cassa nazionale previdenza e assistenza ragionieri e periti commerciali', + 'TC07' => 'Ente nazionale assistenza agenti e rappresentanti di commercio (ENASARCO)', + 'TC08' => 'Ente nazionale previdenza e assistenza consulenti del lavoro (ENPACL)', + 'TC09' => 'Ente nazionale previdenza e assistenza medici (ENPAM)', + 'TC10' => 'Ente nazionale previdenza e assistenza farmacisti (ENPAF)', + 'TC11' => 'Ente nazionale previdenza e assistenza veterinari (ENPAV)', + 'TC12' => 'Ente nazionale previdenza e assistenza impiegati dell\'agricoltura (ENPAIA)', + 'TC13' => 'Fondo previdenza impiegati imprese di spedizione e agenzie marittime', + 'TC14' => 'Istituto nazionale previdenza giornalisti italiani (INPGI)', + 'TC15' => 'Opera nazionale assistenza orfani sanitari italiani (ONAOSI)', + 'TC16' => 'Cassa autonoma assistenza integrativa giornalisti italiani (CASAGIT)', + 'TC17' => 'Ente previdenza periti industriali e periti industriali laureati (EPPI)', + 'TC18' => 'Ente previdenza e assistenza pluricategoriale (EPAP)', + 'TC19' => 'Ente nazionale previdenza e assistenza biologi (ENPAB)', + 'TC20' => 'Ente nazionale previdenza e assistenza professione infermieristica (ENPAPI)', + 'TC21' => 'Ente nazionale previdenza e assistenza psicologi (ENPAP)', + 'TC22' => 'INPS', + ]; + + #[Regex('[0-9]{1,3}\.[0-9]{2}')] + public float $AlCassa; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float $ImportoContributoCassa; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $ImponibileCassa; + + #[Regex('[0-9]{1,3}\.[0-9]{2}')] + public float $AliquotaIVA; + public string|Optional $Ritenuta; + public array $Ritenuta_array = ['SI' => 'SI = Cessione / Prestazione soggetta a ritenuta']; + public string|Optional $Natura; + + public array $Natura_array = [ + 'N1' => 'Escluse ex. art. 15 del D.P.R. 633/1972', + 'N2' => 'Non soggette', + 'N2.1' => 'Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72', + 'N2.2' => 'Non soggette - altri casi', + 'N3' => 'Non imponibili', + 'N3.1' => 'Non Imponibili - esportazioni', + 'N3.2' => 'Non Imponibili - cessioni intracomunitarie', + 'N3.3' => 'Non Imponibili - cessioni verso San Marino', + 'N3.4' => 'Non Imponibili - operazioni assimilate alle cessioni all\'esportazione', + 'N3.5' => 'Non Imponibili - a seguito di dichiarazioni d\'intento', + 'N3.6' => 'Non Imponibili - altre operazioni che non concorrono alla formazione del plafond', + 'N4' => 'Esenti', + 'N5' => 'Regime del margine/IVA non esposta in fattura', + 'N6' => 'Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)', + 'N6.1' => 'Inversione contabile - cessione di rottami e altri materiali di recupero', + 'N6.2' => 'Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO', + 'N6.3' => 'Inversione contabile - subappalto nel settore edile', + 'N6.4' => 'Inversione contabile - cessione di fabbricati', + 'N6.5' => 'Inversione contabile - cessione di telefoni cellulari', + 'N6.6' => 'Inversione contabile - cessione di prodotti elettronici', + 'N6.7' => 'Inversione contabile - prestazioni comparto edile e settori connessi', + 'N6.8' => 'Inversione contabile - operazioni settore energetico', + 'N6.9' => 'Inversione contabile - altri casi', + 'N7' => 'IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)', + ]; + + #[Max(20)] + #[Min(1)] + #[Regex('(\p{IsBasicLatin}{1,20})')] + public string|Optional $RiferimentoAmministrazione; +} diff --git a/src/Models/FatturaPA/DatiDDT.php b/src/Models/FatturaPA/DatiDDT.php new file mode 100644 index 00000000..4d19b8c0 --- /dev/null +++ b/src/Models/FatturaPA/DatiDDT.php @@ -0,0 +1,14 @@ + 'Fattura', + 'TD02' => 'Acconto / anticipo su fattura', + 'TD03' => 'Acconto / anticipo su parcella', + 'TD04' => 'Nota di credito', + 'TD05' => 'Nota di debito', + 'TD06' => 'Parcella', + 'TD16' => 'Integrazione fattura reverse charge interno', + 'TD17' => 'Integrazione/autofattura per acquisto servizi dall\'estero', + 'TD18' => 'Integrazione per acquisto di beni intracomunitari', + 'TD19' => 'Integrazione/autofattura per acquisto di beni ex art.17 c.2 DPR 633/72', + 'TD20' => 'Autofattura per regolarizzazione e integrazione delle fatture (ex art.6 c.8 e 9-bis d.lgs.471/97 o art.46 c.5 D.L. 331/93', + 'TD21' => 'Autofattura per splafonamento', + 'TD22' => 'Estrazione benida Deposito IVA', + 'TD23' => 'Estrazione beni da Deposito IVA con versamento dell\'IVA', + 'TD24' => 'Fattura differita di cui all\'art.21, comma 4, terzo periodo lett. a) DPR 633/72', + 'TD25' => 'Fattura differita di cui all\'art.21, comma 4, terzo periodo lett. b) DPR 633/72', + 'TD26' => 'Cessione di beni ammortizzabili e per passaggi interni (ex art.36 DPR 633/72)', + 'TD27' => 'Fattura per autoconsumo o per cessioni gratuite senza rivalsa', + 'TD28' => 'Acquisti da San Marino con IVA (fattura cartacea)', + ]; + + public string $Divisa; + public Carbon $Data; + public string $Numero; + public DatiRitenuta|Optional $DatiRitenuta; + public DatiBollo|Optional $DatiBollo; + public DatiCassaPrevidenziale|Optional $DatiCassaPrevidenziale; + public ScontoMaggiorazione|Optional $ScontoMaggiorazione; + public float|Optional $ImportoTotaleDocumento; + public float|Optional $Arrotondamento; + public string|Optional $Causale; + public string|Optional $Art73; + + public array $Art73_array = [ + 'SI' => 'SI = Documento emesso secondo modalità e termini stabiliti con DM ai sensi dell\'art. 73 DPR 633/72', + ]; +} diff --git a/src/Models/FatturaPA/DatiGeneraliDocumentoType/DatiGeneraliDocumento.php b/src/Models/FatturaPA/DatiGeneraliDocumentoType/DatiGeneraliDocumento.php new file mode 100644 index 00000000..01c4e94c --- /dev/null +++ b/src/Models/FatturaPA/DatiGeneraliDocumentoType/DatiGeneraliDocumento.php @@ -0,0 +1,76 @@ + 'Fattura', + 'TD02' => 'Acconto / anticipo su fattura', + 'TD03' => 'Acconto / anticipo su parcella', + 'TD04' => 'Nota di credito', + 'TD05' => 'Nota di debito', + 'TD06' => 'Parcella', + 'TD16' => 'Integrazione fattura reverse charge interno', + 'TD17' => 'Integrazione/autofattura per acquisto servizi dall\'estero', + 'TD18' => 'Integrazione per acquisto di beni intracomunitari', + 'TD19' => 'Integrazione/autofattura per acquisto di beni ex art.17 c.2 DPR 633/72', + 'TD20' => 'Autofattura per regolarizzazione e integrazione delle fatture (ex art.6 c.8 e 9-bis d.lgs.471/97 o art.46 c.5 D.L. 331/93', + 'TD21' => 'Autofattura per splafonamento', + 'TD22' => 'Estrazione benida Deposito IVA', + 'TD23' => 'Estrazione beni da Deposito IVA con versamento dell\'IVA', + 'TD24' => 'Fattura differita di cui all\'art.21, comma 4, terzo periodo lett. a) DPR 633/72', + 'TD25' => 'Fattura differita di cui all\'art.21, comma 4, terzo periodo lett. b) DPR 633/72', + 'TD26' => 'Cessione di beni ammortizzabili e per passaggi interni (ex art.36 DPR 633/72)', + 'TD27' => 'Fattura per autoconsumo o per cessioni gratuite senza rivalsa', + 'TD28' => 'Acquisti da San Marino con IVA (fattura cartacea)', + ]; + + #[Max(3)] + #[Min(3)] + #[Regex('[A-Z]{3}')] + public string $Divisa; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon $Data; + + #[Max(20)] + #[Min(1)] + #[Regex('(\p{IsBasicLatin}{1,20})')] + public string $Numero; + public DatiRitenuta|Optional $DatiRitenuta; + public DatiBollo|Optional $DatiBollo; + public DatiCassaPrevidenziale|Optional $DatiCassaPrevidenziale; + public ScontoMaggiorazione|Optional $ScontoMaggiorazione; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $ImportoTotaleDocumento; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $Arrotondamento; + + #[Max(200)] + #[Min(1)] + #[Regex('[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,200}')] + public string|Optional $Causale; + public string|Optional $Art73; + + public array $Art73_array = [ + 'SI' => 'SI = Documento emesso secondo modalità e termini stabiliti con DM ai sensi dell\'art. 73 DPR 633/72', + ]; +} diff --git a/src/Models/FatturaPA/DatiGeneraliType/DatiGenerali.php b/src/Models/FatturaPA/DatiGeneraliType/DatiGenerali.php new file mode 100644 index 00000000..0356182d --- /dev/null +++ b/src/Models/FatturaPA/DatiGeneraliType/DatiGenerali.php @@ -0,0 +1,31 @@ + 'pagamento a rate', + 'TP02' => 'pagamento completo', + 'TP03' => 'anticipo', + ]; + + public DettaglioPagamento $DettaglioPagamento; +} diff --git a/src/Models/FatturaPA/DatiPagamentoType/DatiPagamento.php b/src/Models/FatturaPA/DatiPagamentoType/DatiPagamento.php new file mode 100644 index 00000000..65a2aabf --- /dev/null +++ b/src/Models/FatturaPA/DatiPagamentoType/DatiPagamento.php @@ -0,0 +1,21 @@ + 'pagamento a rate', + 'TP02' => 'pagamento completo', + 'TP03' => 'anticipo', + ]; + + public DettaglioPagamento $DettaglioPagamento; +} diff --git a/src/Models/FatturaPA/DatiRiepilogo.php b/src/Models/FatturaPA/DatiRiepilogo.php new file mode 100644 index 00000000..e480d381 --- /dev/null +++ b/src/Models/FatturaPA/DatiRiepilogo.php @@ -0,0 +1,54 @@ + 'Escluse ex. art. 15 del D.P.R. 633/1972', + 'N2' => 'Non soggette', + 'N2.1' => 'Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72', + 'N2.2' => 'Non soggette - altri casi', + 'N3' => 'Non imponibili', + 'N3.1' => 'Non Imponibili - esportazioni', + 'N3.2' => 'Non Imponibili - cessioni intracomunitarie', + 'N3.3' => 'Non Imponibili - cessioni verso San Marino', + 'N3.4' => 'Non Imponibili - operazioni assimilate alle cessioni all\'esportazione', + 'N3.5' => 'Non Imponibili - a seguito di dichiarazioni d\'intento', + 'N3.6' => 'Non Imponibili - altre operazioni che non concorrono alla formazione del plafond', + 'N4' => 'Esenti', + 'N5' => 'Regime del margine/IVA non esposta in fattura', + 'N6' => 'Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)', + 'N6.1' => 'Inversione contabile - cessione di rottami e altri materiali di recupero', + 'N6.2' => 'Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO', + 'N6.3' => 'Inversione contabile - subappalto nel settore edile', + 'N6.4' => 'Inversione contabile - cessione di fabbricati', + 'N6.5' => 'Inversione contabile - cessione di telefoni cellulari', + 'N6.6' => 'Inversione contabile - cessione di prodotti elettronici', + 'N6.7' => 'Inversione contabile - prestazioni comparto edile e settori connessi', + 'N6.8' => 'Inversione contabile - operazioni settore energetico', + 'N6.9' => 'Inversione contabile - altri casi', + 'N7' => 'IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)', + ]; + + public float|Optional $SpeseAccessorie; + public float|Optional $Arrotondamento; + public float $ImponibileImporto; + public float $Imposta; + public string|Optional $EsigibilitaIVA; + + public array $EsigibilitaIVA_array = [ + 'D' => 'esigibilità differita', + 'I' => 'esigibilità immediata', + 'S' => 'scissione dei pagamenti', + ]; + + public string|Optional $RiferimentoNormativo; +} diff --git a/src/Models/FatturaPA/DatiRiepilogoType/DatiRiepilogo.php b/src/Models/FatturaPA/DatiRiepilogoType/DatiRiepilogo.php new file mode 100644 index 00000000..a66adf19 --- /dev/null +++ b/src/Models/FatturaPA/DatiRiepilogoType/DatiRiepilogo.php @@ -0,0 +1,68 @@ + 'Escluse ex. art. 15 del D.P.R. 633/1972', + 'N2' => 'Non soggette', + 'N2.1' => 'Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72', + 'N2.2' => 'Non soggette - altri casi', + 'N3' => 'Non imponibili', + 'N3.1' => 'Non Imponibili - esportazioni', + 'N3.2' => 'Non Imponibili - cessioni intracomunitarie', + 'N3.3' => 'Non Imponibili - cessioni verso San Marino', + 'N3.4' => 'Non Imponibili - operazioni assimilate alle cessioni all\'esportazione', + 'N3.5' => 'Non Imponibili - a seguito di dichiarazioni d\'intento', + 'N3.6' => 'Non Imponibili - altre operazioni che non concorrono alla formazione del plafond', + 'N4' => 'Esenti', + 'N5' => 'Regime del margine/IVA non esposta in fattura', + 'N6' => 'Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)', + 'N6.1' => 'Inversione contabile - cessione di rottami e altri materiali di recupero', + 'N6.2' => 'Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO', + 'N6.3' => 'Inversione contabile - subappalto nel settore edile', + 'N6.4' => 'Inversione contabile - cessione di fabbricati', + 'N6.5' => 'Inversione contabile - cessione di telefoni cellulari', + 'N6.6' => 'Inversione contabile - cessione di prodotti elettronici', + 'N6.7' => 'Inversione contabile - prestazioni comparto edile e settori connessi', + 'N6.8' => 'Inversione contabile - operazioni settore energetico', + 'N6.9' => 'Inversione contabile - altri casi', + 'N7' => 'IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)', + ]; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $SpeseAccessorie; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2,8}')] + public float|Optional $Arrotondamento; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float $ImponibileImporto; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float $Imposta; + public string|Optional $EsigibilitaIVA; + + public array $EsigibilitaIVA_array = [ + 'D' => 'esigibilità differita', + 'I' => 'esigibilità immediata', + 'S' => 'scissione dei pagamenti', + ]; + + #[Max(100)] + #[Min(1)] + #[Regex('[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,100}')] + public string|Optional $RiferimentoNormativo; +} diff --git a/src/Models/FatturaPA/DatiRitenuta.php b/src/Models/FatturaPA/DatiRitenuta.php new file mode 100644 index 00000000..a0eb9714 --- /dev/null +++ b/src/Models/FatturaPA/DatiRitenuta.php @@ -0,0 +1,56 @@ + 'Ritenuta di acconto persone fisiche', + 'RT02' => 'Ritenuta di acconto persone giuridiche', + 'RT03' => 'Contributo INPS', + 'RT04' => 'Contributo ENASARCO', + 'RT05' => 'Contributo ENPAM', + 'RT06' => 'Altro contributo previdenziale', + ]; + + public float $ImportoRitenuta; + public float $AliquotaRitenuta; + public string $CausalePagamento; + + public array $CausalePagamento_array = [ + 'A' => 'A', + 'B' => 'B', + 'C' => 'C', + 'D' => 'D', + 'E' => 'E', + 'G' => 'G', + 'H' => 'H', + 'I' => 'I', + 'L' => 'L', + 'M' => 'M', + 'N' => 'N', + 'O' => 'O', + 'P' => 'P', + 'Q' => 'Q', + 'R' => 'R', + 'S' => 'S', + 'T' => 'T', + 'U' => 'U', + 'V' => 'V', + 'W' => 'W', + 'X' => 'X', + 'Y' => 'Y', + 'Z' => 'Z', + 'L1' => 'L1', + 'M1' => 'M1', + 'M2' => 'M2', + 'O1' => 'O1', + 'V1' => 'V1', + 'ZO' => 'ZO', + ]; +} diff --git a/src/Models/FatturaPA/DatiRitenutaType/DatiRitenuta.php b/src/Models/FatturaPA/DatiRitenutaType/DatiRitenuta.php new file mode 100644 index 00000000..0b83fc4c --- /dev/null +++ b/src/Models/FatturaPA/DatiRitenutaType/DatiRitenuta.php @@ -0,0 +1,61 @@ + 'Ritenuta di acconto persone fisiche', + 'RT02' => 'Ritenuta di acconto persone giuridiche', + 'RT03' => 'Contributo INPS', + 'RT04' => 'Contributo ENASARCO', + 'RT05' => 'Contributo ENPAM', + 'RT06' => 'Altro contributo previdenziale', + ]; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float $ImportoRitenuta; + + #[Regex('[0-9]{1,3}\.[0-9]{2}')] + public float $AliquotaRitenuta; + public string $CausalePagamento; + + public array $CausalePagamento_array = [ + 'A' => 'A', + 'B' => 'B', + 'C' => 'C', + 'D' => 'D', + 'E' => 'E', + 'G' => 'G', + 'H' => 'H', + 'I' => 'I', + 'L' => 'L', + 'M' => 'M', + 'N' => 'N', + 'O' => 'O', + 'P' => 'P', + 'Q' => 'Q', + 'R' => 'R', + 'S' => 'S', + 'T' => 'T', + 'U' => 'U', + 'V' => 'V', + 'W' => 'W', + 'X' => 'X', + 'Y' => 'Y', + 'Z' => 'Z', + 'L1' => 'L1', + 'M1' => 'M1', + 'M2' => 'M2', + 'O1' => 'O1', + 'V1' => 'V1', + 'ZO' => 'ZO', + ]; +} diff --git a/src/Models/FatturaPA/DatiSAL.php b/src/Models/FatturaPA/DatiSAL.php new file mode 100644 index 00000000..a22d6e40 --- /dev/null +++ b/src/Models/FatturaPA/DatiSAL.php @@ -0,0 +1,11 @@ + 'Fattura verso PA', 'FPR12' => 'Fattura verso privati']; + public string $CodiceDestinatario; + public ContattiTrasmittente|Optional $ContattiTrasmittente; + public string|Optional $PECDestinatario; +} diff --git a/src/Models/FatturaPA/DatiTrasmissioneType/DatiTrasmissione.php b/src/Models/FatturaPA/DatiTrasmissioneType/DatiTrasmissione.php new file mode 100644 index 00000000..db59d4b6 --- /dev/null +++ b/src/Models/FatturaPA/DatiTrasmissioneType/DatiTrasmissione.php @@ -0,0 +1,33 @@ + 'Fattura verso PA', 'FPR12' => 'Fattura verso privati']; + + #[Max(7)] + #[Min(6)] + #[Regex('[A-Z0-9]{6,7}')] + public string $CodiceDestinatario; + public ContattiTrasmittente|Optional $ContattiTrasmittente; + + #[Regex('([!#-\'*+/-9=?A-Z^-~-]+(\.[!#-\'*+/-9=?A-Z^-~-]+)*|"(\[\]!#-[^-~ \t]|(\\\[\t -~]))+")@([!#-\'*+/-9=?A-Z^-~-]+(\.[!#-\'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*\])')] + public string|Optional $PECDestinatario; +} diff --git a/src/Models/FatturaPA/DatiTrasporto.php b/src/Models/FatturaPA/DatiTrasporto.php new file mode 100644 index 00000000..142c6524 --- /dev/null +++ b/src/Models/FatturaPA/DatiTrasporto.php @@ -0,0 +1,26 @@ + 'Sconto', + 'PR' => 'Premio', + 'AB' => 'Abbuono', + 'AC' => 'Spesa accessoria', + ]; + + public CodiceArticolo|Optional $CodiceArticolo; + public string $Descrizione; + public float|Optional $Quantita; + public string|Optional $UnitaMisura; + public Carbon|Optional $DataInizioPeriodo; + public Carbon|Optional $DataFinePeriodo; + public float $PrezzoUnitario; + public ScontoMaggiorazione|Optional $ScontoMaggiorazione; + public float $PrezzoTotale; + public float $AliquotaIVA; + public string|Optional $Ritenuta; + public array $Ritenuta_array = ['SI' => 'SI = Cessione / Prestazione soggetta a ritenuta']; + public string|Optional $Natura; + + public array $Natura_array = [ + 'N1' => 'Escluse ex. art. 15 del D.P.R. 633/1972', + 'N2' => 'Non soggette', + 'N2.1' => 'Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72', + 'N2.2' => 'Non soggette - altri casi', + 'N3' => 'Non imponibili', + 'N3.1' => 'Non Imponibili - esportazioni', + 'N3.2' => 'Non Imponibili - cessioni intracomunitarie', + 'N3.3' => 'Non Imponibili - cessioni verso San Marino', + 'N3.4' => 'Non Imponibili - operazioni assimilate alle cessioni all\'esportazione', + 'N3.5' => 'Non Imponibili - a seguito di dichiarazioni d\'intento', + 'N3.6' => 'Non Imponibili - altre operazioni che non concorrono alla formazione del plafond', + 'N4' => 'Esenti', + 'N5' => 'Regime del margine/IVA non esposta in fattura', + 'N6' => 'Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)', + 'N6.1' => 'Inversione contabile - cessione di rottami e altri materiali di recupero', + 'N6.2' => 'Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO', + 'N6.3' => 'Inversione contabile - subappalto nel settore edile', + 'N6.4' => 'Inversione contabile - cessione di fabbricati', + 'N6.5' => 'Inversione contabile - cessione di telefoni cellulari', + 'N6.6' => 'Inversione contabile - cessione di prodotti elettronici', + 'N6.7' => 'Inversione contabile - prestazioni comparto edile e settori connessi', + 'N6.8' => 'Inversione contabile - operazioni settore energetico', + 'N6.9' => 'Inversione contabile - altri casi', + 'N7' => 'IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)', + ]; + + public string|Optional $RiferimentoAmministrazione; + public AltriDatiGestionali|Optional $AltriDatiGestionali; +} diff --git a/src/Models/FatturaPA/DettaglioLineeType/DettaglioLinee.php b/src/Models/FatturaPA/DettaglioLineeType/DettaglioLinee.php new file mode 100644 index 00000000..bba9fb16 --- /dev/null +++ b/src/Models/FatturaPA/DettaglioLineeType/DettaglioLinee.php @@ -0,0 +1,95 @@ + 'Sconto', + 'PR' => 'Premio', + 'AB' => 'Abbuono', + 'AC' => 'Spesa accessoria', + ]; + + public CodiceArticolo|Optional $CodiceArticolo; + + #[Max(1000)] + #[Min(1)] + #[Regex('[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,1000}')] + public string $Descrizione; + + #[Regex('[0-9]{1,12}\.[0-9]{2,8}')] + public float|Optional $Quantita; + + #[Max(10)] + #[Min(1)] + #[Regex('(\p{IsBasicLatin}{1,10})')] + public string|Optional $UnitaMisura; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon|Optional $DataInizioPeriodo; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon|Optional $DataFinePeriodo; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2,8}')] + public float $PrezzoUnitario; + public ScontoMaggiorazione|Optional $ScontoMaggiorazione; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2,8}')] + public float $PrezzoTotale; + + #[Regex('[0-9]{1,3}\.[0-9]{2}')] + public float $AliquotaIVA; + public string|Optional $Ritenuta; + public array $Ritenuta_array = ['SI' => 'SI = Cessione / Prestazione soggetta a ritenuta']; + public string|Optional $Natura; + + public array $Natura_array = [ + 'N1' => 'Escluse ex. art. 15 del D.P.R. 633/1972', + 'N2' => 'Non soggette', + 'N2.1' => 'Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72', + 'N2.2' => 'Non soggette - altri casi', + 'N3' => 'Non imponibili', + 'N3.1' => 'Non Imponibili - esportazioni', + 'N3.2' => 'Non Imponibili - cessioni intracomunitarie', + 'N3.3' => 'Non Imponibili - cessioni verso San Marino', + 'N3.4' => 'Non Imponibili - operazioni assimilate alle cessioni all\'esportazione', + 'N3.5' => 'Non Imponibili - a seguito di dichiarazioni d\'intento', + 'N3.6' => 'Non Imponibili - altre operazioni che non concorrono alla formazione del plafond', + 'N4' => 'Esenti', + 'N5' => 'Regime del margine/IVA non esposta in fattura', + 'N6' => 'Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)', + 'N6.1' => 'Inversione contabile - cessione di rottami e altri materiali di recupero', + 'N6.2' => 'Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO', + 'N6.3' => 'Inversione contabile - subappalto nel settore edile', + 'N6.4' => 'Inversione contabile - cessione di fabbricati', + 'N6.5' => 'Inversione contabile - cessione di telefoni cellulari', + 'N6.6' => 'Inversione contabile - cessione di prodotti elettronici', + 'N6.7' => 'Inversione contabile - prestazioni comparto edile e settori connessi', + 'N6.8' => 'Inversione contabile - operazioni settore energetico', + 'N6.9' => 'Inversione contabile - altri casi', + 'N7' => 'IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)', + ]; + + #[Max(20)] + #[Min(1)] + #[Regex('(\p{IsBasicLatin}{1,20})')] + public string|Optional $RiferimentoAmministrazione; + public AltriDatiGestionali|Optional $AltriDatiGestionali; +} diff --git a/src/Models/FatturaPA/DettaglioPagamento.php b/src/Models/FatturaPA/DettaglioPagamento.php new file mode 100644 index 00000000..51525899 --- /dev/null +++ b/src/Models/FatturaPA/DettaglioPagamento.php @@ -0,0 +1,59 @@ + 'contanti', + 'MP02' => 'assegno', + 'MP03' => 'assegno circolare', + 'MP04' => 'contanti presso Tesoreria', + 'MP05' => 'bonifico', + 'MP06' => 'vaglia cambiario', + 'MP07' => 'bollettino bancario', + 'MP08' => 'carta di pagamento', + 'MP09' => 'RID', + 'MP10' => 'RID utenze', + 'MP11' => 'RID veloce', + 'MP12' => 'RIBA', + 'MP13' => 'MAV', + 'MP14' => 'quietanza erario', + 'MP15' => 'giroconto su conti di contabilità speciale', + 'MP16' => 'domiciliazione bancaria', + 'MP17' => 'domiciliazione postale', + 'MP18' => 'bollettino di c/c postale', + 'MP19' => 'SEPA Direct Debit', + 'MP20' => 'SEPA Direct Debit CORE', + 'MP21' => 'SEPA Direct Debit B2B', + 'MP22' => 'Trattenuta su somme già riscosse', + 'MP23' => 'PagoPA', + ]; + + public Carbon|Optional $DataRiferimentoTerminiPagamento; + public int|Optional $GiorniTerminiPagamento; + public Carbon|Optional $DataScadenzaPagamento; + public float $ImportoPagamento; + public string|Optional $CodUfficioPostale; + public string|Optional $CognomeQuietanzante; + public string|Optional $NomeQuietanzante; + public string|Optional $CFQuietanzante; + public string|Optional $TitoloQuietanzante; + public string|Optional $IstitutoFinanziario; + public string|Optional $IBAN; + public string|Optional $ABI; + public string|Optional $CAB; + public string|Optional $BIC; + public float|Optional $ScontoPagamentoAnticipato; + public Carbon|Optional $DataLimitePagamentoAnticipato; + public float|Optional $PenalitaPagamentiRitardati; + public Carbon|Optional $DataDecorrenzaPenale; + public string|Optional $CodicePagamento; +} diff --git a/src/Models/FatturaPA/DettaglioPagamentoType/DettaglioPagamento.php b/src/Models/FatturaPA/DettaglioPagamentoType/DettaglioPagamento.php new file mode 100644 index 00000000..77a5c77e --- /dev/null +++ b/src/Models/FatturaPA/DettaglioPagamentoType/DettaglioPagamento.php @@ -0,0 +1,120 @@ + 'contanti', + 'MP02' => 'assegno', + 'MP03' => 'assegno circolare', + 'MP04' => 'contanti presso Tesoreria', + 'MP05' => 'bonifico', + 'MP06' => 'vaglia cambiario', + 'MP07' => 'bollettino bancario', + 'MP08' => 'carta di pagamento', + 'MP09' => 'RID', + 'MP10' => 'RID utenze', + 'MP11' => 'RID veloce', + 'MP12' => 'RIBA', + 'MP13' => 'MAV', + 'MP14' => 'quietanza erario', + 'MP15' => 'giroconto su conti di contabilità speciale', + 'MP16' => 'domiciliazione bancaria', + 'MP17' => 'domiciliazione postale', + 'MP18' => 'bollettino di c/c postale', + 'MP19' => 'SEPA Direct Debit', + 'MP20' => 'SEPA Direct Debit CORE', + 'MP21' => 'SEPA Direct Debit B2B', + 'MP22' => 'Trattenuta su somme già riscosse', + 'MP23' => 'PagoPA', + ]; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon|Optional $DataRiferimentoTerminiPagamento; + public int|Optional $GiorniTerminiPagamento; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon|Optional $DataScadenzaPagamento; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float $ImportoPagamento; + + #[Max(20)] + #[Min(1)] + #[Regex('(\p{IsBasicLatin}{1,20})')] + public string|Optional $CodUfficioPostale; + + #[Max(60)] + #[Min(1)] + #[Regex('[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,60}')] + public string|Optional $CognomeQuietanzante; + + #[Max(60)] + #[Min(1)] + #[Regex('[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,60}')] + public string|Optional $NomeQuietanzante; + + #[Max(16)] + #[Min(16)] + #[Regex('[A-Z0-9]{16}')] + public string|Optional $CFQuietanzante; + + #[Max(10)] + #[Min(2)] + #[Regex('(\p{IsBasicLatin}{2,10})')] + public string|Optional $TitoloQuietanzante; + + #[Max(80)] + #[Min(1)] + #[Regex('[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,80}')] + public string|Optional $IstitutoFinanziario; + + #[Max(30)] + #[Min(11)] + #[Regex('[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{11,30}')] + public string|Optional $IBAN; + + #[Regex('[0-9][0-9][0-9][0-9][0-9]')] + public string|Optional $ABI; + + #[Regex('[0-9][0-9][0-9][0-9][0-9]')] + public string|Optional $CAB; + + #[Max(1)] + #[Min(0)] + #[Regex('[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3}){0,1}')] + public string|Optional $BIC; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $ScontoPagamentoAnticipato; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon|Optional $DataLimitePagamentoAnticipato; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2}')] + public float|Optional $PenalitaPagamentiRitardati; + + #[WithTransformer('Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer', format: 'Y-m-d')] + public Carbon|Optional $DataDecorrenzaPenale; + + #[Max(60)] + #[Min(1)] + #[Regex('(\p{IsBasicLatin}{1,60})')] + public string|Optional $CodicePagamento; +} diff --git a/src/Models/FatturaPA/FatturaElettronica.php b/src/Models/FatturaPA/FatturaElettronica.php new file mode 100644 index 00000000..ae4e9ac6 --- /dev/null +++ b/src/Models/FatturaPA/FatturaElettronica.php @@ -0,0 +1,14 @@ + 'Cessionario / Committente', 'TZ' => 'Terzo']; +} diff --git a/src/Models/FatturaPA/FatturaElettronicaHeaderType/FatturaElettronicaHeader.php b/src/Models/FatturaPA/FatturaElettronicaHeaderType/FatturaElettronicaHeader.php new file mode 100644 index 00000000..c2e21916 --- /dev/null +++ b/src/Models/FatturaPA/FatturaElettronicaHeaderType/FatturaElettronicaHeader.php @@ -0,0 +1,23 @@ + 'Cessionario / Committente', 'TZ' => 'Terzo']; +} diff --git a/src/Models/FatturaPA/FatturaPrincipale.php b/src/Models/FatturaPA/FatturaPrincipale.php new file mode 100644 index 00000000..59ff1a1f --- /dev/null +++ b/src/Models/FatturaPA/FatturaPrincipale.php @@ -0,0 +1,12 @@ + 'socio unico', 'SM' => 'più soci']; + public string $StatoLiquidazione; + public array $StatoLiquidazione_array = ['LS' => 'in liquidazione', 'LN' => 'non in liquidazione']; +} diff --git a/src/Models/FatturaPA/IscrizioneREAType/IscrizioneREA.php b/src/Models/FatturaPA/IscrizioneREAType/IscrizioneREA.php new file mode 100644 index 00000000..90cda654 --- /dev/null +++ b/src/Models/FatturaPA/IscrizioneREAType/IscrizioneREA.php @@ -0,0 +1,30 @@ + 'socio unico', 'SM' => 'più soci']; + public string $StatoLiquidazione; + public array $StatoLiquidazione_array = ['LS' => 'in liquidazione', 'LN' => 'non in liquidazione']; +} diff --git a/src/Models/FatturaPA/RappresentanteFiscale.php b/src/Models/FatturaPA/RappresentanteFiscale.php new file mode 100644 index 00000000..f373a01a --- /dev/null +++ b/src/Models/FatturaPA/RappresentanteFiscale.php @@ -0,0 +1,12 @@ + 'SC = Sconto', 'MG' => 'MG = Maggiorazione']; + public float|Optional $Percentuale; + public float|Optional $Importo; +} diff --git a/src/Models/FatturaPA/ScontoMaggiorazioneType/ScontoMaggiorazione.php b/src/Models/FatturaPA/ScontoMaggiorazioneType/ScontoMaggiorazione.php new file mode 100644 index 00000000..62e1c697 --- /dev/null +++ b/src/Models/FatturaPA/ScontoMaggiorazioneType/ScontoMaggiorazione.php @@ -0,0 +1,20 @@ + 'SC = Sconto', 'MG' => 'MG = Maggiorazione']; + + #[Regex('[0-9]{1,3}\.[0-9]{2}')] + public float|Optional $Percentuale; + + #[Regex('[\-]?[0-9]{1,11}\.[0-9]{2,8}')] + public float|Optional $Importo; +} diff --git a/src/Models/FatturaPA/TerzoIntermediarioSoggettoEmittente.php b/src/Models/FatturaPA/TerzoIntermediarioSoggettoEmittente.php new file mode 100644 index 00000000..7562e18a --- /dev/null +++ b/src/Models/FatturaPA/TerzoIntermediarioSoggettoEmittente.php @@ -0,0 +1,12 @@ +