@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
JavaScript
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;
}
}