UNPKG

facturacionelectronicapy-recibo-xmlgen

Version:

API Node JS para generar el archivo XML del Recibo similar al exigido por la SET en base a JSON

118 lines 11.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const constants_service_1 = __importDefault(require("./constants.service")); const StringUtil_service_1 = __importDefault(require("./StringUtil.service")); class JsonReciboDocumentoAsociadoService { generateDocumentosAsociados(params, data, config) { const jsonResult = new Array(); if (Array.isArray(data.documentoAsociado)) { for (let i = 0; i < data.documentoAsociado.length; i++) { const daResult = this.generateDocumentoAsociado(params, data.documentoAsociado[i], config); jsonResult.push(daResult); } } else { const daResult = this.generateDocumentoAsociado(params, data.documentoAsociado, config); jsonResult.push(daResult); } return jsonResult; } /** * * @param params * @param doumentoAsociado * @param options */ generateDocumentoAsociado(params, doumentoAsociado, config) { const jsonResult = { iTipDocAso: doumentoAsociado['formato'], dDesTipDocAso: constants_service_1.default.tiposDocumentosAsociados.filter((td) => td.codigo === doumentoAsociado['formato'])[0]['descripcion'], }; if (doumentoAsociado['formato'] == 1) { //H002 = Electronico if (doumentoAsociado['cdc']) { jsonResult['dCdCDERef'] = doumentoAsociado['cdc']; } } if (doumentoAsociado['formato'] == 2) { //H002 = Impreso if (doumentoAsociado['timbrado']) { jsonResult['dNTimDI'] = doumentoAsociado['timbrado']; /*} else { throw new Error( 'Debe especificar el Timbrado del Documento impreso Asociado en data.documentoAsociado.timbrado', );*/ } if (doumentoAsociado['establecimiento']) { jsonResult['dEstDocAso'] = StringUtil_service_1.default.leftZero(doumentoAsociado['establecimiento'] + '', 3); /*} else { throw new Error( 'Debe especificar el Establecimiento del Documento impreso Asociado en data.documentoAsociado.establecimiento', );*/ } if (doumentoAsociado['punto']) { jsonResult['dPExpDocAso'] = StringUtil_service_1.default.leftZero(doumentoAsociado['punto'] + '', 3); /*} else { throw new Error('Debe especificar el Punto del Documento impreso Asociado en data.documentoAsociado.punto');*/ } if (doumentoAsociado['numero']) { jsonResult['dNumDocAso'] = StringUtil_service_1.default.leftZero(doumentoAsociado['numero'] + '', 7); /*} else { throw new Error('Debe especificar el Número del Documento impreso Asociado en data.documentoAsociado.numero');*/ } if (doumentoAsociado['serie']) { jsonResult['dSerDocAso'] = doumentoAsociado['serie']; /*} else { throw new Error('Debe especificar el Número del Documento impreso Asociado en data.documentoAsociado.numero');*/ } if (doumentoAsociado['tipoDocumentoImpreso']) { jsonResult['iTipoDocAso'] = doumentoAsociado['tipoDocumentoImpreso']; jsonResult['dDTipoDocAso'] = constants_service_1.default.tiposDocumentosImpresos.filter((td) => td.codigo === doumentoAsociado['tipoDocumentoImpreso'])[0]['descripcion']; /*} else { throw new Error( 'Debe especificar el Tipo del Documento Impreso Asociado en data.documentoAsociado.tipoDocumentoImpreso', );*/ } if (doumentoAsociado['fecha']) { /*if ((data['fecha'] + '').length != 10) { throw new Error( 'La Fecha del Documento impreso Asociado en data.documentoAsociado.fecha debe tener una longitud de 10 caracteres', ); }*/ jsonResult['dFecEmiDI'] = doumentoAsociado['fecha']; /*} else { throw new Error('Debe especificar la Fecha del Documento impreso Asociado en data.documentoAsociado.fecha');*/ } if (doumentoAsociado && doumentoAsociado['numeroRetencion'] && doumentoAsociado['numeroRetencion'].length >= 15) { jsonResult['dNumComRet'] = doumentoAsociado['numeroRetencion'].substring(0, 15); } if (doumentoAsociado && doumentoAsociado['resolucionCreditoFiscal'] && doumentoAsociado['resolucionCreditoFiscal'].length >= 15) { jsonResult['dNumResCF'] = doumentoAsociado['resolucionCreditoFiscal'].substring(0, 15); } } let montoNumerico = +doumentoAsociado['monto']; jsonResult['monto'] = parseFloat(montoNumerico.toFixed(config.decimals)); jsonResult['montoRetencionIva'] = 0; jsonResult['montoRetencionRenta'] = 0; if (typeof doumentoAsociado['montoRetencionIva'] != 'undefined') { let montoRetencionIva = +doumentoAsociado['montoRetencionIva']; if (montoRetencionIva > 0) { jsonResult['montoRetencionIva'] = parseFloat(montoRetencionIva.toFixed(config.decimals)); } } if (typeof doumentoAsociado['montoRetencionRenta'] != 'undefined') { let montoRetencionRenta = +doumentoAsociado['montoRetencionRenta']; if (montoRetencionRenta > 0) { jsonResult['montoRetencionRenta'] = parseFloat(montoRetencionRenta.toFixed(config.decimals)); } } return jsonResult; } } exports.default = new JsonReciboDocumentoAsociadoService(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSnNvblJlY2lib0RvY3VtZW50b0Fzb2NpYWRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvSnNvblJlY2lib0RvY3VtZW50b0Fzb2NpYWRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RUFBbUQ7QUFDbkQsOEVBQXFEO0FBR3JELE1BQU0sa0NBQWtDO0lBQy9CLDJCQUEyQixDQUFDLE1BQVcsRUFBRSxJQUFTLEVBQUUsTUFBb0I7UUFDN0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMzRixVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNCO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hGLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx5QkFBeUIsQ0FBQyxNQUFXLEVBQUUsZ0JBQXFCLEVBQUUsTUFBb0I7UUFDdkYsTUFBTSxVQUFVLEdBQVE7WUFDdEIsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFNBQVMs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