@openade/fe
Version:
Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)
55 lines • 2.12 kB
JavaScript
;
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