Commit 5eda16ee29cf853020a1fb92901f204d06259ab7
1 parent
25903588b1
Exists in
master
avances debo
Showing
14 changed files
with
162 additions
and
67 deletions
Show diff stats
afip/index.js
1 | module.exports = function(codigo) { | 1 | module.exports = function(codigo) { |
2 | 2 | ||
3 | var tablaAfip = [ | 3 | var tablaAfip = [ |
4 | { | 4 | { |
5 | codigo: 1, | 5 | codigo: 1, |
6 | letraComprobante: 'A', | 6 | letraComprobante: 'A', |
7 | tipoComprobante: 'FT' | 7 | tipoComprobante: 'FT' |
8 | }, | 8 | }, |
9 | { | 9 | { |
10 | codigo: 7, | 10 | codigo: 7, |
11 | letraComprobante: 'B', | 11 | letraComprobante: 'B', |
12 | tipoComprobante: 'ND' | 12 | tipoComprobante: 'ND' |
13 | }, | 13 | }, |
14 | { | 14 | { |
15 | codigo: 8, | 15 | codigo: 8, |
16 | letraComprobante: 'B', | 16 | letraComprobante: 'B', |
17 | tipoComprobante: 'NC' | 17 | tipoComprobante: 'NC' |
18 | }, | 18 | }, |
19 | { | 19 | { |
20 | codigo: 15, | 20 | codigo: 15, |
21 | letraComprobante: 'C', | 21 | letraComprobante: 'C', |
22 | tipoComprobante: 'RE' | 22 | tipoComprobante: 'RE' |
23 | }, | 23 | }, |
24 | { | 24 | { |
25 | codigo: 60, | 25 | codigo: 60, |
26 | letraComprobante: 'A', | 26 | letraComprobante: 'A', |
27 | tipoComprobante: 'LP' | 27 | tipoComprobante: 'LP' |
28 | }, | 28 | }, |
29 | { | 29 | { |
30 | codigo: 61, | 30 | codigo: 61, |
31 | letraComprobante: 'B', | 31 | letraComprobante: 'B', |
32 | tipoComprobante: 'LP' | 32 | tipoComprobante: 'LP' |
33 | } | 33 | } |
34 | ] | 34 | ] |
35 | 35 | ||
36 | return tablaAfip.filter(function(comprobante) { | 36 | var result = tablaAfip.filter(function(comprobante) { |
37 | return comprobante.codigo == parseInt(codigo) | 37 | return comprobante.codigo == parseInt(codigo) |
38 | })[0]; | 38 | })[0]; |
39 | 39 | ||
40 | if (!result) { | ||
41 | result = { | ||
42 | letraComprobante: 'CIB', | ||
43 | tipoComprobante: 'CI' | ||
44 | } | ||
45 | } | ||
46 | |||
47 | return result; | ||
48 | |||
40 | } | 49 | } |
41 | 50 |
index.js
1 | const webSocketServer = require('ws').Server; | 1 | config = require('./config/config.json'); |
2 | const fs = require('fs'); | ||
3 | const config = require('./config/config.json'); | ||
4 | 2 | ||
5 | const planex = require('./planex/index')(''); | 3 | require('./watch/index')(config.dir, onGetFile); |
6 | 4 | ||
7 | const debo = require('./debo/index')(planex); | 5 | const wsServer = require('./webSocketServer/index')(); |
8 | 6 | ||
9 | console.log(planex); | 7 | function onGetFile(event, fileString) { |
10 | console.log(debo); | ||
11 | 8 | ||
12 | fs.watch(__dirname, function (event, file) { | 9 | if (!fileString) return; |
13 | console.log(event); | ||
14 | console.log(file); | ||
15 | }); | ||
16 | 10 | ||
17 | const wsServer = new webSocketServer({ | 11 | var planex = require('./planex/index')(fileString); |
18 | port: config.port | ||
19 | }); | ||
20 | 12 | ||
21 | wsServer.on('connection', function connection(ws) { | 13 | var entidades = []; |
22 | 14 | ||
23 | console.log('open socket server'); | 15 | wsServer.getEntidad('7790968003283', 'PROVEED').then(function(data) { |
16 | entidades.push({ entidad:'proveedores', data: data}) | ||
17 | }); | ||
24 | 18 | ||
25 | ws.on('message', function incoming(message) { | 19 | console.log(entidades.length); |
26 | 20 | ||
27 | message = message.toString('utf8'); | 21 | var debo = require('./debo/index')(planex, entidades); |
28 | console.log(message); | ||
29 | 22 | ||
30 | switch (message) { | 23 | // console.log(debo); |
31 | case message.action == 'gln': | 24 | |
32 | ws.gln = message.gln; | 25 | } |
33 | break; | ||
34 | default: | ||
35 | break; | ||
36 | } | ||
37 | }); | ||
38 | }); | ||
39 | 26 |
planex/comprobantesReferencia.js
1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
2 | |||
3 | comprobante = '020;RE;0009;00093491;;' | ||
4 | 2 | ||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | tipoDocumentoReferencia: comprobanteArr[1], | 6 | tipoDocumentoReferencia: comprobanteArr[1], |
9 | puntoVentaReferencia: parseInt(comprobanteArr[2]), | 7 | puntoVentaReferencia: parseInt(comprobanteArr[2]), |
10 | numeroDocumentoReferencia: parseInt(comprobanteArr[3]), | 8 | numeroDocumentoReferencia: parseInt(comprobanteArr[3]), |
11 | fechaComprobanteReferencia: comprobanteArr[4], | 9 | fechaComprobanteReferencia: comprobanteArr[4], |
12 | cuitEmisorComprobanteAsociado: comprobanteArr[5] | 10 | cuitEmisorComprobanteAsociado: comprobanteArr[5] |
13 | } | 11 | } |
14 | } | 12 | } |
15 | 13 |
planex/detallePercepcionesIIBB.js
1 | module.exports = function(comprobante, returnFloatByDecimals) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
2 | |||
3 | comprobante = '070;01;000000000000411;00;000000000000000;PERC .I.B. BS. A.S;00250;000000000016436;00000;000000000000000 '; | ||
4 | 2 | ||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | codigoJurisdiccionIB: comprobanteArr[1], | 6 | codigoJurisdiccionIB: comprobanteArr[1], |
9 | importePercepcionesIB: returnFloatByDecimals(comprobanteArr[2], 2), | 7 | importePercepcionesIB: returnFloatByDecimals(comprobanteArr[2], 2), |
10 | jurisdiccionImpuestosMunicipales: comprobanteArr[3], | 8 | jurisdiccionImpuestosMunicipales: comprobanteArr[3], |
11 | importePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[4], 2), | 9 | importePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[4], 2), |
12 | descripcionPercepcionIB: comprobanteArr[5], | 10 | descripcionPercepcionIB: comprobanteArr[5], |
13 | porcentajePercepcionesIB: returnFloatByDecimals(comprobanteArr[6], 2), | 11 | porcentajePercepcionesIB: returnFloatByDecimals(comprobanteArr[6], 2), |
14 | importeBasePercepcionesIB: returnFloatByDecimals(comprobanteArr[7], 2), | 12 | importeBasePercepcionesIB: returnFloatByDecimals(comprobanteArr[7], 2), |
15 | porcentajePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[8], 2), | 13 | porcentajePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[8], 2), |
16 | importeBasePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[9], 2) | 14 | importeBasePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[9], 2) |
17 | }; | 15 | }; |
18 | } | 16 | } |
19 | 17 |
planex/detallesImportesIVA.js
1 | module.exports = function(comprobante, returnFloatByDecimals) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
2 | 2 | ||
3 | comprobante = '060;02100;000000000024349;000000000115946;000000000000000'; | ||
4 | |||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[1], 2), | 6 | alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[1], 2), |
9 | importeLiquidado: returnFloatByDecimals(comprobanteArr[2], 2), | 7 | importeLiquidado: returnFloatByDecimals(comprobanteArr[2], 2), |
10 | importeNetoGravado: returnFloatByDecimals(comprobanteArr[3], 2), | 8 | importeNetoGravado: returnFloatByDecimals(comprobanteArr[3], 2), |
11 | importeLiquidadoRNI: returnFloatByDecimals(comprobanteArr[4], 2) | 9 | importeLiquidadoRNI: returnFloatByDecimals(comprobanteArr[4], 2) |
12 | }; | 10 | }; |
13 | } | 11 | } |
14 | 12 |
planex/identificaxComprobante.js
1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
2 | 2 | ||
3 | var comprobante = '010;01;00081929;00081929;0002;20120927;20120927;;;14 DIAS;;;32012114736927;20140716;;;;;;;;;;;20120927'; | ||
4 | |||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | tipo: comprobanteArr[1], | 6 | tipo: comprobanteArr[1], |
9 | numero: parseInt(comprobanteArr[2]), | 7 | numero: parseInt(comprobanteArr[2]), |
10 | numeroRegistrado: parseInt(comprobanteArr[3]), | 8 | numeroRegistrado: parseInt(comprobanteArr[3]), |
11 | puntoVenta: parseInt(comprobanteArr[4]), | 9 | puntoVenta: parseInt(comprobanteArr[4]), |
12 | fechaComprobante: comprobanteArr[5], | 10 | fechaComprobante: comprobanteArr[5], |
13 | fechaVencimiento: comprobanteArr[6], | 11 | fechaVencimiento: comprobanteArr[6], |
14 | fechaSegundoVencimiento: comprobanteArr[7], | 12 | fechaSegundoVencimiento: comprobanteArr[7], |
15 | fechaProximoVencimiento: comprobanteArr[8], | 13 | fechaProximoVencimiento: comprobanteArr[8], |
16 | condicionPago: comprobanteArr[9], | 14 | condicionPago: comprobanteArr[9], |
17 | caeOCaea: comprobanteArr[10], | 15 | caeOCaea: comprobanteArr[10], |
18 | fechaVencimientoCaeOCaea: comprobanteArr[11], | 16 | fechaVencimientoCaeOCaea: comprobanteArr[11], |
19 | cai: comprobanteArr[12], | 17 | cai: comprobanteArr[12], |
20 | fechaVencimientoCai: comprobanteArr[14], | 18 | fechaVencimientoCai: comprobanteArr[14], |
21 | motivo: comprobanteArr[15], | 19 | motivo: comprobanteArr[15], |
22 | fechaServicioDesde: comprobanteArr[16], | 20 | fechaServicioDesde: comprobanteArr[16], |
23 | fechaServicioHasta: comprobanteArr[17], | 21 | fechaServicioHasta: comprobanteArr[17], |
24 | codigoControladorFiscal: comprobanteArr[17], | 22 | codigoControladorFiscal: comprobanteArr[17], |
25 | codigoOperacion: comprobanteArr[18], | 23 | codigoOperacion: comprobanteArr[18], |
26 | cantidadHojas: comprobanteArr[19], | 24 | cantidadHojas: comprobanteArr[19], |
27 | datosCodigoBarraParaCobranza: comprobanteArr[20], | 25 | datosCodigoBarraParaCobranza: comprobanteArr[20], |
28 | datosOtroCodigoBarras: comprobanteArr[21], | 26 | datosOtroCodigoBarras: comprobanteArr[21], |
29 | datosCodigoParaPagoElectronico: comprobanteArr[22], | 27 | datosCodigoParaPagoElectronico: comprobanteArr[22], |
30 | fechaAnulacion: comprobanteArr[23], | 28 | fechaAnulacion: comprobanteArr[23], |
31 | fechaEntrega: comprobanteArr[24], | 29 | fechaEntrega: comprobanteArr[24], |
32 | numeroVisualizador: comprobanteArr[25] | 30 | numeroVisualizador: comprobanteArr[25] |
33 | }; | 31 | }; |
34 | } | 32 | } |
35 | 33 |
planex/identificaxEmisor.js
1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
2 | 2 | ||
3 | comprobante = '030;EMPRESA EMISORA S.A.;7790522012340;01;902-108324-2;19690727;;Maximo M 885;;;;;;;Lanus Oeste;Buenos Aires;1824;;;30123654736;;;;;;' | ||
4 | |||
5 | comprobanteArr = comprobante.split(';'); | 3 | comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | razonSocial: comprobanteArr[1], | 6 | razonSocial: comprobanteArr[1], |
9 | glnEmisor: comprobanteArr[2], | 7 | glnEmisor: comprobanteArr[2], |
10 | ivaEmisor: comprobanteArr[3], | 8 | ivaEmisor: comprobanteArr[3], |
11 | numeroIngresosBrutos: comprobanteArr[4], | 9 | numeroIngresosBrutos: comprobanteArr[4], |
12 | inicioActividades: comprobanteArr[5], | 10 | inicioActividades: comprobanteArr[5], |
13 | contacto: comprobanteArr[6], | 11 | contacto: comprobanteArr[6], |
14 | direccion: comprobanteArr[7], | 12 | direccion: comprobanteArr[7], |
15 | numero: comprobanteArr[8], | 13 | numero: comprobanteArr[8], |
16 | piso: comprobanteArr[9], | 14 | piso: comprobanteArr[9], |
17 | departamento: comprobanteArr[10], | 15 | departamento: comprobanteArr[10], |
18 | sector: comprobanteArr[11], | 16 | sector: comprobanteArr[11], |
19 | torre: comprobanteArr[12], | 17 | torre: comprobanteArr[12], |
20 | manzana: comprobanteArr[13], | 18 | manzana: comprobanteArr[13], |
21 | localidad: comprobante[14], | 19 | localidad: comprobante[14], |
22 | provincia: comprobanteArr[15], | 20 | provincia: comprobanteArr[15], |
23 | codigoPostal: comprobanteArr[16], | 21 | codigoPostal: comprobanteArr[16], |
24 | email: comprobanteArr[17], | 22 | email: comprobanteArr[17], |
25 | telefono: comprobanteArr[18], | 23 | telefono: comprobanteArr[18], |
26 | cuit: comprobanteArr[19], | 24 | cuit: comprobanteArr[19], |
27 | codigoAgenciaResponsableListaCodigos: comprobanteArr[20], | 25 | codigoAgenciaResponsableListaCodigos: comprobanteArr[20], |
28 | numeroEstablecimientoEmisor: comprobanteArr[21], | 26 | numeroEstablecimientoEmisor: comprobanteArr[21], |
29 | numeroAgentePercepcionProvincialDelEmisor: comprobanteArr[22], | 27 | numeroAgentePercepcionProvincialDelEmisor: comprobanteArr[22], |
30 | numeroAgentePercepcionMunicipalDelEmisor: comprobanteArr[23], | 28 | numeroAgentePercepcionMunicipalDelEmisor: comprobanteArr[23], |
31 | numeroFax: comprobanteArr[24], | 29 | numeroFax: comprobanteArr[24], |
32 | codigoVendedor: comprobanteArr[25] | 30 | codigoVendedor: comprobanteArr[25] |
33 | }; | 31 | }; |
34 | } | 32 | } |
35 | 33 |
planex/identificaxReceptorFactura.js
1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
2 | |||
3 | comprobante = '040;CADENARECEPTORA;7798032710006;401000;01;;9011890556;;CALLE 401 6TO PISO;;;;;;;Cap. federal;1640;;;80;30123654434;;;;; ' | ||
4 | 2 | ||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | razonSocial: comprobanteArr[1], | 6 | razonSocial: comprobanteArr[1], |
9 | glnReceptor: comprobanteArr[2], | 7 | glnReceptor: comprobanteArr[2], |
10 | codigoInternoReceptorParaEmisor: comprobanteArr[3], | 8 | codigoInternoReceptorParaEmisor: comprobanteArr[3], |
11 | ivaReceptor: comprobanteArr[4], | 9 | ivaReceptor: comprobanteArr[4], |
12 | codigoJurisdiccionIBReceptor: comprobanteArr[5], | 10 | codigoJurisdiccionIBReceptor: comprobanteArr[5], |
13 | numeroIngresosBrutos: comprobanteArr[6], | 11 | numeroIngresosBrutos: comprobanteArr[6], |
14 | contacto: comprobanteArr[7], | 12 | contacto: comprobanteArr[7], |
15 | direccionCalle: comprobanteArr[8], | 13 | direccionCalle: comprobanteArr[8], |
16 | direccionNumero: comprobanteArr[9], | 14 | direccionNumero: comprobanteArr[9], |
17 | piso: comprobanteArr[10], | 15 | piso: comprobanteArr[10], |
18 | departamento: comprobanteArr[11], | 16 | departamento: comprobanteArr[11], |
19 | sector: comprobanteArr[12], | 17 | sector: comprobanteArr[12], |
20 | torre: comprobanteArr[13], | 18 | torre: comprobanteArr[13], |
21 | manzana: comprobanteArr[14], | 19 | manzana: comprobanteArr[14], |
22 | localidad: comprobanteArr[15], | 20 | localidad: comprobanteArr[15], |
23 | provincia: comprobanteArr[16], | 21 | provincia: comprobanteArr[16], |
24 | codigoPostal: comprobanteArr[17], | 22 | codigoPostal: comprobanteArr[17], |
25 | email: comprobanteArr[18], | 23 | email: comprobanteArr[18], |
26 | telefono: comprobanteArr[19], | 24 | telefono: comprobanteArr[19], |
27 | tipoDocumentoReceptor: comprobanteArr[20], | 25 | tipoDocumentoReceptor: comprobanteArr[20], |
28 | numeroDocumentoReceptor: comprobanteArr[21], | 26 | numeroDocumentoReceptor: comprobanteArr[21], |
29 | codigoAgenciaResponsableListaCodigos: comprobanteArr[22], | 27 | codigoAgenciaResponsableListaCodigos: comprobanteArr[22], |
30 | codigoDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[23], | 28 | codigoDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[23], |
31 | nombreDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[24], | 29 | nombreDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[24], |
32 | numeroFax: comprobanteArr[25], | 30 | numeroFax: comprobanteArr[25], |
33 | municipio: comprobanteArr[26] | 31 | municipio: comprobanteArr[26] |
34 | }; | 32 | }; |
35 | } | 33 | } |
36 | 34 |
planex/identificaxSucursalReceptorFactura.js
1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
2 | 2 | ||
3 | comprobante = '045;SUCURSAL CADENA RECEPTORA;7791236854;;;;;;;;;;;;;;;;;;80;30123610434;;;;;;; '; | ||
4 | |||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | razonSocial: comprobanteArr[1], | 6 | razonSocial: comprobanteArr[1], |
9 | glnSucursal: comprobanteArr[2], | 7 | glnSucursal: comprobanteArr[2], |
10 | codigoInternoSucursalReceptorParaEmisor: comprobanteArr[3], | 8 | codigoInternoSucursalReceptorParaEmisor: comprobanteArr[3], |
11 | ivaSucursal: comprobanteArr[4], | 9 | ivaSucursal: comprobanteArr[4], |
12 | codigoJurisdiccionIB: comprobanteArr[5], | 10 | codigoJurisdiccionIB: comprobanteArr[5], |
13 | numeroIB: comprobanteArr[6], | 11 | numeroIB: comprobanteArr[6], |
14 | contacto: comprobanteArr[7], | 12 | contacto: comprobanteArr[7], |
15 | direccion: comprobanteArr[8], | 13 | direccion: comprobanteArr[8], |
16 | numero: comprobanteArr[9], | 14 | numero: comprobanteArr[9], |
17 | piso: comprobanteArr[10], | 15 | piso: comprobanteArr[10], |
18 | departamento: comprobanteArr[11], | 16 | departamento: comprobanteArr[11], |
19 | sector: comprobanteArr[12], | 17 | sector: comprobanteArr[12], |
20 | torre: comprobanteArr[13], | 18 | torre: comprobanteArr[13], |
21 | manzana: comprobanteArr[14], | 19 | manzana: comprobanteArr[14], |
22 | localidad: comprobanteArr[15], | 20 | localidad: comprobanteArr[15], |
23 | provincia: comprobanteArr[16], | 21 | provincia: comprobanteArr[16], |
24 | codigoPostal: comprobanteArr[17], | 22 | codigoPostal: comprobanteArr[17], |
25 | email: comprobanteArr[18], | 23 | email: comprobanteArr[18], |
26 | telefono: comprobanteArr[19], | 24 | telefono: comprobanteArr[19], |
27 | tipoDocumento: comprobanteArr[20], | 25 | tipoDocumento: comprobanteArr[20], |
28 | numeroDocumento: comprobanteArr[21], | 26 | numeroDocumento: comprobanteArr[21], |
29 | codigoAgenciaResponsableListaCodigos: comprobanteArr[22], | 27 | codigoAgenciaResponsableListaCodigos: comprobanteArr[22], |
30 | codigoDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[23], | 28 | codigoDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[23], |
31 | nombreDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[24], | 29 | nombreDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[24], |
32 | numeroFax: comprobanteArr[25], | 30 | numeroFax: comprobanteArr[25], |
33 | municipio: comprobanteArr[26], | 31 | municipio: comprobanteArr[26], |
34 | numeroSucursalReceptorParaEmisor: comprobanteArr[27], | 32 | numeroSucursalReceptorParaEmisor: comprobanteArr[27], |
35 | } | 33 | } |
36 | } | 34 | } |
37 | 35 |
planex/importesTotales.js
1 | module.exports = function(comprobante, returnFloatByDecimals) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
2 | 2 | ||
3 | comprobante = '050;000000000000000;000000000000000;000000000000000;000000000140295;000000000000000;000000000115946;000000 000024349;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;;PES;00001000000;1;000000000000000;;;' | ||
4 | |||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | saldoAnterior: returnFloatByDecimals(comprobanteArr[1], 2), | 6 | saldoAnterior: returnFloatByDecimals(comprobanteArr[1], 2), |
9 | totalBruto: returnFloatByDecimals(comprobanteArr[2], 2), | 7 | totalBruto: returnFloatByDecimals(comprobanteArr[2], 2), |
10 | totalNeto: returnFloatByDecimals(comprobanteArr[3], 2), | 8 | totalNeto: returnFloatByDecimals(comprobanteArr[3], 2), |
11 | totalOperacion: returnFloatByDecimals(comprobanteArr[4], 2), | 9 | totalOperacion: returnFloatByDecimals(comprobanteArr[4], 2), |
12 | totalConceptosNoNetoGravado: returnFloatByDecimals(comprobanteArr[5], 2), | 10 | totalConceptosNoNetoGravado: returnFloatByDecimals(comprobanteArr[5], 2), |
13 | netoGravado: returnFloatByDecimals(comprobanteArr[6], 2), | 11 | netoGravado: returnFloatByDecimals(comprobanteArr[6], 2), |
14 | liquidado: returnFloatByDecimals(comprobanteArr[7], 2), | 12 | liquidado: returnFloatByDecimals(comprobanteArr[7], 2), |
15 | liquidadoRNI: returnFloatByDecimals(comprobanteArr[8], 2), | 13 | liquidadoRNI: returnFloatByDecimals(comprobanteArr[8], 2), |
16 | importeOperacionesExentas: returnFloatByDecimals(comprobanteArr[9], 2), | 14 | importeOperacionesExentas: returnFloatByDecimals(comprobanteArr[9], 2), |
17 | importeActaImpuestosNacionales: returnFloatByDecimals(comprobanteArr[10], 2), | 15 | importeActaImpuestosNacionales: returnFloatByDecimals(comprobanteArr[10], 2), |
18 | importeIB: returnFloatByDecimals(comprobanteArr[11], 2), | 16 | importeIB: returnFloatByDecimals(comprobanteArr[11], 2), |
19 | importeImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[12], 2), | 17 | importeImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[12], 2), |
20 | importeImpuestosInternos: returnFloatByDecimals(comprobanteArr[13], 2), | 18 | importeImpuestosInternos: returnFloatByDecimals(comprobanteArr[13], 2), |
21 | transporte: returnFloatByDecimals(comprobanteArr[14], 2), | 19 | transporte: returnFloatByDecimals(comprobanteArr[14], 2), |
22 | monedaFacturacion: comprobanteArr[15], | 20 | monedaFacturacion: comprobanteArr[15], |
23 | tipoCambioFacturacion: returnFloatByDecimals(comprobanteArr[16], 2), | 21 | tipoCambioFacturacion: returnFloatByDecimals(comprobanteArr[16], 2), |
24 | cantidadAlicuotasIVA: comprobanteArr[17], | 22 | cantidadAlicuotasIVA: comprobanteArr[17], |
25 | totalFacturaSegundoVencimiento: returnFloatByDecimals(comprobanteArr[18], 2), | 23 | totalFacturaSegundoVencimiento: returnFloatByDecimals(comprobanteArr[18], 2), |
26 | observaciones: comprobanteArr[19], | 24 | observaciones: comprobanteArr[19], |
27 | observacionesDebitoAutomatico: comprobanteArr[20], | 25 | observacionesDebitoAutomatico: comprobanteArr[20], |
28 | fechaTipoCambioFacturacion: comprobanteArr[21], | 26 | fechaTipoCambioFacturacion: comprobanteArr[21], |
29 | monedaPago: comprobanteArr[22], | 27 | monedaPago: comprobanteArr[22], |
30 | tipoCambioMonedaPago: returnFloatByDecimals(comprobanteArr[23], 6), | 28 | tipoCambioMonedaPago: returnFloatByDecimals(comprobanteArr[23], 6), |
31 | fechaTipoCambioPago: comprobanteArr[24], | 29 | fechaTipoCambioPago: comprobanteArr[24], |
32 | importeOtrosTributos: returnFloatByDecimals(comprobanteArr[25], 2) | 30 | importeOtrosTributos: returnFloatByDecimals(comprobanteArr[25], 2) |
33 | }; | 31 | }; |
34 | } | 32 | } |
35 | 33 |
planex/index.js
1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
2 | 2 | ||
3 | // split por salto de línea | ||
4 | comprobante = comprobante.split(/\r?\n/); | ||
5 | |||
6 | var objReturn = { | ||
7 | identificaxComprobante: {}, | ||
8 | identificaxMensaje: {}, | ||
9 | comprobantesReferencia: [], | ||
10 | identificaxEmisor: {}, | ||
11 | informaxRepresentanteEmisor: {}, | ||
12 | identificaxReceptorFactura: {}, | ||
13 | identificaxSucursalReceptorFactura: {}, | ||
14 | importesTotales: {}, | ||
15 | detallesImportesIVA: {}, | ||
16 | detallePercepcionesIIBB: {}, | ||
17 | descuentosGlobalesFactura: {}, | ||
18 | detalleOtrosImpuestosComprobante: {}, | ||
19 | itemsFactura: [], | ||
20 | detalleDescuentosItemFactura: {}, | ||
21 | detalleImpuestosItemFactura: {} | ||
22 | }; | ||
3 | 23 | ||
4 | function returnFloatByDecimals(parameter, cantDecimal) { | 24 | function returnFloatByDecimals(parameter, cantDecimal) { |
5 | 25 | ||
6 | if (!parameter) return; | 26 | if (!parameter) return; |
7 | 27 | ||
8 | var antesDeLaComa = parseFloat(parameter.slice(0, parameter.length - cantDecimal)); | 28 | var beforeSemiColon = parseFloat(parameter.slice(0, parameter.length - cantDecimal)); |
9 | 29 | ||
10 | var despuesDeLaComa = parameter.slice(parameter.length - cantDecimal, parameter.length); | 30 | var afterSemicolon = parameter.slice(parameter.length - cantDecimal, parameter.length); |
11 | 31 | ||
12 | return parseFloat(antesDeLaComa + '.' + despuesDeLaComa); | 32 | return parseFloat(beforeSemiColon + '.' + afterSemicolon); |
13 | } | 33 | } |
14 | 34 | ||
15 | return { | 35 | comprobante.forEach(sector => { |
16 | identificaxComprobante: require('./identificaxComprobante')(comprobante),// 010 | 36 | |
17 | identificaxMensaje: require('./identificaxMensaje')(comprobante),// 012 | 37 | if (sector.slice(0, 3) == '010') { |
18 | comprobantesReferencia: require('./comprobantesReferencia')(comprobante), // 020 | 38 | objReturn.identificaxComprobante = require('./identificaxComprobante')(sector)// 010 |
19 | identificaxEmisor: require('./identificaxEmisor')(comprobante), // 030 | 39 | } else if (sector.slice(0, 3) == '012') { |
20 | informaxRepresentanteEmisor: require('./informaxRepresentanteEmisor')(comprobante), // 035 | 40 | objReturn.identificaxMensaje = require('./identificaxMensaje')(sector)// 012 |
21 | identificaxReceptorFactura: require('./identificaxReceptorFactura')(comprobante), // 040 | 41 | } else if (sector.slice(0, 3) == '020') { |
22 | identificaxSucursalReceptorFactura: require('./identificaxSucursalReceptorFactura')(comprobante), // 045 | 42 | objReturn.comprobantesReferencia.push(require('./comprobantesReferencia')(sector)) // 020 |
23 | importesTotales: require('./importesTotales')(comprobante, returnFloatByDecimals), // 050 | 43 | } else if (sector.slice(0, 3) == '030') { |
24 | detallesImportesIVA: require('./detallesImportesIVA')(comprobante, returnFloatByDecimals), // 060 | 44 | objReturn.identificaxEmisor = require('./identificaxEmisor')(sector) // 030 |
25 | detallePercepcionesIIBB: require('./detallePercepcionesIIBB')(comprobante, returnFloatByDecimals), // 070 | 45 | } else if (sector.slice(0, 3) == '035') { |
26 | descuentosGlobalesFactura: require('./descuentosGlobalesFactura')(comprobante, returnFloatByDecimals), // 080 | 46 | objReturn.informaxRepresentanteEmisor = require('./informaxRepresentanteEmisor')(sector) // 035 |
27 | detalleOtrosImpuestosComprobante: require('./detalleOtrosImpuestosComprobante')(comprobante, returnFloatByDecimals), // 090 | 47 | } else if (sector.slice(0, 3) == '040') { |
28 | itemsFactura: require('./itemsFactura')(comprobante, returnFloatByDecimals), // 100 | 48 | objReturn.identificaxReceptorFactura = require('./identificaxReceptorFactura')(sector) // 040 |
29 | detalleDescuentosItemFactura: require('./detalleDescuentosItemFactura')(comprobante, returnFloatByDecimals), // 110 | 49 | } else if (sector.slice(0, 3) == '045') { |
30 | detalleImpuestosItemFactura: require('./detalleImpuestosItemFactura')(comprobante, returnFloatByDecimals), // 120 | 50 | objReturn.identificaxSucursalReceptorFactura = require('./identificaxSucursalReceptorFactura')(sector) // 045 |
31 | }; | 51 | } else if (sector.slice(0, 3) == '050') { |
52 | objReturn.importesTotales = require('./importesTotales')(sector, returnFloatByDecimals) // 050 | ||
53 | } else if (sector.slice(0, 3) == '060') { | ||
54 | objReturn.detallesImportesIVA = require('./detallesImportesIVA')(sector, returnFloatByDecimals) // 060 | ||
55 | } else if (sector.slice(0, 3) == '070') { | ||
56 | objReturn.detallePercepcionesIIBB = require('./detallePercepcionesIIBB')(sector, returnFloatByDecimals) // 070 | ||
57 | } else if (sector.slice(0, 3) == '080') { | ||
58 | objReturn.descuentosGlobalesFactura = require('./descuentosGlobalesFactura')(sector, returnFloatByDecimals) // 080 | ||
59 | } else if (sector.slice(0, 3) == '090') { | ||
60 | objReturn.detalleOtrosImpuestosComprobante = require('./detalleOtrosImpuestosComprobante')(sector, returnFloatByDecimals) // 090 | ||
61 | } else if (sector.slice(0, 3) == '100') { | ||
62 | objReturn.itemsFactura.push(require('./itemsFactura')(sector, returnFloatByDecimals)); // 100 | ||
63 | } else if (sector.slice(0, 3) == '110') { | ||
64 | objReturn.detalleDescuentosItemFactura = require('./detalleDescuentosItemFactura')(sector, returnFloatByDecimals); // 110 | ||
65 | } else if (sector.slice(0, 3) == '120') { | ||
66 | objReturn.detalleImpuestosItemFactura = require('./detalleImpuestosItemFactura')(sector, returnFloatByDecimals); // 120 | ||
67 | } | ||
68 | }); | ||
69 | |||
70 | return objReturn; | ||
32 | } | 71 | } |
33 | 72 |
planex/itemsFactura.js
1 | module.exports = function(comprobante, returnFloatByDecimals) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
2 | 2 | ||
3 | comprobante = '100;000001;74300;2087455000005;DescripciónArticulo;000000000500000;;000000000035500;02100;0000 00000003452;000000000016437;000000000000000;000000000000000;G; ;000000000000100;000000000000100;CR;CU;000000000032873;7798569874125;; '; | ||
4 | |||
5 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
6 | 4 | ||
7 | return { | 5 | return { |
8 | numeroLinea: comprobanteArr[1], | 6 | numeroLinea: comprobanteArr[1], |
9 | codigoProductoServicio: comprobanteArr[2], | 7 | codigoProductoServicio: comprobanteArr[2], |
10 | codigoProductoServicioComprador: comprobanteArr[3], | 8 | codigoProductoServicioComprador: comprobanteArr[3], |
11 | descripcion: comprobanteArr[4], | 9 | descripcion: comprobanteArr[4], |
12 | cantidad: returnFloatByDecimals(comprobanteArr[5], 5), | 10 | cantidad: returnFloatByDecimals(comprobanteArr[5], 5), |
13 | unidadMedida: comprobanteArr[6], | 11 | unidadMedida: comprobanteArr[6], |
14 | precioUnitario: returnFloatByDecimals(comprobanteArr[7], 3), | 12 | precioUnitario: returnFloatByDecimals(comprobanteArr[7], 3), |
15 | alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[8], 2), | 13 | alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[8], 2), |
16 | importeIVA: returnFloatByDecimals(comprobanteArr[9], 2), | 14 | importeIVA: returnFloatByDecimals(comprobanteArr[9], 2), |
17 | subtotalPorRegistro: returnFloatByDecimals(comprobanteArr[10], 2), | 15 | subtotalPorRegistro: returnFloatByDecimals(comprobanteArr[10], 2), |
18 | importeBonificacion: returnFloatByDecimals(comprobanteArr[11], 2), | 16 | importeBonificacion: returnFloatByDecimals(comprobanteArr[11], 2), |
19 | importeAjuste: returnFloatByDecimals(comprobanteArr[12], 2), | 17 | importeAjuste: returnFloatByDecimals(comprobanteArr[12], 2), |
20 | indicacionExento: comprobanteArr[13], | 18 | indicacionExento: comprobanteArr[13], |
21 | indicacionAnulacion: comprobanteArr[14], | 19 | indicacionAnulacion: comprobanteArr[14], |
22 | numeroUnidadesPorUnidadEmbalaje: returnFloatByDecimals(comprobanteArr[15], 2), | 20 | numeroUnidadesPorUnidadEmbalaje: returnFloatByDecimals(comprobanteArr[15], 2), |
23 | cantidadEmbalajes: returnFloatByDecimals(comprobanteArr[16], 2), | 21 | cantidadEmbalajes: returnFloatByDecimals(comprobanteArr[16], 2), |
24 | codigoTipoEmbalaje: comprobanteArr[17], | 22 | codigoTipoEmbalaje: comprobanteArr[17], |
25 | unidadReferenciaDescripcion: comprobanteArr[18], | 23 | unidadReferenciaDescripcion: comprobanteArr[18], |
26 | precioUnitarioSinImpuestos: returnFloatByDecimals(comprobanteArr[19], 3), | 24 | precioUnitarioSinImpuestos: returnFloatByDecimals(comprobanteArr[19], 3), |
27 | codigoUPCEAN13: comprobanteArr[20], | 25 | codigoUPCEAN13: comprobanteArr[20], |
28 | codigoDUN14: comprobanteArr[21], | 26 | codigoDUN14: comprobanteArr[21], |
29 | codigoMercosur: comprobanteArr[22], | 27 | codigoMercosur: comprobanteArr[22], |
30 | unidadesMatrix: comprobanteArr[23], | 28 | unidadesMatrix: comprobanteArr[23], |
31 | codigoMatrix: comprobanteArr[24], | 29 | codigoMatrix: comprobanteArr[24], |
32 | precioLista: returnFloatByDecimals(comprobanteArr[25], 2) | 30 | precioLista: returnFloatByDecimals(comprobanteArr[25], 2) |
33 | }; | 31 | }; |
34 | } | 32 | } |
35 | 33 |
watch/index.js
File was created | 1 | module.exports = function(dir, callback) { | |
2 | |||
3 | const fs = require('fs'); | ||
4 | |||
5 | fs.watch(dir, function(event, file) { | ||
6 | |||
7 | var extencion = file.split('.')[1]; | ||
8 | |||
9 | if (extencion == 'plx') { | ||
10 | |||
11 | fs.readFile(dir + '\\' + file, 'utf8', function(err , fileString) { | ||
12 | |||
13 | callback(event, fileString); | ||
14 | }) | ||
15 | } | ||
16 | |||
17 | }); | ||
18 | |||
19 | }; | ||
20 |
webSocketServer/index.js
File was created | 1 | module.exports = function() { | |
2 | |||
3 | const webSocketServer = require('ws').Server; | ||
4 | var clients = []; | ||
5 | |||
6 | const objWs = {}; | ||
7 | |||
8 | objWs.wsServer = new webSocketServer({ | ||
9 | port: config.port | ||
10 | }); | ||
11 | |||
12 | objWs.wsServer.on('connection', function connection(ws) { | ||
13 | |||
14 | console.log('open socket server'); | ||
15 | |||
16 | ws.on('message', function incoming(message) { | ||
17 | |||
18 | message = JSON.parse(message.toString('utf8')); | ||
19 | |||
20 | switch (message.action) { | ||
21 | case 'gln': | ||
22 | clients.push({ws: ws, gln: message.gln}); | ||
23 | break; | ||
24 | default: | ||
25 | console.log(message.action); | ||
26 | } | ||
27 | }); | ||
28 | }); | ||
29 | |||
30 | objWs.getEntidad = function(gln, tableName, where) { | ||
31 | |||
32 | return new Promise(function(resolve, reject) { | ||
33 | |||
34 | clients.forEach(client => { | ||
35 | |||
36 | if (client.gln == gln) { | ||
37 | |||
38 | var enviar = { | ||
39 | action: 'getEntity', | ||
40 | tableName: tableName, | ||
41 | where: where | ||
42 | } | ||
43 | |||
44 | client.ws.send(JSON.stringify(enviar)); | ||
45 | |||
46 | client.ws.on('message', function(message) { | ||
47 | |||
48 | console.log(JSON.parse(message)); | ||
49 | |||
50 | resolve(message.data); | ||
51 | }); | ||
52 | } | ||
53 | }); | ||
54 | }); | ||
55 | } | ||
56 | |||
57 | return objWs; | ||
58 | } |