mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
clean up paths for fatturapa
This commit is contained in:
parent
6257f4118e
commit
be612db0b4
@ -1,40 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\DatiVeicoli;
|
||||
use App\DataMapper\EDoc\FatturaPA\Body\DatiGenerali;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
|
||||
class Allegati extends Data
|
||||
{
|
||||
//string 60
|
||||
#[Max(60)]
|
||||
public string $NomeAttachment;
|
||||
|
||||
//base64 binary
|
||||
public mixed $Attachment;
|
||||
|
||||
//string 10
|
||||
#[Max(10)]
|
||||
public string|Optional $AlgoritmoCompressione;
|
||||
|
||||
//string 10
|
||||
#[Max(10)]
|
||||
public string|Optional $FormatoAttachment;
|
||||
|
||||
//string 100
|
||||
#[Max(100)]
|
||||
public string|Optional $DescrizioneAttachment;
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class AltriDatiGestionali extends Data
|
||||
{
|
||||
//string 10
|
||||
#[Max(10)]
|
||||
public string $TipoDato;
|
||||
|
||||
//String60LatinType
|
||||
#[Max(60)]
|
||||
public string|Optional $RiferimentoTesto;
|
||||
|
||||
//Amount8DecimalType
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2,8}$/')]
|
||||
public float|Optional $RiferimentoNumero;
|
||||
|
||||
//date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public Carbon|Optional $RiferimentoData;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,41 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Illuminate\Support\Optional;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\RequiredWith;
|
||||
use Spatie\LaravelData\Attributes\Validation\RequiredWithoutAll;
|
||||
|
||||
class Anagrafica extends Data
|
||||
{
|
||||
//choice
|
||||
|
||||
//either Deminominazione OR
|
||||
//string length 80
|
||||
#[Max(80)]
|
||||
#[RequiredWithoutAll(['Nome','Cognome'])]
|
||||
public string|Optional $Denominazione = '';
|
||||
|
||||
////////////////////////////////////////////
|
||||
//2. Nome AND CogNome
|
||||
//string length 60
|
||||
#[Max(60)]
|
||||
#[RequiredWith('Cognome')]
|
||||
public string|Optional $Nome = '';
|
||||
|
||||
//string length 60
|
||||
#[Max(60)]
|
||||
#[RequiredWith('Nome')]
|
||||
public string|Optional $CogNome = '';
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Body;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
|
||||
class DatiBollo extends Data
|
||||
{
|
||||
|
||||
//SI
|
||||
#[Size(2)]
|
||||
public string $BolloVirtuale = 'SI';
|
||||
|
||||
//Amount2DecimalType
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float|Optional $ImportoBollo;
|
||||
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Body;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
|
||||
class DatiCassaPrevidenziale extends Data
|
||||
{
|
||||
//string 4char options
|
||||
#[Size(4)]
|
||||
public string $TipoCassa;
|
||||
|
||||
//rate type 0-100
|
||||
#[Regex('/^[0-9]{1,3}\.[0-9]{2}$/')]
|
||||
public float $AlCassa = 0;
|
||||
|
||||
//Amount2DecimalType
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float $ImportoContributoCassa;
|
||||
|
||||
//rate type 0-100
|
||||
#[Regex('/^[0-9]{1,3}\.[0-9]{2}$/')]
|
||||
public float $AliquotaIVA;
|
||||
|
||||
//Amount2DecimalType
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float|Optional $ImponibileCassa;
|
||||
|
||||
//string string options
|
||||
#[Size(4)]
|
||||
public string|Optional $Ritenuta;
|
||||
|
||||
//string 2char options
|
||||
public string|Optional $Natura;
|
||||
|
||||
//String20Type
|
||||
#[Max(20)]
|
||||
public string|Optional $RiferimentoAmministrazione;
|
||||
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Body;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\DatiTrasporto;
|
||||
use App\DataMapper\EDoc\FatturaPA\Generics\DatiDDT;
|
||||
use App\DataMapper\EDoc\FatturaPA\Generics\DatiSAL;
|
||||
use App\DataMapper\EDoc\FatturaPA\FatturaPrincipale;
|
||||
use App\DataMapper\EDoc\FatturaPA\Generics\DatiDocumentiCorrelatiType;
|
||||
|
||||
class DatiGenerali extends Data
|
||||
{
|
||||
|
||||
public DatiGeneraliDocumento $DatiGeneraliDocumento;
|
||||
public DatiDocumentiCorrelatiType|Optional $DatiOrdineAcquisto;
|
||||
public DatiDocumentiCorrelatiType|Optional $DatiContratto;
|
||||
public DatiDocumentiCorrelatiType|Optional $DatiConvenzione;
|
||||
public DatiDocumentiCorrelatiType|Optional $DatiRicezione;
|
||||
public DatiDocumentiCorrelatiType|Optional $DatiFattureCollegate;
|
||||
public DatiSAL|Optional $DatiSAL;
|
||||
public DatiDDT|Optional $DatiDDT;
|
||||
public DatiTrasporto|Optional $DatiTrasporto;
|
||||
public FatturaPrincipale|Optional $FatturaPrincipale;
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,64 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Body;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\Body\DatiBollo;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
use App\DataMapper\EDoc\FatturaPA\Body\DatiRitenuta;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiGeneraliDocumento extends Data
|
||||
{
|
||||
|
||||
//string regex [A-Z]{3}
|
||||
public string $Divisa;
|
||||
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d\TH:i:s.uP')]
|
||||
public \Illuminate\Support\Carbon $Data;
|
||||
|
||||
//string max 20 char
|
||||
#[Max(20)]
|
||||
public string $Numero;
|
||||
|
||||
public DatiRitenuta|Optional $DatiRitenuta;
|
||||
public DatiBollo|Optional $DatiBollo;
|
||||
public DatiCassaPrevidenziale|Optional $DatiCassaPrevidenziale;
|
||||
public ScontoMaggiorazione|Optional $ScontoMaggiorazione;
|
||||
|
||||
//float 2 decimal type
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float|Optional $ImportoTotaleDocumento;
|
||||
|
||||
//float 2 decimal type
|
||||
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float|Optional $Arrotondamento;
|
||||
|
||||
//string 200char
|
||||
/** @var string[] */
|
||||
public array|Optional $Causale;
|
||||
|
||||
//SI = Documento emesso secondo modalità e termini stabiliti con DM ai sensi dell'art. 73 DPR 633/72
|
||||
//optional 2 char - only value possible = SI
|
||||
#[Size(2)]
|
||||
public string|Optional $Art73;
|
||||
|
||||
//length 4 - optional
|
||||
#[Size(4)]
|
||||
public string $TipoDocumento = 'TD01';
|
||||
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Body;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
|
||||
class DatiRitenuta extends Data
|
||||
{
|
||||
//string 4 char options
|
||||
#[Size(4)]
|
||||
public string $TipoRitenuta;
|
||||
|
||||
//float 2 decimal
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float $ImportoRitenuta;
|
||||
|
||||
// <xs:restriction base="xs:decimal">
|
||||
// <xs:maxInclusive value="100.00" />
|
||||
// <xs:pattern value="/^[0-9]{1,3}\.[0-9]{2}$/" />
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2}$/')]
|
||||
public float $AliquotaRitenuta;
|
||||
|
||||
/*
|
||||
<xs:enumeration value="A" />
|
||||
<xs:enumeration value="B" />
|
||||
<xs:enumeration value="C" />
|
||||
<xs:enumeration value="D" />
|
||||
<xs:enumeration value="E" />
|
||||
<xs:enumeration value="G" />
|
||||
<xs:enumeration value="H" />
|
||||
<xs:enumeration value="I" />
|
||||
<xs:enumeration value="L" />
|
||||
<xs:enumeration value="M" />
|
||||
<xs:enumeration value="N" />
|
||||
<xs:enumeration value="O" />
|
||||
<xs:enumeration value="P" />
|
||||
<xs:enumeration value="Q" />
|
||||
<xs:enumeration value="R" />
|
||||
<xs:enumeration value="S" />
|
||||
<xs:enumeration value="T" />
|
||||
<xs:enumeration value="U" />
|
||||
<xs:enumeration value="V" />
|
||||
<xs:enumeration value="W" />
|
||||
<xs:enumeration value="X" />
|
||||
<xs:enumeration value="Y" />
|
||||
<!-- IL CODICE SEGUENTE (Z) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
|
||||
<xs:enumeration value="Z" />
|
||||
<xs:enumeration value="L1" />
|
||||
<xs:enumeration value="M1" />
|
||||
<xs:enumeration value="M2" />
|
||||
<xs:enumeration value="O1" />
|
||||
<xs:enumeration value="V1" />
|
||||
<xs:enumeration value="ZO" />
|
||||
*/
|
||||
#[Max(2)]
|
||||
public string $CausalePagamento;
|
||||
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Body;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
|
||||
class ScontoMaggiorazione extends Data
|
||||
{
|
||||
//string options
|
||||
//SC - Sconto //discount
|
||||
//MG - Maggiorazione //surcharge
|
||||
#[Size(2)]
|
||||
public string $Tipo;
|
||||
//float 0-100
|
||||
#[Regex('/^[0-9]{1,3}\.[0-9]{2}$/')]
|
||||
public float|Optional $Percentuale;
|
||||
|
||||
//Amount8DecimalType
|
||||
#[Regex('/^[\-]?[0-9]{1,11}\.[0-9]{2,8}$/')]
|
||||
public float|Optional $Importo;
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
class Contatti extends Data
|
||||
{
|
||||
public string|Optional $Telefono;
|
||||
public string|Optional $Fax;
|
||||
public string|Optional $Email;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\IdFiscaleIVA;
|
||||
|
||||
class DatiAnagraficiVettore extends Data
|
||||
{
|
||||
public IdFiscaleIVA $IdFiscaleIVA;
|
||||
|
||||
public Anagrafica $Anagrafica;
|
||||
|
||||
public string|Optional $CodiceFiscale;
|
||||
|
||||
//String20Type
|
||||
public string|Optional $NumeroLicenzaGuida;
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use App\DataMapper\EDoc\FatturaPA\DettaglioLinee;
|
||||
|
||||
class DatiBeniServizi extends Data
|
||||
{
|
||||
public DettaglioLinee $DettaglioLinee;
|
||||
|
||||
public DatiRiepilogo $DatiRiepilogo;
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use App\DataMapper\EDoc\FatturaPA\DettaglioPagamento;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
class DatiPagamento extends Data
|
||||
{
|
||||
//string min4 max4 - optionlist
|
||||
public string $CondizioniPagamento = 'TP02';
|
||||
|
||||
public DettaglioPagamento $DettaglioPagamento;
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
class DatiRiepilogo extends Data
|
||||
{
|
||||
|
||||
//float 0-100.0
|
||||
public float $AliquotaIVA;
|
||||
|
||||
//Amount2DecimalType
|
||||
public float $ImponibileImporto;
|
||||
|
||||
//Amount2DecimalType
|
||||
public float $Imposta;
|
||||
|
||||
//string - options
|
||||
public string|Optional $Natura;
|
||||
|
||||
//Amount2DecimalType
|
||||
public float|Optional $SpeseAccessorie;
|
||||
|
||||
//Amount8DecimalType
|
||||
public float|Optional $Arrotondamento;
|
||||
|
||||
//string options D/I/S
|
||||
public string|Optional $EsigibilitaIVA;
|
||||
|
||||
//String100LatinType
|
||||
public string|Optional $RiferimentoNormativo;
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,70 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiTrasporto extends Data
|
||||
{
|
||||
public DatiAnagraficiVettore|Optional $DatiAnagraficiVettore;
|
||||
|
||||
//String80LatinType
|
||||
public string|Optional $MezzoTrasporto;
|
||||
|
||||
//String100LatinType
|
||||
public string|Optional $CausaleTrasporto;
|
||||
|
||||
//int 1-9999
|
||||
public int|Optional $NumeroColli;
|
||||
|
||||
//String100LatinType
|
||||
public string|Optional $Descrizione;
|
||||
|
||||
//String10Type
|
||||
public string|Optional $UnitaMisuraPeso;
|
||||
|
||||
|
||||
//[0-9]{1,4}\.[0-9]{1,2} //decimal
|
||||
public float|Optional $PesoLordo;
|
||||
|
||||
//[0-9]{1,4}\.[0-9]{1,2} //decimal
|
||||
public float|Optional $PesoNetto;
|
||||
|
||||
//dateTime
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d\TH:i:s.uP')]
|
||||
public Carbon|Optional $DataOraRitiro;
|
||||
//date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public Carbon|Optional $DataInizioTrasporto;
|
||||
|
||||
//[A-Z]{3}
|
||||
public string|Optional $TipoResa;
|
||||
|
||||
public Sede|Optional $IndirizzoResa;
|
||||
|
||||
//dateTime
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public Carbon|Optional $DataOraConsegna;
|
||||
|
||||
|
||||
// public function __construct()
|
||||
// {
|
||||
// $this->DataOraConsegna = new \DateTime();
|
||||
// $this->DataInizioTrasporto = new \DateTime();
|
||||
// $this->DataInizioTrasporto = new \DateTime();
|
||||
// }
|
||||
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiVeicoli extends Data
|
||||
{
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public Carbon|Optional $Data;
|
||||
|
||||
//String15Type
|
||||
public string $TotalePercorso;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// $this->Data = new \DateTime();
|
||||
}
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use App\DataMapper\EDoc\FatturaPA\Generics\CodiceArticolo;
|
||||
use App\DataMapper\EDoc\FatturaPA\Body\ScontoMaggiorazione;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DettaglioLinee extends Data
|
||||
{
|
||||
|
||||
//1-9999
|
||||
public int $NumeroLinea;
|
||||
|
||||
//String1000LatinType
|
||||
public string $Descrizione;
|
||||
|
||||
//Amount8DecimalType
|
||||
public float $PrezzoUnitario;
|
||||
|
||||
// Amount8DecimalType
|
||||
public float $PrezzoTotale;
|
||||
|
||||
// <xs:restriction base="xs:decimal">
|
||||
// <xs:maxInclusive value="100.00" />
|
||||
// <xs:pattern value="/^[0-9]{1,3}\.[0-9]{2}$/" />
|
||||
// 0-100
|
||||
public float $AliquotaIVA;
|
||||
|
||||
//string 2 char options
|
||||
public string|Optional $TipoCessionePrestazione;
|
||||
|
||||
public CodiceArticolo|Optional $CodiceArticolo;
|
||||
|
||||
// <xs:restriction base="xs:decimal">
|
||||
// <xs:pattern value="[0-9]{1,12}\.[0-9]{2,8}" />
|
||||
public float|Optional $Quantita;
|
||||
|
||||
//String10Type
|
||||
public string|Optional $UnitaMisura;
|
||||
|
||||
//date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $DataInizioPeriodo;
|
||||
|
||||
//date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $DataFinePeriodo;
|
||||
|
||||
public ScontoMaggiorazione|Optional $ScontoMaggiorazione;
|
||||
|
||||
//4 char options
|
||||
public string|Optional $Ritenuta;
|
||||
|
||||
//string options
|
||||
public string|Optional $Natura;
|
||||
|
||||
//string 20 char
|
||||
public string|Optional $RiferimentoAmministrazione;
|
||||
|
||||
public AltriDatiGestionali|Optional $AltriDatiGestionali;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,92 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\DatiVeicoli;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use App\DataMapper\EDoc\FatturaPA\Body\DatiGenerali;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DettaglioPagamento extends Data
|
||||
{
|
||||
|
||||
//string length 4 - options
|
||||
public string $ModalitaPagamento = 'MP01';
|
||||
|
||||
// Amount2DecimalType
|
||||
public float $ImportoPagamento;
|
||||
|
||||
//String200LatinType
|
||||
public string|Optional $Beneficiario;
|
||||
|
||||
//date
|
||||
public string|Optional $DataRiferimentoTerminiPagamento;
|
||||
|
||||
// <xs:restriction base="xs:integer">
|
||||
// <xs:minInclusive value="0" />
|
||||
// <xs:maxInclusive value="999" />
|
||||
public int|Optional $GiorniTerminiPagamento;
|
||||
|
||||
//date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $DataScadenzaPagamento;
|
||||
|
||||
//String20Type
|
||||
public string|Optional $CodUfficioPostale;
|
||||
|
||||
//String60LatinType
|
||||
public string|Optional $CognomeQuietanzante;
|
||||
|
||||
//String60LatinType
|
||||
public string|Optional $NomeQuietanzante;
|
||||
|
||||
//string [A-Z0-9]{16}
|
||||
public string|Optional $CFQuietanzante;
|
||||
|
||||
//string {IsBasicLatin}{2,10}
|
||||
public string|Optional $TitoloQuietanzante;
|
||||
|
||||
//string String80LatinType
|
||||
public string|Optional $IstitutoFinanziario;
|
||||
|
||||
//[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{11,30}
|
||||
public string|Optional $IBAN;
|
||||
|
||||
// string [0-9][0-9][0-9][0-9][0-9]
|
||||
public string|Optional $ABI;
|
||||
|
||||
//[0-9][0-9][0-9][0-9][0-9]
|
||||
public string|Optional $CAB;
|
||||
|
||||
//[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3}){0,1}
|
||||
public string|Optional $BIC;
|
||||
|
||||
//Amount2DecimalType
|
||||
public float|Optional $ScontoPagamentoAnticipato;
|
||||
|
||||
//Date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $DataLimitePagamentoAnticipato;
|
||||
|
||||
//Amount2DecimalType
|
||||
public float|Optional $PenalitaPagamentiRitardati;
|
||||
|
||||
//date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $DataDecorrenzaPenale;
|
||||
|
||||
//String60Type
|
||||
public string|Optional $CodicePagamento;
|
||||
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\DatiVeicoli;
|
||||
use App\DataMapper\EDoc\FatturaPA\DatiBeniServizi;
|
||||
use App\DataMapper\EDoc\FatturaPA\Body\DatiGenerali;
|
||||
|
||||
class FatturaElettronicaBody extends Data
|
||||
{
|
||||
|
||||
public DatiGenerali $DatiGenerali;
|
||||
public DatiBeniServizi $DatiBeniServizi;
|
||||
public DatiVeicoli|Optional $DatiVeicoli;
|
||||
public DatiPagamento|Optional $DatiPagamento;
|
||||
public Allegati|Optional $Allegati;
|
||||
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\DatiTrasmissione;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\CedentePrestatore;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\CessionarioCommittente;
|
||||
|
||||
class FatturaElettronicaHeader extends Data
|
||||
{
|
||||
public DatiTrasmissione $DatiTrasmissione; //DatiTrasmissione
|
||||
public CedentePrestatore $CedentePrestatore; //CedentePrestatore
|
||||
public CessionarioCommittente $CessionarioCommittente; //CessionarioCommittente
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class FatturaPrincipale extends Data
|
||||
{
|
||||
//String20Type
|
||||
public string $NumeroFatturaPrincipale;
|
||||
//dateTime
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $DataFatturaPrincipale;
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Generics;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
|
||||
class CodiceArticolo extends Data
|
||||
{
|
||||
//string 35 char
|
||||
#[Max(35)]
|
||||
public string $CodiceTipo;
|
||||
|
||||
//string 35 char
|
||||
#[Max(35)]
|
||||
public string $CodiceValore;
|
||||
}
|
||||
|
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Generics;
|
||||
|
||||
use Spatie\LaravelData\Attributes\Validation\Between;
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiDDT extends Data
|
||||
{
|
||||
//String20Type
|
||||
public string $NumeroDDT;
|
||||
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon $DataDDT;
|
||||
|
||||
//int 1-9999
|
||||
#[Between(1,9999)]
|
||||
public int|Optional $RiferimentoNumeroLinea;
|
||||
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Generics;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Attributes\Validation\Between;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiDocumentiCorrelatiType extends Data
|
||||
{
|
||||
//String20Type
|
||||
#[Max(20)]
|
||||
public string $IdDocumento;
|
||||
//int 1-9999
|
||||
#[Between(1,9999)]
|
||||
public int|Optional $RiferimentoNumeroLinea;
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Illuminate\Support\Carbon|Optional $Data;
|
||||
//String20Type
|
||||
#[Max(20)]
|
||||
public string|Optional $NumItem;
|
||||
//String100LatinType
|
||||
#[Max(100)]
|
||||
public string|Optional $CodiceCommessaConvenzione;
|
||||
//String15Type
|
||||
#[Max(15)]
|
||||
public string|Optional $CodiceCUP;
|
||||
//String15Type
|
||||
#[Max(15)]
|
||||
public string|Optional $CodiceCIG;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Generics;
|
||||
|
||||
use Spatie\LaravelData\Attributes\Validation\Between;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
class DatiSAL extends Data
|
||||
{
|
||||
|
||||
//int 1-999
|
||||
#[Between(1,999)]
|
||||
public int $RiferimentoFase;
|
||||
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\Sede;
|
||||
use App\DataMapper\EDoc\FatturaPA\Contatti;
|
||||
use App\DataMapper\EDoc\FatturaPA\IscrizioneREA;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\DatiAnagrafici;
|
||||
use App\DataMapper\EDoc\FatturaPA\StabileOrganizzazione;
|
||||
|
||||
class CedentePrestatore extends Data
|
||||
{
|
||||
|
||||
public function __construct(
|
||||
|
||||
public DatiAnagrafici $DatiAnagrafici,
|
||||
|
||||
public Sede $Sede,
|
||||
|
||||
public StabileOrganizzazione|Optional $StabileOrganizzazione,
|
||||
|
||||
public IscrizioneREA|Optional $IscrizioneREA,
|
||||
|
||||
public Contatti|Optional $Contatti,
|
||||
|
||||
public string|Optional $RiferimentoAmministrazione,
|
||||
){}
|
||||
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\Sede;
|
||||
use App\DataMapper\EDoc\FatturaPA\RappresentanteFiscale;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\DatiAnagraficiCedenteType;
|
||||
|
||||
class CessionarioCommittente extends Data
|
||||
{
|
||||
public DatiAnagraficiCedenteType $DatiAnagrafici;
|
||||
|
||||
/** @var Sede[] */
|
||||
public array $Sede;
|
||||
|
||||
/** @var Sede[] */
|
||||
public array|Optional $StabileOrganizzazione;
|
||||
|
||||
public RappresentanteFiscale|Optional $RappresentanteFiscale;
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\Anagrafica;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\IdFiscaleIVA;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiAnagrafici extends Data
|
||||
{
|
||||
public function __construct(
|
||||
|
||||
public Anagrafica $Anagrafica,
|
||||
|
||||
public IdFiscaleIVA $IdFiscaleIVA,
|
||||
|
||||
// string length 4 - options = 'RF01'
|
||||
#[Max(4)]
|
||||
public string|Optional $RegimeFiscale,
|
||||
|
||||
#[Regex('/^[A-Z0-9]{11,16}$/')]
|
||||
public string|Optional $CodiceFiscale,
|
||||
|
||||
//string 60 char
|
||||
#[Max(60)]
|
||||
public string|Optional $AlboProfessionale,
|
||||
|
||||
//string 2 char
|
||||
#[Regex('/^[A-Z]{2}$/')]
|
||||
#[Size(2)]
|
||||
public string|Optional $ProvinciaAlbo,
|
||||
|
||||
//string 60 char
|
||||
#[Max(60)]
|
||||
public string|Optional $NumeroIscrizioneAlbo,
|
||||
|
||||
//Date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Datetime|Optional $DataIscrizioneAlbo,
|
||||
|
||||
){}
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
use App\DataMapper\EDoc\FatturaPA\Anagrafica;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\IdFiscaleIVA;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
use Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer;
|
||||
|
||||
class DatiAnagraficiCedenteType extends Data
|
||||
{
|
||||
public function __construct(
|
||||
|
||||
public Anagrafica $Anagrafica,
|
||||
|
||||
public IdFiscaleIVA|Optional $IdFiscaleIVA,
|
||||
|
||||
// string length 4 - options = 'RF01'
|
||||
#[Size(4)]
|
||||
public string|Optional $RegimeFiscale,
|
||||
|
||||
//[A-Z0-9]{11,16}
|
||||
#[Regex('/^[A-Z0-9]{11,16}$/')]
|
||||
public string|Optional $CodiceFiscale,
|
||||
|
||||
//string 60 char
|
||||
#[Max(20)]
|
||||
public string|Optional $AlboProfessionale,
|
||||
|
||||
//string 2 chat [A-Z]{2}
|
||||
#[Size(2)]
|
||||
#[Regex('/^[A-Z]{2}$/')]
|
||||
public string|Optional $ProvinciaAlbo,
|
||||
|
||||
//string 60 char
|
||||
#[Max(60)]
|
||||
public string|Optional $NumeroIscrizioneAlbo,
|
||||
|
||||
//Date
|
||||
#[WithTransformer(DateTimeInterfaceTransformer::class, format: 'Y-m-d')]
|
||||
public \Datetime|Optional $DataIscrizioneAlbo,
|
||||
){}
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
use Spatie\LaravelData\Attributes\Validation\Size;
|
||||
|
||||
class DatiTrasmissione extends Data
|
||||
{
|
||||
public IdTrasmittente $IdTrasmittente; //IdTrasmittente
|
||||
|
||||
#[Max(10)]
|
||||
public string $ProgressivoInvio = ''; //String
|
||||
|
||||
#[Size(5)]
|
||||
public string $FormatoTrasmissione = ''; //String
|
||||
|
||||
#[Regex('/^[A-Z0-9]{6,7}$/')]
|
||||
public string $CodiceDestinatario = ''; //String
|
||||
|
||||
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Min;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
class IdFiscaleIVA extends Data
|
||||
{
|
||||
public function __construct(
|
||||
// #[\Required]
|
||||
#[Regex('/^[A-Z]{2}$/')]
|
||||
public string $IdPaese = '',
|
||||
|
||||
// #[\Required]
|
||||
#[Min(1)]
|
||||
#[Max(28)]
|
||||
public string $IdCodice = '',
|
||||
){}
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA\Header;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Attributes\Validation\Max;
|
||||
use Spatie\LaravelData\Attributes\Validation\Min;
|
||||
use Spatie\LaravelData\Attributes\Validation\Regex;
|
||||
|
||||
class IdTrasmittente extends Data
|
||||
{
|
||||
#[Regex('/^[A-Z]{2}$/')]
|
||||
public string $IdPaese; //String
|
||||
|
||||
#[Min(1)]
|
||||
#[Max(28)]
|
||||
public string $IdCodice; //String
|
||||
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
class IscrizioneREA extends Data
|
||||
{
|
||||
//[A-Z]{2}
|
||||
public string $Ufficio;
|
||||
|
||||
//string length 20
|
||||
public string|Optional $NumeroREA;
|
||||
|
||||
//precision 2
|
||||
public float|Optional $CapitaleSociale;
|
||||
|
||||
// options
|
||||
// SU - socio unico (sole trader)
|
||||
// SN - piu soci (multiple shareholders)
|
||||
public string|Optional $SocioUnico;
|
||||
|
||||
// options
|
||||
// LS - In Liquidation
|
||||
// LN - Not in liquidation
|
||||
public string $StatoLiquidazione = 'LN';
|
||||
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use App\DataMapper\EDoc\FatturaPA\Header\IdFiscaleIVA;
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
class RappresentanteFiscale extends Data
|
||||
{
|
||||
public IdFiscaleIVA $IdFiscaleIVA;
|
||||
|
||||
public Anagrafica $Anagrafica;
|
||||
|
||||
// <xs:pattern value="[A-Z0-9]{11,16}" />
|
||||
public string|Optional $CodiceFiscaleType;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
class Sede extends Data
|
||||
{
|
||||
public string $Indirizzo = ''; //string - address, 60char limit
|
||||
|
||||
public int $CAP = 12345; //[0-9][0-9][0-9][0-9][0-9] ie 12345
|
||||
|
||||
public string $Comune = ''; //String 60char limit
|
||||
|
||||
public string $Nazione = 'IT'; //String default IT
|
||||
|
||||
public string|Optional $Provincia; //String [A-Z]{2}
|
||||
|
||||
public string|Optional $NumeroCivico; // regex \p{IsBasicLatin}{1,8})
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\EDoc\FatturaPA;
|
||||
|
||||
class StabileOrganizzazione extends Sede
|
||||
{
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user