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

171 lines 12.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Contiene la codificacion del XML desde E790-E899 * E9. Campos complementarios comerciales de uso específico (E790-E899) * */ class JSonDteComplementariosService { /** * E9. Campos complementarios comerciales de uso específico (E790-E899) * * @param params * @param data * @param options * @param items Es el item actual del array de items de "data" que se está iterando */ generateDatosComplementariosComercialesDeUsoEspecificos(params, data) { const jsonResult = {}; if (data['sectorEnergiaElectrica']) { jsonResult['gGrupEner'] = this.generateDatosSectorEnergiaElectrica(params, data); } if (data['sectorSeguros']) { jsonResult['gGrupSeg'] = this.generateDatosSectorSeguros(params, data); } if (data['sectorSupermercados']) { jsonResult['gGrupSup'] = this.generateDatosSectorSupermercados(params, data); } if (data['sectorAdicional']) { jsonResult['gGrupAdi'] = this.generateDatosDatosAdicionalesUsoComercial(params, data); } return jsonResult; } /** * E9.2. Sector Energía Eléctrica (E791-E799) * * @param params * @param data * @param options * @param items Es el item actual del array de items de "data" que se está iterando */ generateDatosSectorEnergiaElectrica(params, data) { const jsonResult = { dNroMed: data['sectorEnergiaElectrica']['numeroMedidor'], dActiv: data['sectorEnergiaElectrica']['codigoActividad'], dCateg: data['sectorEnergiaElectrica']['codigoCategoria'], dLecAnt: data['sectorEnergiaElectrica']['lecturaAnterior'], dLecAct: data['sectorEnergiaElectrica']['lecturaActual'], dConKwh: data['sectorEnergiaElectrica']['lecturaActual'] - data['sectorEnergiaElectrica']['lecturaAnterior'], }; /*if (data['lecturaAnterior'] > data['lecturaActual']) { throw new Error('Sector Energia Electrica lecturaActual debe ser mayor a lecturaAnterior'); }*/ return jsonResult; } /** * E9.3. Sector de Seguros (E800-E809) * * @param params * @param data * @param options * @param items Es el item actual del array de items de "data" que se está iterando */ generateDatosSectorSeguros(params, data) { const jsonResult = { dCodEmpSeg: data['sectorSeguros']['codigoAseguradora'], gGrupPolSeg: { dPoliza: data['sectorSeguros']['codigoPoliza'], dUnidVig: data['sectorSeguros']['vigenciaUnidad'], dVigencia: data['sectorSeguros']['vigencia'], dNumPoliza: data['sectorSeguros']['numeroPoliza'], dFecIniVig: data['sectorSeguros']['inicioVigencia'], dFecFinVig: data['sectorSeguros']['finVigencia'], dCodInt: data['sectorSeguros']['codigoInternoItem'], }, }; return jsonResult; } /** * E9.4. Sector de Supermercados (E810-E819 * * @param params * @param data * @param options * @param items Es el item actual del array de items de "data" que se está iterando */ generateDatosSectorSupermercados(params, data) { const jsonResult = { dNomCaj: data['sectorSupermercados']['nombreCajero'], dEfectivo: data['sectorSupermercados']['efectivo'], dVuelto: data['sectorSupermercados']['vuelto'], dDonac: data['sectorSupermercados']['donacion'], dDesDonac: data['sectorSupermercados']['donacionDescripcion'].substring(0, 20), }; return jsonResult; } /** * E9.5. Grupo de datos adicionales de uso comercial (E820-E829) * * @param params * @param data * @param options * @param items Es el item actual del array de items de "data" que se está iterando */ generateDatosDatosAdicionalesUsoComercial(params, data) { const jsonResult = { /*dCiclo: data['sectorAdicional']['ciclo'].substring(0, 15), dFecIniC: data['sectorAdicional']['inicioCiclo'], dFecFinC: data['sectorAdicional']['finCiclo'], dVencPag: data['sectorAdicional']['vencimientoPago'], dContrato: data['sectorAdicional']['numeroContrato'], dSalAnt: data['sectorAdicional']['saldoAnterior'],*/ }; if (data['sectorAdicional']['ciclo']) { /*if ( !((data['sectorAdicional']['ciclo'] + '').length >= 1 && (data['sectorAdicional']['ciclo'] + '').length <= 15) ) { throw new Error('El Ciclo en data.sectorAdicional.ciclo debe contener entre 1 y 15 caracteres '); }*/ jsonResult['dCiclo'] = data['sectorAdicional']['ciclo']; } if (data['sectorAdicional']['inicioCiclo']) { /*if (!((data['sectorAdicional']['inicioCiclo'] + '').length == 10)) { throw new Error('El Inicio de Ciclo en data.sectorAdicional.inicioCiclo debe contener 10 caracteres '); }*/ jsonResult['dFecIniC'] = data['sectorAdicional']['inicioCiclo']; } if (data['sectorAdicional']['finCiclo']) { /*if (!((data['sectorAdicional']['finCiclo'] + '').length == 10)) { throw new Error('El Fin de Ciclo en data.sectorAdicional.finCiclo debe contener 10 caracteres '); }*/ jsonResult['dFecFinC'] = data['sectorAdicional']['finCiclo']; } if (data['sectorAdicional']['vencimientoPago']) { /*if (!((data['sectorAdicional']['vencimientoPago'] + '').length == 10)) { throw new Error('La fecha de Pago en data.sectorAdicional.vencimientoPago debe contener 10 caracteres '); }*/ let fecha = new Date(data.fecha); let fechaPago = new Date(data['sectorAdicional']['vencimientoPago']); /*if (fecha.getTime() > fechaPago.getTime()) { throw new Error( "La fecha de pago '" + data['sectorAdicional']['vencimientoPago'] + "' en data.sectorAdicional.vencimientoPago debe ser despues de la Fecha del Documento", ); }*/ jsonResult['dVencPag'] = data['sectorAdicional']['vencimientoPago']; } if (data['sectorAdicional']['numeroContrato']) { /*if ( !( (data['sectorAdicional']['numeroContrato'] + '').length >= 1 && (data['sectorAdicional']['numeroContrato'] + '').length <= 30 ) ) { throw new Error( 'El numero de Contrato en data.sectorAdicional.numeroContrato debe contener entre 1 y 30 caracteres ', ); }*/ jsonResult['dContrato'] = data['sectorAdicional']['numeroContrato']; } if (data['sectorAdicional']['saldoAnterior']) { /*if ( ! ( (data['sectorAdicional']['saldoAnterior']+"").length >= 1 && (data['sectorAdicional']['saldoAnterior']+"").length <= 30 ) ) { throw new Error("El numero de Contrato en data.sectorAdicional.saldoAnterior debe contener entre 1 y 30 caracteres "); }*/ jsonResult['dSalAnt'] = data['sectorAdicional']['saldoAnterior']; } return jsonResult; } } exports.default = new JSonDteComplementariosService(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbkR0ZUNvbXBsZW1lbnRhcmlvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvanNvbkR0ZUNvbXBsZW1lbnRhcmlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztHQUlHO0FBQ0gsTUFBTSw2QkFBNkI7SUFDakM7Ozs7Ozs7T0FPRztJQUNJLHVEQUF1RCxDQUFDLE1BQVcsRUFBRSxJQUFTO1FBQ25GLE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1lBQ2xDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xGO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDekIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzlFO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQixVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2RjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssbUNBQW1DLENBQUMsTUFBVyxFQUFFLElBQVM7UUFDaEUsTUFBTSxVQUFVLEdBQVE7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLGVB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