@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
JavaScript
;
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