nodefact
Version:
Biblioteca para facturación electrónica en Perú con Node.js. Compatible con UBL 2.1 y servicios web de SUNAT.
111 lines (110 loc) • 4.7 kB
JavaScript
;
/**
* XMLBuilder - Clase para construir documentos XML a partir de plantillas y datos
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.XMLBuilder = void 0;
/**
* Clase para construir documentos XML a partir de plantillas y datos
*/
class XMLBuilder {
/**
* Construye una factura o boleta
* @param invoice Datos de la factura o boleta
* @param template Plantilla UBL 2.1
* @param options Opciones adicionales
* @returns Documento XML de la factura o boleta
*/
buildInvoice(invoice, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos de la factura. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye una nota de crédito
* @param creditNote Datos de la nota de crédito
* @param template Plantilla UBL 2.1
* @param options Opciones adicionales
* @returns Documento XML de la nota de crédito
*/
buildCreditNote(creditNote, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos de la nota de crédito. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye una nota de débito
* @param debitNote Datos de la nota de débito
* @param template Plantilla UBL 2.1
* @param options Opciones adicionales
* @returns Documento XML de la nota de débito
*/
buildDebitNote(debitNote, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos de la nota de débito. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye un resumen diario
* @param summary Datos del resumen diario
* @param template Plantilla del resumen diario
* @param options Opciones adicionales
* @returns Documento XML del resumen diario
*/
buildSummary(summary, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos del resumen diario. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye una comunicación de baja
* @param voided Datos de la comunicación de baja
* @param template Plantilla de la comunicación de baja
* @param options Opciones adicionales
* @returns Documento XML de la comunicación de baja
*/
buildVoidedDocuments(voided, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos de la comunicación de baja. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye una guía de remisión
* @param dispatch Datos de la guía de remisión
* @param templates Plantillas disponibles
* @param options Opciones adicionales
* @returns Documento XML de la guía de remisión
*/
buildDispatch(dispatch, templates, options) {
const version = options?.version || '2022';
const template = templates[version];
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos de la guía de remisión. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye un comprobante de retención
* @param retention Datos del comprobante de retención
* @param template Plantilla del comprobante de retención
* @param options Opciones adicionales
* @returns Documento XML del comprobante de retención
*/
buildRetention(retention, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos del comprobante de retención. Por simplicidad, solo devolvemos la plantilla.
return template;
}
/**
* Construye un comprobante de percepción
* @param perception Datos del comprobante de percepción
* @param template Plantilla del comprobante de percepción
* @param options Opciones adicionales
* @returns Documento XML del comprobante de percepción
*/
buildPerception(perception, template, options) {
// Aquí se implementaría la lógica para reemplazar los placeholders en la plantilla
// con los datos del comprobante de percepción. Por simplicidad, solo devolvemos la plantilla.
return template;
}
}
exports.XMLBuilder = XMLBuilder;