UNPKG

@openade/fe

Version:

Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)

55 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildInvoiceXML = buildInvoiceXML; exports.validateInvoiceXML = validateInvoiceXML; const fast_xml_parser_1 = require("fast-xml-parser"); function createFatturaXMLBuilder() { return new fast_xml_parser_1.XMLBuilder({ ignoreAttributes: false, format: true, indentBy: ' ', suppressEmptyNode: true, attributeNamePrefix: '@_', }); } function buildInvoiceXML(invoice) { const builder = createFatturaXMLBuilder(); const xmlObject = { '?xml': { '@_version': '1.0', '@_encoding': 'UTF-8', }, 'p:FatturaElettronica': { '@_versione': invoice['@_versione'], '@_xmlns:ds': 'http://www.w3.org/2000/09/xmldsig#', '@_xmlns:p': 'http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2', '@_xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', '@_xsi:schemaLocation': 'http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd', FatturaElettronicaHeader: invoice.fatturaElettronicaHeader, FatturaElettronicaBody: Array.isArray(invoice.fatturaElettronicaBody) ? invoice.fatturaElettronicaBody : [invoice.fatturaElettronicaBody], }, }; return builder.build(xmlObject); } function validateInvoiceXML(xml) { const errors = []; if (!xml.includes('FatturaElettronica')) { errors.push('Missing FatturaElettronica root element'); } if (!xml.includes('FatturaElettronicaHeader')) { errors.push('Missing FatturaElettronicaHeader'); } if (!xml.includes('FatturaElettronicaBody')) { errors.push('Missing FatturaElettronicaBody'); } if (!xml.includes('DatiTrasmissione')) { errors.push('Missing DatiTrasmissione'); } return { valid: errors.length === 0, errors, }; } //# sourceMappingURL=invoice.xml.js.map