@disruptive-learning/cfdi-to-pdf
Version:
Librería para crear un pdf basado en un XML CFDI o Retenciones
94 lines (93 loc) • 3.66 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const catalogs_source_1 = require("#src/catalogs/catalogs_source");
const cfdi_data_1 = __importDefault(require("#src/cfdi_data"));
const retenciones_data_1 = __importDefault(require("#src/retenciones_data"));
const genericEmisorContent = (data, catalogs, primaryColor, bgGrayColor) => {
const emisor = data.emisor();
const additionalEmisorData = [];
let razonSocial = '';
let rfc = '';
let numCertificado = '';
let regimenFiscal = '';
let curp;
if (data instanceof cfdi_data_1.default) {
razonSocial = emisor.getAttribute('Nombre');
rfc = emisor.getAttribute('Rfc');
numCertificado = data.comprobante().getAttribute('NoCertificado');
regimenFiscal = emisor.getAttribute('RegimenFiscal');
}
else if (data instanceof retenciones_data_1.default) {
const retVersion = data.retenciones().getAttribute('Version');
razonSocial = emisor.getAttribute('NomDenRazSocE');
rfc = emisor.getAttribute(retVersion === '1.0' ? 'RFCEmisor' : 'RfcE');
numCertificado = data.retenciones().getAttribute('NumCert');
regimenFiscal = emisor.getAttribute('RegimenFiscalE');
curp = emisor.getAttribute('CURPE');
}
if (regimenFiscal !== '') {
additionalEmisorData.push([
{
text: [
{ text: 'Regimen Fiscal ', color: primaryColor },
{
text: (0, catalogs_source_1.getKeyValueOfCatalog)('cfdi40RegimenesFiscales', regimenFiscal, catalogs),
},
],
},
]);
}
additionalEmisorData.push([
{
text: [{ text: 'Número de certificado ', color: primaryColor }, { text: numCertificado }],
},
]);
if (curp && curp !== '') {
additionalEmisorData.push([
{
text: [{ text: 'CURP ', color: primaryColor }, { text: curp }],
},
]);
}
return {
table: {
widths: ['49.5%', '*', '49.5%'],
body: [
[
{ text: 'Datos del emisor', style: ['tableSubtitleHeader'], color: primaryColor },
'',
{ text: 'Datos adicionales emisor', style: ['tableSubtitleHeader'], color: primaryColor },
],
[
{
fillColor: bgGrayColor,
table: {
widths: ['*'],
body: [
[{ text: razonSocial, style: ['subHeader'], color: primaryColor }],
[{ text: [{ text: 'RFC ', color: primaryColor }, { text: rfc }] }],
],
},
layout: 'tableLayout',
border: [false, false, false, true],
},
'',
{
fillColor: bgGrayColor,
table: {
widths: ['*'],
body: additionalEmisorData,
},
layout: 'tableLayout',
border: [false, false, false, true],
},
],
],
},
layout: 'tableLayout',
};
};
exports.default = genericEmisorContent;