@disruptive-learning/cfdi-to-pdf
Version:
Librería para crear un pdf basado en un XML CFDI o Retenciones
50 lines (49 loc) • 1.95 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const abstract_invoice_data_1 = __importDefault(require("#src/abstract_invoice_data"));
class CfdiData extends abstract_invoice_data_1.default {
_comprobante;
_address;
constructor(comprobante, qrUrl, tfdSourceString, logo, address, additionalFields) {
super();
const emisor = comprobante.searchNode('cfdi:Emisor');
if (!emisor) {
throw new Error('El CFDI no contiene nodo emisor');
}
const receptor = comprobante.searchNode('cfdi:Receptor');
if (!receptor) {
throw new Error('El CFDI no contiene nodo receptor');
}
const timbreFiscalDigital = comprobante.searchNode('cfdi:Complemento', 'tfd:TimbreFiscalDigital');
if (!timbreFiscalDigital) {
throw new Error('El CFDI no contiene complemento de timbre fiscal digital');
}
this._comprobante = comprobante;
this._emisor = emisor;
this._receptor = receptor;
this._timbreFiscalDigital = timbreFiscalDigital;
this._qrUrl = qrUrl ?? '';
this._tfdSourceString = tfdSourceString ?? '';
this._logo = logo;
this._address = address;
this._additionalFields = additionalFields;
if (this._qrUrl.trim().length === 0) {
this.buildUrlQr(this._comprobante);
}
if (this._tfdSourceString.trim().length === 0) {
this.buildTfdSource();
}
this._legendFooter =
'Este documento es una representación impresa de un Comprobante Fiscal Digital a través de Internet versión {version}';
}
comprobante() {
return this._comprobante;
}
address() {
return this._address;
}
}
exports.default = CfdiData;