UNPKG

@palmabit/json2fatturapaxml

Version:

Crea una fattura elettronica partendo da un JSON

178 lines (143 loc) 4.25 kB
# JSON 2 FatturaPa XML Generazione di una fattura in formato xml compatibile con le specifiche di fatturapa.gov.it ## Getting Started ### Installing ```bash npm install --save json2fatturapaxml ``` ### Usage ```javascript const json2fatturapaxml = require('json2fatturapaxml') const invoice = { FatturaElettronicaHeader: { DatiTrasmissione: { IdTrasmittente: { IdPaese: 'IT', IdCodice: '03469550986' }, ProgressivoInvio: '001', FormatoTrasmissione: 'FPR12', CodiceDestinatario: '0000000', PECDestinatario: 'palmabit@pec.it' }, CedentePrestatore: { DatiAnagrafici: { IdFiscaleIVA: { IdPaese: 'IT', IdCodice: '03469550986' }, Anagrafica: { Denominazione: 'dfa' }, RegimeFiscale: 'RF19' }, Sede: { Indirizzo: 'Indirizzo', CAP: '00000', Comune: 'Comune', Nazione: 'IT' } }, CessionarioCommittente: { DatiAnagrafici: { IdFiscaleIVA: { IdPaese: 'IT', IdCodice: '03469550986' }, Anagrafica: { Denominazione: 'Denominazione' } }, Sede: { Indirizzo: 'Indirizzo', CAP: '00000', Comune: 'Comune', Nazione: 'IT' } } }, FatturaElettronicaBody: { DatiGenerali: { DatiGeneraliDocumento: { TipoDocumento: 'TD01', Divisa: 'EUR', Data: '2018-11-19', Numero: '1' } }, DatiBeniServizi: { DettaglioLinee: { NumeroLinea: 1, Descrizione: 'Descrizione', PrezzoUnitario: '0.00', PrezzoTotale: '0.00', AliquotaIVA: '22.00' }, DatiRiepilogo: { AliquotaIVA: '22.00', ImponibileImporto: '0.00', Imposta: '0.00' } } } } const result = json2fatturapaxml(invoice) if (!result.error) { // Check error console.log('xml', result) } ``` Alcuni caratteri speciali possono essere sostituiti o rimossi dall'XML. **Caratteri ammessi** ``` ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 ,;:-_*+!% \/()=? ``` **Caratteri sostituiti** ``` à -> a' è -> e' é -> e' ì -> i' ò -> o' ù -> u'-> Euro & -> e [ -> ( ] -> ) { -> ( } -> ) < -> spazio vuoto > -> spazio vuoto ``` Tutti gli altri caratteri non ammessi sono rimossi dall'XML. ### Options La funzione `json2fatturapaxml` accetta un secondo parametro contenente le opzioni ```javascript const options = { returnXmlWithErrors: false //default false language: "EN" // default "EN". Attualmente le lingue supportate sono: "IT", "EN". } const { error, xml } = json2fatturapaxml(invoice, options) ``` ### Error Il JSON in ingresso viene validato secondo questo [formato fattura]. ## Running the tests ```bash npm test ``` ## Built With * [xml-js](https://github.com/nashwaan/xml-js#readme) - A convertor between XML text and Javascript object / JSON text ## Contributing Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us. Per aggiungere/modificare le lingue segui questa guida: [TRANSLATIONS.md](TRANSLATIONS.md) ## Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags). ## Authors * **Palmabit** - *Initial work* - [Palmabit](https://github.com/Palmabit-IT) See also the list of [contributors](https://github.com/Palmabit-IT/json2fatturapaxml/contributors) who participated in this project. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details [formato fattura]: https://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2.1/Rappresentazione_tabellare_del_tracciato_FatturaPA_versione_1.2.1.pdf