@disruptive-learning/cfdi-to-pdf
Version:
Librería para crear un pdf basado en un XML CFDI o Retenciones
44 lines (43 loc) • 1.68 kB
JavaScript
import AbstractInvoiceData from '#src/abstract_invoice_data';
export default class CfdiData extends AbstractInvoiceData {
_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;
}
}