UNPKG

@facturacr/atv-sdk

Version:

Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.

92 lines 3.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getReceiver = exports.getSender = exports.getBillResum = exports.getSimpleReceiver = exports.getSimpleSender = void 0; const DEFAULT_VALUES = { key: 0, message: 'Default msj', detailsMessage: 'Default details msj', taxes: 100, tipoIdentificacion: '01' }; function getSimpleSender(frontEndRequest) { const sender = frontEndRequest.Emisor; return { tipoIdentificacion: sender.Identificacion.Tipo || DEFAULT_VALUES.tipoIdentificacion, numeroIdentificacion: sender.Identificacion.Numero }; } exports.getSimpleSender = getSimpleSender; function getSimpleReceiver(frontEndRequest) { const receiver = frontEndRequest.Receptor; return { tipoIdentificacion: receiver.Identificacion.Tipo || DEFAULT_VALUES.tipoIdentificacion, numeroIdentificacion: receiver.Identificacion.Numero }; } exports.getSimpleReceiver = getSimpleReceiver; function calculateTaxes(billTotal, billTaxes) { const taxes = typeof billTaxes === 'number' ? billTaxes : DEFAULT_VALUES.taxes; return billTotal * taxes; } function getBillResum(frontEndRequest) { const taxes = calculateTaxes(frontEndRequest.total, frontEndRequest.impuesto); return { CodigoTipoMoneda: { CodigoMoneda: 'CRC', TipoCambio: '585.69' }, TotalServGravados: 0, TotalServExentos: 0, // TotalServExonerado: 0, TotalMercanciasGravadas: frontEndRequest.total, TotalMercanciasExentas: 0, TotalGravado: frontEndRequest.total, TotalExento: 0, TotalExonerado: 0, TotalVenta: frontEndRequest.total, TotalDescuentos: 0, TotalVentaNeta: frontEndRequest.total, TotalImpuesto: taxes, TotalComprobante: frontEndRequest.total + taxes }; } exports.getBillResum = getBillResum; function getSender(frontEndRequest) { const sender = frontEndRequest.Emisor; return { Nombre: sender.Nombre, Identificacion: { Tipo: sender.Identificacion.Tipo || DEFAULT_VALUES.tipoIdentificacion, Numero: sender.Identificacion.Numero }, NombreComercial: sender.Nombre, Ubicacion: sender.Ubicacion, Telefono: { CodigoPais: sender.Telefono.CodigoPais, NumTelefono: sender.Telefono.NumTelefono }, Fax: { CodigoPais: sender.Telefono.CodigoPais, NumTelefono: sender.Telefono.NumTelefono }, CorreoElectronico: sender.CorreoElectronico }; } exports.getSender = getSender; function getReceiver(frontEndRequest) { const receiver = frontEndRequest.Receptor; return { Nombre: receiver.Nombre, Identificacion: { Tipo: receiver.Identificacion.Tipo || DEFAULT_VALUES.tipoIdentificacion, Numero: receiver.Identificacion.Numero }, NombreComercial: receiver.NombreComercial, Ubicacion: receiver.Ubicacion, Telefono: receiver.Telefono, Fax: receiver.Fax, CorreoElectronico: receiver.CorreoElectronico }; } exports.getReceiver = getReceiver; //# sourceMappingURL=comprobantes.js.map