UNPKG

@disruptive-learning/cfdi-to-pdf

Version:

Librería para crear un pdf basado en un XML CFDI o Retenciones

88 lines (87 loc) 3.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const cfdi_core_1 = require("@nodecfdi/cfdi-core"); const catalogs_source_1 = require("#src/catalogs/catalogs_source"); const genericCfdiRelacionadosContent = (relacionados, catalogs, primaryColor, bgGrayColor) => { const relatedInfoAndImport = []; const pushElementFromRelatedNode = (relatedNode) => { const uuidsArray = relatedNode.searchNodes('cfdi:CfdiRelacionado').map((relacionado) => { return relacionado.getAttribute('UUID'); }); const tipoRelacion = (0, catalogs_source_1.getKeyValueOfCatalog)('cfdi40TiposRelaciones', relatedNode.getAttribute('TipoRelacion'), catalogs); relatedInfoAndImport.push({ tipoRelacion, uuids: uuidsArray }); }; if (relacionados instanceof cfdi_core_1.XmlNodes) { for (const relacionadosNode of relacionados) { pushElementFromRelatedNode(relacionadosNode); } } else { pushElementFromRelatedNode(relacionados); } return { table: { widths: ['auto', '5%', '*'], body: [ [ { text: 'CFDI relacionados', colSpan: 3, alignment: 'left', color: primaryColor, style: 'tableSubtitleHeader', }, '', '', ], [ { text: 'Tipo de relación', alignment: 'left', fillColor: bgGrayColor, color: primaryColor, }, { text: '', fillColor: bgGrayColor, }, { text: 'UUID', alignment: 'left', fillColor: bgGrayColor, color: primaryColor, }, ], ...relatedInfoAndImport.map((related) => { return [ { text: related.tipoRelacion, alignment: 'left', fillColor: bgGrayColor, }, { text: '', fillColor: bgGrayColor, }, { text: related.uuids.join(' | '), alignment: 'left', fillColor: bgGrayColor, }, ]; }), [ { text: '', colSpan: 3, border: [false, true, false, false], }, '', '', ], ], }, layout: 'tableLayout', }; }; exports.default = genericCfdiRelacionadosContent;