UNPKG

nodefact

Version:

Biblioteca para facturación electrónica en Perú con Node.js. Compatible con UBL 2.1 y servicios web de SUNAT.

85 lines (84 loc) 2.84 kB
"use strict"; /** * Módulo Core - Tipos y utilidades comunes * * Este módulo proporciona tipos y utilidades comunes utilizados en toda la biblioteca. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.TipoIGV = exports.TipoMoneda = exports.TipoDocumento = exports.NodeFactError = void 0; exports.formatAmount = formatAmount; exports.formatDate = formatDate; /** * Clase base para errores de la biblioteca */ class NodeFactError extends Error { constructor(message) { super(message); this.name = 'NodeFactError'; } } exports.NodeFactError = NodeFactError; /** * Tipos de documentos electrónicos */ var TipoDocumento; (function (TipoDocumento) { TipoDocumento["FACTURA"] = "01"; TipoDocumento["BOLETA"] = "03"; TipoDocumento["NOTA_CREDITO"] = "07"; TipoDocumento["NOTA_DEBITO"] = "08"; TipoDocumento["GUIA_REMISION"] = "09"; TipoDocumento["COMPROBANTE_RETENCION"] = "20"; TipoDocumento["COMPROBANTE_PERCEPCION"] = "40"; TipoDocumento["RESUMEN_DIARIO"] = "RC"; TipoDocumento["COMUNICACION_BAJA"] = "RA"; })(TipoDocumento || (exports.TipoDocumento = TipoDocumento = {})); /** * Tipos de moneda */ var TipoMoneda; (function (TipoMoneda) { TipoMoneda["PEN"] = "PEN"; TipoMoneda["USD"] = "USD"; TipoMoneda["EUR"] = "EUR"; })(TipoMoneda || (exports.TipoMoneda = TipoMoneda = {})); /** * Tipos de IGV */ var TipoIGV; (function (TipoIGV) { TipoIGV["GRAVADO_OPERACION_ONEROSA"] = "10"; TipoIGV["GRAVADO_RETIRO_POR_PREMIO"] = "11"; TipoIGV["GRAVADO_RETIRO_POR_DONACION"] = "12"; TipoIGV["GRAVADO_RETIRO"] = "13"; TipoIGV["GRAVADO_RETIRO_POR_PUBLICIDAD"] = "14"; TipoIGV["GRAVADO_BONIFICACIONES"] = "15"; TipoIGV["GRAVADO_RETIRO_POR_ENTREGA_A_TRABAJADORES"] = "16"; TipoIGV["GRAVADO_IVAP"] = "17"; TipoIGV["EXONERADO_OPERACION_ONEROSA"] = "20"; TipoIGV["EXONERADO_TRANSFERENCIA_GRATUITA"] = "21"; TipoIGV["INAFECTO_OPERACION_ONEROSA"] = "30"; TipoIGV["INAFECTO_RETIRO_POR_BONIFICACION"] = "31"; TipoIGV["INAFECTO_RETIRO"] = "32"; TipoIGV["INAFECTO_RETIRO_POR_MUESTRAS_MEDICAS"] = "33"; TipoIGV["INAFECTO_RETIRO_POR_CONVENIO_COLECTIVO"] = "34"; TipoIGV["INAFECTO_RETIRO_POR_PREMIO"] = "35"; TipoIGV["INAFECTO_RETIRO_POR_PUBLICIDAD"] = "36"; TipoIGV["EXPORTACION"] = "40"; })(TipoIGV || (exports.TipoIGV = TipoIGV = {})); /** * Formatea un número como string con 2 decimales * @param value Número a formatear * @returns Número formateado como string con 2 decimales */ function formatAmount(value) { return value.toFixed(2); } /** * Formatea una fecha como string en formato YYYY-MM-DD * @param date Fecha a formatear * @returns Fecha formateada como string en formato YYYY-MM-DD */ function formatDate(date) { return date.toISOString().split('T')[0]; }