axiostudio/fattura-elettronica
Composer 安装命令:
composer require axiostudio/fattura-elettronica
包简介
Pacchetto per la gestione della fatturazione elettronica in PHP.
README 文档
README
Introduzione
Fattura Elettronica è un pacchetto PHP che consente di generare all'interno del proprio applicativo, fatture elettroniche in XML compatibili con le seguenti specifiche: https://www.agenziaentrate.gov.it/portale/web/guest/fatturazione-elettronica-e-dati-fatture-transfrontaliere-new
Requisiti
- Composer 2
- PHP (dalla versione 8.1 in poi)
Installazione
Per installare il pacchetto eseguire:
composer require axiostudio/fattura-elettronica
Utilizzo
Finita l'installazione, per utilizzare il pacchetto è necessario inizializzare la classe:
$fattura = new \Axiostudio\FatturaElettronica\FatturaElettronica();
Successivamente bisogna passare i dati necessari al metodo "compose" che ci restituirà un array contente un parametro fileName che dichiara il nome del file XML generato e un parametro fileContent che contiene in formato string l'XML generato.
Per generare la fattura è necessario richiamare il metodo compose() passando al suo interno i dati necessari alla fattura che saranno parsati, computati e convertiti in formato XML secondo le specifiche.
La funzione "compose" necessita dei seguenti oggetti, nel seguente ordine per comporre la fattura:
- $datiTrasmissione,
- $anagraficaPrestatore,
- $sedePrestatore,
- $anagraficaCommittente,
- $sedeCommittente,
- $datiGenerali,
- $datiDatiPagamento,
- $dettaglioLinee,
- $datiRiepilogo
Ogni oggetto ha una specifica struct con dati obbligatori e dati opzionali. Di seguito la descrizione di essi:
DatiAnagrafici
public Id $IdFiscaleIVA;
public Anagrafica $Anagrafica;
public ?string $CodiceFiscale;
public ?string $RegimeFiscale;
Id
public string $IdCodice;
public ?string $IdPaese;
Anagrafica
public ?string $Denominazione;
public ?string $Nome;
public ?string $Cognome;
Sede
public string $Indirizzo;
public string $CAP;
public string $Comune;
public ?string $Provincia;
public ?string $Nazione;
DatiGeneraliDocumento
public string $Numero;
public string $Data;
public float $ImportoTotaleDocumento;
public ?string $Causale;
public ?string $TipoDocumento;
public ?string $Divisa;
DatiPagamento
public DettaglioPagamento $DettaglioPagamento;
public ?string $CondizioniPagamento;
DettaglioPagamento
public float $ImportoPagamento;
public ?string $DataScadenzaPagamento;
public ?string $DataRiferimentoTerminiPagamento;
public ?string $GiorniTerminiPagamento;
public ?string $Beneficiario;
public ?string $IstitutoFinanziario;
public ?string $IBAN;
public ?string $ABI;
public ?string $CAB;
public ?string $BIC;
public ?string $ModalitaPagamento;
DatiRiepilogo
public float $ImponibileImporto;
public float $AliquotaIVA;
public ?string $Natura;
public ?string $EsigibilitaIVA;
public float $Imposta;
DatiTrasmissione
public Id $IdTrasmittente;
public string $ProgressivoInvio;
public ?string $CodiceDestinatario;
public ?string $PECDestinatario;
public ?string $FormatoTrasmissione;
DettaglioLinee
public string $Descrizione;
public float $PrezzoUnitario;
public ?float $Quantita;
public ?string $UnitaMisura;
public ?float $AliquotaIVA;
public ?string $Natura;
public ?float $PrezzoTotale;
DettaglioPagamento
public float $ImportoPagamento;
public ?string $DataScadenzaPagamento;
public ?string $DataRiferimentoTerminiPagamento;
public ?string $GiorniTerminiPagamento;
public ?string $Beneficiario;
public ?string $IstitutoFinanziario;
public ?string $IBAN;
public ?string $ABI;
public ?string $CAB;
public ?string $BIC;
public ?string $ModalitaPagamento;
Inizializzazione di una nuova fattura
Per inizializzare una fattura avremo quindi una struct di questo tipo:
$datiXml = $fattura->compose( $datiTrasmissione, // DatiTrasmissione $anagraficaPrestatore, // DatiAnagrafici $sedePrestatore, // Sede $anagraficaCommittente, // DatiAnagrafici $sedeCommittente, // Sede $datiGenerali, // DatiGeneraliDocumento $datiDatiPagamento, // DatiPagamento $dettaglioLinee, // [] DettaglioLinee $datiRiepilogo // [] DatiRiepilogo );
Esempio completo
Di seguito un semplice esempio di utilizzo:
$fattura = new FatturaElettronica(); $datiTrasmissione = [ '12345678910', '123' ]; $anagraficaPrestatore = [ '12345678910', 'Fornitore srl' ]; $sedePrestatore = [ 'Via Verdi', '00100', 'Roma', 'RM' ]; $anagraficaCommittente = [ '12345678911', 'Cliente srl' ]; $sedeCommittente = [ 'Via Puccini', '20100', 'Milano', 'MI' ]; $datiGeneraliDocumento = [ '123', '2021-01-01', '345.22' ]; $datiGenerali = [$datiGeneraliDocumento]; $dettaglioPagamento = ['345.22']; $datiDatiPagamento = [$dettaglioPagamento]; $dettaglioLinee = [ ['Articolo di riga 1', '100.50'], ['Articolo di riga 2', '100.50'], ['Articolo di riga 3', '100.00', '1', 'pz', '0.00', 'N2.1'], ]; $datiRiepilogo = [ ['201.00', '22.00'], ['100.00', '0.00', 'N2.1'], ]; $datiXml = $fattura->compose( $datiTrasmissione, $anagraficaPrestatore, $sedePrestatore, $anagraficaCommittente, $sedeCommittente, $datiGenerali, $datiDatiPagamento, $dettaglioLinee, $datiRiepilogo ); var_dump($datiXml);
Note
Per supporto o bug utilizzare le Issue di Github, per collaborare invece è sufficente aprire un PR con le specifiche dell'integrazione eseguita.
Credits
Questo pacchetto è stato creato ed è mantenuto da Axio Studio, per maggiori informazioni: https://axio.studio.
axiostudio/fattura-elettronica 适用场景与选型建议
axiostudio/fattura-elettronica 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 84 次下载、GitHub Stars 达 3, 最近一次更新时间为 2023 年 11 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「package」 「php」 「xml」 「backend」 「laravel」 「italia」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 axiostudio/fattura-elettronica 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 axiostudio/fattura-elettronica 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 axiostudio/fattura-elettronica 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Load DOM document safety
Simple ASCII output of array data
Added a method to Laravel response for handling xml response and also converting Eloquent return to XML.
Uses reflection to map XML to PHP objects.
Xml Template Engine
统计信息
- 总下载量: 84
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-16