UNPKG

@disruptive-learning/cfdi-to-pdf

Version:

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

63 lines (62 loc) 2.54 kB
"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 RetencionesData extends abstract_invoice_data_1.default { _retenciones; _periodo; _totales; constructor(retenciones, qrUrl, tfdSourceString, logo, additionalFields) { super(); const emisor = retenciones.searchNode('retenciones:Emisor'); if (!emisor) { throw new Error('La factura de retenciones no contiene nodo emisor'); } const receptor = retenciones.searchNode('retenciones:Receptor'); if (!receptor) { throw new Error('La factura de retenciones no contiene nodo receptor'); } const periodo = retenciones.searchNode('retenciones:Periodo'); if (!periodo) { throw new Error('La factura de retenciones no contiene nodo periodo'); } const totales = retenciones.searchNode('retenciones:Totales'); if (!totales) { throw new Error('La factura de retenciones no contiene nodo totales'); } const timbreFiscalDigital = retenciones.searchNode('retenciones:Complemento', 'tfd:TimbreFiscalDigital'); if (!timbreFiscalDigital) { throw new Error('La factura de retenciones no contiene complemento de timbre fiscal digital'); } this._retenciones = retenciones; this._emisor = emisor; this._receptor = receptor; this._periodo = periodo; this._totales = totales; this._timbreFiscalDigital = timbreFiscalDigital; this._qrUrl = qrUrl ?? ''; this._tfdSourceString = tfdSourceString ?? ''; this._logo = logo; this._additionalFields = additionalFields; if (this._qrUrl.trim().length === 0) { this.buildUrlQr(this._retenciones); } if (this._tfdSourceString.trim().length === 0) { this.buildTfdSource(); } this._legendFooter = 'Este documento es una representación impresa de un Comprobante Fiscal Digital por Internet que ampara Retenciones e Información de Pagos versión {version}'; } retenciones() { return this._retenciones; } periodo() { return this._periodo; } totales() { return this._totales; } } exports.default = RetencionesData;