UNPKG

@disruptive-learning/cfdi-to-pdf

Version:

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

90 lines (89 loc) 3.25 kB
import { getParser, MIME_TYPE, nodeToXmlString } from '@nodecfdi/cfdi-core'; import { DiscoverExtractor } from '@nodecfdi/cfdi-expresiones'; import normalizeSpace from '#src/utils/normalize_space'; export default class AbstractInvoiceData { _logo; _additionalFields; emisor() { return this._emisor; } receptor() { return this._receptor; } timbreFiscalDigital() { return this._timbreFiscalDigital; } qrUrl() { return this._qrUrl; } tfdSourceString() { return this._tfdSourceString; } logo() { return this._logo; } additionalFields() { return this._additionalFields; } buildTfdSource() { const tfd = this.timbreFiscalDigital(); if (tfd.hasAttribute('Version')) { this.createTfdSourceString1_1(); } else { this.createTfdSourceString1_0(); } } buildUrlQr(node) { const rawString = nodeToXmlString(node, true); const document = getParser().parseFromString(rawString, MIME_TYPE.XML_TEXT); try { this._qrUrl = new DiscoverExtractor().extract(document); } catch { // Not generated qrURL } } createTfdSourceString1_0() { const tfd = this.timbreFiscalDigital(); let finalSource = ''; // Version - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('version'))}`; // UUID - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('UUID'))}`; // FechaTimbrado - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('FechaTimbrado'))}`; // SelloCFD - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('selloCFD'))}`; // NoCertificadoSAT finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('noCertificadoSAT'))}`; this._tfdSourceString = `|${finalSource}||`; } createTfdSourceString1_1() { const tfd = this.timbreFiscalDigital(); let finalSource = ''; // Version - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('Version'))}`; // UUID - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('UUID'))}`; // FechaTimbrado - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('FechaTimbrado'))}`; // RfcProvCertif - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('RfcProvCertif'))}`; // Leyenda - Optional if (tfd.hasAttribute('Leyenda')) { finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('Leyenda'))}`; } // SelloCFD - Required finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('SelloCFD'))}`; // NoCertificadoSAT finalSource = `${finalSource}|${normalizeSpace(tfd.getAttribute('NoCertificadoSAT'))}`; this._tfdSourceString = `|${finalSource}||`; } setLegendFooter(legendFooter) { this._legendFooter = legendFooter; } legendFooter() { return this._legendFooter; } }