Commit 859bdcbb0726d408f9f9bcd962dd81cf8113c99b
1 parent
540b58a031
Exists in
master
parse wesocket
Showing
16 changed files
with
282 additions
and
81 deletions
Show diff stats
afip/index.js
... | ... | @@ -0,0 +1,40 @@ |
1 | +module.exports = function(codigo) { | |
2 | + | |
3 | + var tablaAfip = [ | |
4 | + { | |
5 | + codigo: 1, | |
6 | + letraComprobante: 'A', | |
7 | + tipoComprobante: 'FT' | |
8 | + }, | |
9 | + { | |
10 | + codigo: 7, | |
11 | + letraComprobante: 'B', | |
12 | + tipoComprobante: 'ND' | |
13 | + }, | |
14 | + { | |
15 | + codigo: 8, | |
16 | + letraComprobante: 'B', | |
17 | + tipoComprobante: 'NC' | |
18 | + }, | |
19 | + { | |
20 | + codigo: 15, | |
21 | + letraComprobante: 'C', | |
22 | + tipoComprobante: 'RE' | |
23 | + }, | |
24 | + { | |
25 | + codigo: 60, | |
26 | + letraComprobante: 'A', | |
27 | + tipoComprobante: 'LP' | |
28 | + }, | |
29 | + { | |
30 | + codigo: 61, | |
31 | + letraComprobante: 'B', | |
32 | + tipoComprobante: 'LP' | |
33 | + } | |
34 | + ] | |
35 | + | |
36 | + return tablaAfip.filter(function(comprobante) { | |
37 | + return comprobante.codigo == parseInt(codigo) | |
38 | + })[0]; | |
39 | + | |
40 | +} | |
0 | 41 | \ No newline at end of file |
debo/cabeceraDebo.js
... | ... | @@ -0,0 +1,91 @@ |
1 | +module.exports = function(comprobante, afipTablas) { | |
2 | + | |
3 | + return { | |
4 | + TIP: afipTablas(comprobante.identificaxComprobante.tipo).letraComprobante, // [char](1) NOT NULL, LETRA DEL COMPROBANTE (A,B,C,M,E) | |
5 | + TCO: afipTablas(comprobante.identificaxComprobante.tipo).tipoComprobante, // [char](2) NOT NULL, TIPO DE COMPROBANTE (FT,NC,ND,RE,CI,LP) | |
6 | + SUC: parseInt(comprobante.identificaxComprobante.puntoVenta), // [int] NOT NULL, PUNTO DE VENTA | |
7 | + NCO: parseInt(comprobante.identificaxComprobante.numero), // [bigint] NOT NULL, NUMERO DE COMPROBANTE | |
8 | + COD: null, // [int] NOT NULL, CODIGO DEL PROVEEDOR NECESITAS RELACION -- BUSCAR SI ENVIAN EL CUIT DEL PROVEEDOR SELECT COD FROM PROVEED WHERE CUIT= '30-54775125-2' | |
9 | + FEC: comprobante.identificaxComprobante.fechaComprobante, // [smalldatetime] NULL, FECHA DEL COMPROBANTE | |
10 | + NOM: null, // [varchar](40) NOT NULL, NOMBRE DEL PROVEEDOR TABLA PROVEED CAMPO NOM | |
11 | + TIV: null, // [tinyint] NOT NULL, TIPO DE IVA CAMPO IVA TABLA PROVEED | |
12 | + CUI: null, // [char](13) NOT NULL, CUIT DEL PROVEEDOR CAMPO CUIT DEL PROVEEDOR O EL QUE VIENE EN LA COMUNICACION | |
13 | + FPA: null, // [tinyint] NOT NULL, FORMA DE PAGO CAMPO FPA TABLA PROVEED | |
14 | + TCA: 1, // [money] NOT NULL, FIJO 1 | |
15 | + DTO: comprobante.descuentosGlobalesFactura.importe, // [money] NOT NULL, DESCUENTO TOTAL SUMATORIA DE LOS DTO POR ITEM | |
16 | + PDT: 0, // [money] NOT NULL, FIJO 0 | |
17 | + NET: null, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA <> 0 | |
18 | + NEE: null, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA = 0 | |
19 | + IRI: comprobante.detallesImportesIVA.importeLiquidado, // [money] NOT NULL, SUMATORIA DE LOS IVA POR ITEM | |
20 | + IRS: 0, // [money] NOT NULL, FIJO 0 | |
21 | + IMI: comprobante.importesTotales.importeImpuestosInternos, // [money] NOT NULL, SUMATORIA DE LOS IMPUESTOS INTERNOS POR ITEM | |
22 | + RGA: null, // [money] NOT NULL, IMPORTE RETENCION DE GANANCIAS | |
23 | + RIB: null, // [money] NOT NULL, IMPORTE RETENCION DE INBRESOS BRUTOS | |
24 | + PIV: null, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA | |
25 | + CNG: comprobante.importesTotales.totalConceptosNoNetoGravado, // [money] NULL, IMPORTE DE CONCEPTOS NO GRAVADOS | |
26 | + TOT: null, // [money] NOT NULL, IMPORTE TOTAL DE LA FACTURA | |
27 | + ZON: null, // [int] NOT NULL, NUMERO DE LA EMPRESA SELECT ZON FROM APAREMP | |
28 | + FEV: comprobante.identificaxComprobante.fechaComprobante, // [datetime] NULL, FECHA DE VENCIMIENTO | |
29 | + OCP: null, // [char](10) NOT NULL, SI VIENE LA ORDEN DE COMPRA FORMATO "0000000000" (DOS PRIMERO PARA PVE Y 8 ULTIMOS EL NUMERO DE LA OC) | |
30 | + OPE: 0, // [int] NOT NULL, FIJO 0 | |
31 | + REC: 0, // [bigint] NOT NULL, FIJO 0 | |
32 | + FEP: null, // [datetime] NULL, ITEM FECHA FACTURA | |
33 | + NPE: 0, // [bigint] NOT NULL, NOTA DE PEDIDO FIJO 0 | |
34 | + CPA: 0, // [int] NOT NULL, FIJO 0 | |
35 | + ENV: 0, // [int] NOT NULL, FIJO 0 | |
36 | + REM: 0, // [bigint] NOT NULL, FIJO 0 | |
37 | + PRO: ' ', // [char](1) NOT NULL, FIJO ' ' VACIO NO NULO | |
38 | + ANU: ' ', // [char](1) NOT NULL, FIJO ' ' VACIO NO NULO | |
39 | + TUR: 0, // [int] NOT NULL, FIJO 0 | |
40 | + PLA: 0, // [int] NOT NULL, FIJO 0 | |
41 | + LUG: 0, // [int] NOT NULL, FIJO 0 | |
42 | + ATO: 0, // [numeric](18, 0) NOT NULL, FIJO 0 | |
43 | + CCO: 0, // [bigint] NOT NULL, FIJO 0 | |
44 | + IMA: 0, // [int] NOT NULL, FIJO 0 | |
45 | + CCA1: 0, // [int] NOT NULL, FIJO 0 | |
46 | + CCA2: 0, // [int] NOT NULL, FIJO 0 | |
47 | + CCA3: 0, // [int] NOT NULL, FIJO 0 | |
48 | + CCA4: 0, // [int] NOT NULL, FIJO 0 | |
49 | + CCA5: 0, // [int] NOT NULL, FIJO 0 | |
50 | + CCA6: 0, // [int] NOT NULL, FIJO 0 | |
51 | + CCA7: 0, // [int] NOT NULL, FIJO 0 | |
52 | + CCA8: 0, // [int] NOT NULL, FIJO 0 | |
53 | + CCA0: 0, // [int] NOT NULL, FIJO 0 | |
54 | + OBS: comprobante.importesTotales.observaciones, // [varchar](60) NOT NULL, SI VIENEN OBSERVACIONES PONER AQUI SINO VACIO NO NULO | |
55 | + RIV: null, // [money] NOT NULL, IMPORTE RETENCION DE IVA | |
56 | + FECCAI: comprobante.identificaxComprobante.fechaVencimientoCai, // [smalldatetime] NOT NULL, FECHA DEL CAI | |
57 | + CAI: comprobante.identificaxComprobante.cai, // [char](16) NOT NULL, NUMERO DE CAI | |
58 | + CHO: 0, // [int] NOT NULL, FIJO 0 | |
59 | + CTR: '', // [char](1) NOT NULL, VACIO NO NULO | |
60 | + PER: null, // [money] NOT NULL, IMPORTE DE PERCEPCIONES | |
61 | + CCA9: 0, // [int] NOT NULL, FIJO 0 | |
62 | + FECVEN: comprobante.identificaxComprobante.fechaVencimiento, // [smalldatetime] NOT NULL, FECHA DE VENCIMIENTO DE LA FACTURA | |
63 | + CNG2: null, // [money] NOT NULL, IMPORTE DE CONCEPTOS NO GRAVADOS 2 | |
64 | + E_HD: '', // [varchar](8) NOT NULL, VACIO NO NULO | |
65 | + C_HD: '', // [varchar](1) NOT NULL, VACIO NO NULO | |
66 | + RSS: null, // [money] NOT NULL, IMPORTE RETENCIONS SUSS | |
67 | + E_HD2: '', // [varchar](12) NOT NULL, VACIO NO NULO | |
68 | + C_HD2: '', // [varchar](1) NOT NULL, VACIO NO NULO | |
69 | + DTO2: null, // [money] NOT NULL, IMPORTE DE OTROS DESCUENTOS | |
70 | + ENLP: 0, // [bit] NOT NULL, FIJO 0 | |
71 | + COD_TRANS: comprobante.identificaxComprobante.numeroRegistrado, // [bigint] NOT NULL, VER DE PONER EL NUMERO DE REFERENCIA QUE PUEDA UNIRNOS A LO QUE VIENE DESDE PLANEX | |
72 | + RETMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE DE RETENCIONES MUNICIPALES | |
73 | + TIPO_OPERACION: 0, // [int] NOT NULL, FIJO 0 | |
74 | + IRD: 0, // [money] NOT NULL, FIJO 0 | |
75 | + AUX1: 0, // [money] NOT NULL, FIJO 0 | |
76 | + AUX2: 0, // [money] NOT NULL, FIJO 0 | |
77 | + AUX3: 0, // [money] NOT NULL, FIJO 0 | |
78 | + AUX4: 0, // [money] NOT NULL, FIJO 0 | |
79 | + ARBA: null, // [money] NOT NULL, IMPORTE RETENCION ARBA | |
80 | + DGR: null, // [money] NOT NULL, IMPORTE RETENCION DGR | |
81 | + DTO_PIE: null, // [money] NOT NULL, IMPORTE DE DESCUENTO AL PIE, NO POR ITEM | |
82 | + OPERACIONES_3711: 1, // [int] NOT NULL, FIJO 1 (PORQUE SON BIENES) | |
83 | + ORC: null, // [bigint] NOT NULL, NUMERO DE ORDEN DE COMPRA | |
84 | + NC_ES_NP: 0, // [bit] NOT NULL, FIJO 0 | |
85 | + CABA: null, // [money] NOT NULL, IMPORTE RETENCION CABA | |
86 | + ARBA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION ARBA | |
87 | + CABA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION CABA | |
88 | + PERMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE PERCEPCIONES MUNICIPALES | |
89 | + IMI2: 0, // [money] NOT NULL, FIJO 0 | |
90 | + }; | |
91 | +} |
debo/cuerpoDebo.js
... | ... | @@ -0,0 +1,41 @@ |
1 | +module.exports = function(comprobante) { | |
2 | + | |
3 | + return { | |
4 | + TIP: null, // [char](1) NOT NULL, LETRA DEL COMPROBANTE (A,B,C,M) | |
5 | + TCO: null, // [char](2) NOT NULL, TIPO DE COMPROBANTE (FT,NC,ND) | |
6 | + SUC: parseInt(comprobante.identificaxComprobante.puntoVenta), // [int] NOT NULL, PUNTO DE VENTA DE LA FACTURA | |
7 | + NCO: parseInt(comprobante.identificaxComprobante.numero), // [bigint] NOT NULL, NUMERO DE COMPROBANTE | |
8 | + PRO: null, // [int] NOT NULL, CODIGO DEL PROVEEDOR NECESITAS RELACION -- BUSCAR SI ENVIAN EL CUIT DEL PROVEEDOR SELECT COD FROM PROVEED WHERE CUIT= '30-54775125-2' | |
9 | + ORD: parseInt(comprobante.itemsFactura.numeroLinea), // [int] NOT NULL, ORDEN DEL ITEM, EMPIEZA EN 1 Y SUMA DE A 1 POR CADA REGISTRO DE MOVIMIENTO | |
10 | + COD: null, // [int] NOT NULL, SECTOR DEBO DEL PRODUCTO | |
11 | + ART: null, // [int] NOT NULL, ARTICULO DEBO DEL PRODUCTO ESTOS 2 SE OBTIENEN A PARTIR DEL CODIGO DE BARRAS: SELECT CodSec AS SECTOR,CodArt AS ARTICULO FROM CODBAR WHERE CODBAR='03239210540' | |
12 | + RUB: null, // [int] NOT NULL, CODIGO DE RUBRO SE OBTIENE DE LA TABLA ARTICULOS SELECT DET_LAR,CODRUB FROM ARTICULOS WHERE CODSEC=SECTOR AND CODART=ARTICULO (DATOS OBTENIDOS EN NOTA ANTERIOR | |
13 | + TIO: null, // [varchar](60) NOT NULL DESCRIPCION DEL PRODUCTO DEL PUNTO ANTERIOR DET_LAR | |
14 | + LI0: comprobante.itemsFactura.descripcion, // [varchar](60) NOT NULL, DESCRIPCION ENVIADA POR EL PROVEEDOR | |
15 | + CAN: comprobante.itemsFactura.cantidad, // [money] NOT NULL, CANTIDAD DEL ITEM | |
16 | + PUN: comprobante.itemsFactura.precioUnitario, // [decimal](20, 8) NOT NULL PRECIO UNITARIO DEL PRODUCTO ITEM | |
17 | + IMI: comprobante.detalleImpuestosItemFactura.importeImpuesto, // [money] NOT NULL, IMPORTE IMPUESTOS INTERNOS DEL ITEM | |
18 | + IVA: comprobante.itemsFactura.importeIVA, // [money] NOT NULL, IMPORTE IVA DEL ITEM | |
19 | + PUT: comprobante.itemsFactura.precioUnitario, // [money] NOT NULL, IGUAL AL PUN | |
20 | + LEG: 0, // [int] NOT NULL, FIJO 0 | |
21 | + CMF: 0, // [int] NOT NULL, FIJO 0 | |
22 | + TUR: 0, // [int] NOT NULL, FIJO 0 | |
23 | + PLA: 0, // [int] NOT NULL, FIJO 0 | |
24 | + LUG: 0, // [int] NOT NULL, FIJO 0 | |
25 | + ESC: 0, // [bit] NOT NULL, FIJO 0 | |
26 | + TAN: 0, // [int] NOT NULL, FIJO 0 | |
27 | + CCO: 0, // [bigint] NOT NULL, FIJO 0 | |
28 | + E_HD: '', // [varchar](8) NOT NULL, FIJO '' VACIO NO NULO | |
29 | + C_HD: '', // [varchar](1) NOT NULL, FIJO '' VACIO NO NULO | |
30 | + DTO: comprobante.detalleDescuentosItemFactura.importeDescuento, // [money] NOT NULL, IMPORTE DESCUENTO DE LA FACTURA | |
31 | + PTA: 0, // [int] NOT NULL, FIJO 0 | |
32 | + SUBM: 0, // [int] NOT NULL, FIJO 0 | |
33 | + E_HD2: '', // [varchar](12) NOT NULL, FIJO '' VACIO NO NULO | |
34 | + C_HD2: '', // [varchar](1) NOT NULL, FIJO '' VACIO NO NULO | |
35 | + COMISION: 0, // [money] NOT NULL, FIJO 0 | |
36 | + LIQ_VTA: '', // [varchar](20) NOT NULL, FIJO '' VACIO NO NULO | |
37 | + COSTO_PMOV: comprobante.itemsFactura.precioUnitario, // [money] NOT NULL, IGUAL AL PUN | |
38 | + SAL_ITEM: 0, // [money] NOT NULL, fijo 0 es el que se llenara al mostrar en la tablet o telefono para que llene operador | |
39 | + TASIVA: comprobante.itemsFactura.alicuotaIVAAplicable, // [money] NOT NULL, TASA DE IVA DEL ITEM = 21.00 / 10.50 / ETC. | |
40 | + }; | |
41 | +} |
debo/index.js
index.js
... | ... | @@ -4,7 +4,10 @@ const config = require('./config/config.json'); |
4 | 4 | |
5 | 5 | const planex = require('./planex/index')(''); |
6 | 6 | |
7 | +const debo = require('./debo/index')(planex); | |
8 | + | |
7 | 9 | console.log(planex); |
10 | +console.log(debo); | |
8 | 11 | |
9 | 12 | fs.watch(__dirname, function (event, file) { |
10 | 13 | console.log(event); |
... | ... | @@ -16,15 +19,20 @@ const wsServer = new webSocketServer({ |
16 | 19 | }); |
17 | 20 | |
18 | 21 | wsServer.on('connection', function connection(ws) { |
19 | - console.log('open socket server') | |
22 | + | |
23 | + console.log('open socket server'); | |
20 | 24 | |
21 | 25 | ws.on('message', function incoming(message) { |
22 | - console.log('recibe ho: %s', message); | |
23 | - if (message == 'isAlive?') { | |
24 | 26 | |
25 | - setTimeout(function () { | |
26 | - ws.send('YES IS ALIVE'); | |
27 | - }, 10000); | |
27 | + message = message.toString('utf8'); | |
28 | + console.log(message); | |
29 | + | |
30 | + switch (message) { | |
31 | + case message.action == 'gln': | |
32 | + ws.gln = message.gln; | |
33 | + break; | |
34 | + default: | |
35 | + break; | |
28 | 36 | } |
29 | 37 | }); |
30 | 38 | }); |
planex/comprobantesReferencia.js
... | ... | @@ -6,8 +6,8 @@ module.exports = function(comprobante) { |
6 | 6 | |
7 | 7 | return { |
8 | 8 | tipoDocumentoReferencia: comprobanteArr[1], |
9 | - puntoVentaReferencia: comprobanteArr[2], | |
10 | - numeroDocumentoReferencia: comprobanteArr[3], | |
9 | + puntoVentaReferencia: parseInt(comprobanteArr[2]), | |
10 | + numeroDocumentoReferencia: parseInt(comprobanteArr[3]), | |
11 | 11 | fechaComprobanteReferencia: comprobanteArr[4], |
12 | 12 | cuitEmisorComprobanteAsociado: comprobanteArr[5] |
13 | 13 | } |
planex/descuentosGlobalesFactura.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | 3 | var comrpobanteArr = comprobante.split(';'); |
4 | 4 | |
5 | 5 | return { |
6 | 6 | descripcionDescuentoOIntereses: comrpobanteArr[1], |
7 | - porcentaje: comrpobanteArr[2], | |
8 | - importeBase: comrpobanteArr[3], | |
9 | - importe: comrpobanteArr[4], | |
7 | + porcentaje: returnFloatByDecimals(comrpobanteArr[2], 2), | |
8 | + importeBase: returnFloatByDecimals(comrpobanteArr[3], 2), | |
9 | + importe: returnFloatByDecimals(comrpobanteArr[4]), | |
10 | 10 | ClasificadorDescuentoOInteres: comrpobanteArr[5] |
11 | 11 | }; |
12 | 12 | } |
planex/detalleDescuentosItemFactura.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | 3 | var comprobanteArr = comprobante.split(';'); |
4 | 4 | |
5 | 5 | return { |
6 | 6 | numeroLinea: comprobanteArr[1], |
7 | 7 | descripcionDescuento: comprobanteArr[2], |
8 | - porcentajeDescuento: comprobanteArr[3], | |
9 | - importeBase: comprobanteArr[4], | |
10 | - importeDescuento: comprobanteArr[5], | |
8 | + porcentajeDescuento: returnFloatByDecimals(comprobanteArr[3], 2), | |
9 | + importeBase: returnFloatByDecimals(comprobanteArr[4], 2), | |
10 | + importeDescuento: returnFloatByDecimals(comprobanteArr[5], 2) | |
11 | 11 | }; |
12 | 12 | } |
planex/detalleImpuestosItemFactura.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | 3 | var comprobanteArr = comprobante.split(';'); |
4 | 4 | |
5 | 5 | return { |
6 | 6 | numeroLinea: comprobanteArr[1], |
7 | 7 | descripcionImpuesto: comprobanteArr[2], |
8 | - procentajeImpuesto: comprobanteArr[3], | |
9 | - importeBase: comprobanteArr[4], | |
10 | - importeImpuesto: comprobanteArr[5] | |
8 | + procentajeImpuesto: returnFloatByDecimals(comprobanteArr[3], 2), | |
9 | + importeBase: returnFloatByDecimals(comprobanteArr[4], 2), | |
10 | + importeImpuesto: returnFloatByDecimals(comprobanteArr[5, 2]) | |
11 | 11 | }; |
12 | 12 | } |
planex/detalleOtrosImpuestosComprobante.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | 3 | var comprobanteArr = comprobante.split(';'); |
4 | 4 | |
5 | 5 | return { |
6 | 6 | descripcionImpuesto: comprobanteArr[1], |
7 | - porcentaje: comprobanteArr[2], | |
8 | - importeBase: comprobanteArr[3], | |
9 | - importeImpuesto: comprobanteArr[4], | |
7 | + porcentaje: returnFloatByDecimals(comprobanteArr[2], 2), | |
8 | + importeBase: returnFloatByDecimals(comprobanteArr[3], 2), | |
9 | + importeImpuesto: returnFloatByDecimals(comprobanteArr[4], 2), | |
10 | 10 | codigoArancelImpuestoOCuota: comprobanteArr[5], |
11 | 11 | jurisdiccion: comprobanteArr[6] |
12 | 12 | }; |
planex/detallePercepcionesIIBB.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | 3 | comprobante = '070;01;000000000000411;00;000000000000000;PERC .I.B. BS. A.S;00250;000000000016436;00000;000000000000000 '; |
4 | 4 | |
... | ... | @@ -6,13 +6,13 @@ module.exports = function(comprobante) { |
6 | 6 | |
7 | 7 | return { |
8 | 8 | codigoJurisdiccionIB: comprobanteArr[1], |
9 | - importePercepcionesIB: comprobanteArr[2], | |
9 | + importePercepcionesIB: returnFloatByDecimals(comprobanteArr[2], 2), | |
10 | 10 | jurisdiccionImpuestosMunicipales: comprobanteArr[3], |
11 | - importePercepcionesImpuestosMunicipales: comprobanteArr[4], | |
11 | + importePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[4], 2), | |
12 | 12 | descripcionPercepcionIB: comprobanteArr[5], |
13 | - porcentajePercepcionesIB: comprobanteArr[6], | |
14 | - importeBasePercepcionesIB: comprobanteArr[7], | |
15 | - porcentajePercepcionesImpuestosMunicipales: comprobanteArr[8], | |
16 | - importeBasePercepcionesImpuestosMunicipales: comprobanteArr[9] | |
13 | + porcentajePercepcionesIB: returnFloatByDecimals(comprobanteArr[6], 2), | |
14 | + importeBasePercepcionesIB: returnFloatByDecimals(comprobanteArr[7], 2), | |
15 | + porcentajePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[8], 2), | |
16 | + importeBasePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[9], 2) | |
17 | 17 | }; |
18 | 18 | } |
planex/detallesImportesIVA.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | - comprobante = '060;02100;000000000024349;000000000115946;000000000000000 '; | |
3 | + comprobante = '060;02100;000000000024349;000000000115946;000000000000000'; | |
4 | 4 | |
5 | 5 | var comprobanteArr = comprobante.split(';'); |
6 | 6 | |
7 | 7 | return { |
8 | - alicuotaIVAAplicable: comprobanteArr[1], | |
9 | - importeLiquidado: comprobanteArr[2], | |
10 | - importeNetoGravado: comprobanteArr[3], | |
11 | - importeLiquidadoRNI: comprobanteArr[4] | |
8 | + alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[1], 2), | |
9 | + importeLiquidado: returnFloatByDecimals(comprobanteArr[2], 2), | |
10 | + importeNetoGravado: returnFloatByDecimals(comprobanteArr[3], 2), | |
11 | + importeLiquidadoRNI: returnFloatByDecimals(comprobanteArr[4], 2) | |
12 | 12 | }; |
13 | 13 | } |
planex/identificaxComprobante.js
... | ... | @@ -6,9 +6,9 @@ module.exports = function(comprobante) { |
6 | 6 | |
7 | 7 | return { |
8 | 8 | tipo: comprobanteArr[1], |
9 | - numero: comprobanteArr[2], | |
10 | - numeroRegistrado: comprobanteArr[3], | |
11 | - puntoVenta: comprobanteArr[4], | |
9 | + numero: parseInt(comprobanteArr[2]), | |
10 | + numeroRegistrado: parseInt(comprobanteArr[3]), | |
11 | + puntoVenta: parseInt(comprobanteArr[4]), | |
12 | 12 | fechaComprobante: comprobanteArr[5], |
13 | 13 | fechaVencimiento: comprobanteArr[6], |
14 | 14 | fechaSegundoVencimiento: comprobanteArr[7], |
planex/importesTotales.js
1 | -module.exports = function(comprobante) { | |
2 | - | |
3 | - comprobante = '050;000000000000000;000000000000000;000000000000000;000000000140295;000000000000000;000000000115946;000000 000024349;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000; ;PES;00001000000;1;000000000000000;;; ' | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | + | |
3 | + comprobante = '050;000000000000000;000000000000000;000000000000000;000000000140295;000000000000000;000000000115946;000000 000024349;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;;PES;00001000000;1;000000000000000;;;' | |
4 | 4 | |
5 | 5 | var comprobanteArr = comprobante.split(';'); |
6 | 6 | |
7 | 7 | return { |
8 | - saldoAnterior: comprobanteArr[1], | |
9 | - totalBruto: comprobanteArr[2], | |
10 | - totalNeto: comprobanteArr[3], | |
11 | - totalOperacion: comprobanteArr[4], | |
12 | - totalConceptosNoNetoGravado: comprobanteArr[5], | |
13 | - netoGravado: comprobanteArr[6], | |
14 | - liquidado: comprobanteArr[7], | |
15 | - liquidadoRNI: comprobanteArr[8], | |
16 | - importeOperacionesExentas: comprobanteArr[9], | |
17 | - importeACtaImpuestosNacionales: comprobanteArr[10], | |
18 | - importeIB: comprobanteArr[11], | |
19 | - importeImpuestosMunicipales: comprobanteArr[12], | |
20 | - importeImpuestosInternos: comprobanteArr[13], | |
21 | - transporte: comprobanteArr[14], | |
8 | + saldoAnterior: returnFloatByDecimals(comprobanteArr[1], 2), | |
9 | + totalBruto: returnFloatByDecimals(comprobanteArr[2], 2), | |
10 | + totalNeto: returnFloatByDecimals(comprobanteArr[3], 2), | |
11 | + totalOperacion: returnFloatByDecimals(comprobanteArr[4], 2), | |
12 | + totalConceptosNoNetoGravado: returnFloatByDecimals(comprobanteArr[5], 2), | |
13 | + netoGravado: returnFloatByDecimals(comprobanteArr[6], 2), | |
14 | + liquidado: returnFloatByDecimals(comprobanteArr[7], 2), | |
15 | + liquidadoRNI: returnFloatByDecimals(comprobanteArr[8], 2), | |
16 | + importeOperacionesExentas: returnFloatByDecimals(comprobanteArr[9], 2), | |
17 | + importeActaImpuestosNacionales: returnFloatByDecimals(comprobanteArr[10], 2), | |
18 | + importeIB: returnFloatByDecimals(comprobanteArr[11], 2), | |
19 | + importeImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[12], 2), | |
20 | + importeImpuestosInternos: returnFloatByDecimals(comprobanteArr[13], 2), | |
21 | + transporte: returnFloatByDecimals(comprobanteArr[14], 2), | |
22 | 22 | monedaFacturacion: comprobanteArr[15], |
23 | - tipoCambioFacturacion: comprobanteArr[16], | |
23 | + tipoCambioFacturacion: returnFloatByDecimals(comprobanteArr[16], 2), | |
24 | 24 | cantidadAlicuotasIVA: comprobanteArr[17], |
25 | - totalFacturaSegundoVencimiento: comprobanteArr[18], | |
25 | + totalFacturaSegundoVencimiento: returnFloatByDecimals(comprobanteArr[18], 2), | |
26 | 26 | observaciones: comprobanteArr[19], |
27 | 27 | observacionesDebitoAutomatico: comprobanteArr[20], |
28 | 28 | fechaTipoCambioFacturacion: comprobanteArr[21], |
29 | 29 | monedaPago: comprobanteArr[22], |
30 | - tipoCambioMonedaPago: comprobanteArr[23], | |
30 | + tipoCambioMonedaPago: returnFloatByDecimals(comprobanteArr[23], 6), | |
31 | 31 | fechaTipoCambioPago: comprobanteArr[24], |
32 | - importeOtrosTributos: comprobanteArr[25] | |
32 | + importeOtrosTributos: returnFloatByDecimals(comprobanteArr[25], 2) | |
33 | 33 | }; |
34 | 34 | } |
planex/index.js
1 | 1 | module.exports = function(comprobante) { |
2 | 2 | |
3 | + | |
4 | + function returnFloatByDecimals(parameter, cantDecimal) { | |
5 | + | |
6 | + if (!parameter) return; | |
7 | + | |
8 | + var antesDeLaComa = parseFloat(parameter.slice(0, parameter.length - cantDecimal)); | |
9 | + | |
10 | + var despuesDeLaComa = parameter.slice(parameter.length - cantDecimal, parameter.length); | |
11 | + | |
12 | + return parseFloat(antesDeLaComa + '.' + despuesDeLaComa); | |
13 | + } | |
14 | + | |
3 | 15 | return { |
4 | 16 | identificaxComprobante: require('./identificaxComprobante')(comprobante),// 010 |
5 | 17 | identificaxMensaje: require('./identificaxMensaje')(comprobante),// 012 |
... | ... | @@ -8,13 +20,13 @@ module.exports = function(comprobante) { |
8 | 20 | informaxRepresentanteEmisor: require('./informaxRepresentanteEmisor')(comprobante), // 035 |
9 | 21 | identificaxReceptorFactura: require('./identificaxReceptorFactura')(comprobante), // 040 |
10 | 22 | identificaxSucursalReceptorFactura: require('./identificaxSucursalReceptorFactura')(comprobante), // 045 |
11 | - importesTotales: require('./importesTotales')(comprobante), // 050 | |
12 | - detallesImportesIVA: require('./detallesImportesIVA')(comprobante), // 060 | |
13 | - detallePercepcionesIIBB: require('./detallePercepcionesIIBB')(comprobante), // 070 | |
14 | - descuentosGlobalesFactura: require('./descuentosGlobalesFactura')(comprobante), // 080 | |
15 | - detalleOtrosImpuestosComprobante: require('./detalleOtrosImpuestosComprobante')(comprobante), // 090 | |
16 | - itemsFactura: require('./itemsFactura')(comprobante), // 100 | |
17 | - detalleDescuentosItemFactura: require('./detalleDescuentosItemFactura')(comprobante), // 110 | |
18 | - detalleImpuestosItemFactura: require('./detalleImpuestosItemFactura')(comprobante), // 120 | |
23 | + importesTotales: require('./importesTotales')(comprobante, returnFloatByDecimals), // 050 | |
24 | + detallesImportesIVA: require('./detallesImportesIVA')(comprobante, returnFloatByDecimals), // 060 | |
25 | + detallePercepcionesIIBB: require('./detallePercepcionesIIBB')(comprobante, returnFloatByDecimals), // 070 | |
26 | + descuentosGlobalesFactura: require('./descuentosGlobalesFactura')(comprobante, returnFloatByDecimals), // 080 | |
27 | + detalleOtrosImpuestosComprobante: require('./detalleOtrosImpuestosComprobante')(comprobante, returnFloatByDecimals), // 090 | |
28 | + itemsFactura: require('./itemsFactura')(comprobante, returnFloatByDecimals), // 100 | |
29 | + detalleDescuentosItemFactura: require('./detalleDescuentosItemFactura')(comprobante, returnFloatByDecimals), // 110 | |
30 | + detalleImpuestosItemFactura: require('./detalleImpuestosItemFactura')(comprobante, returnFloatByDecimals), // 120 | |
19 | 31 | }; |
20 | 32 | } |
planex/itemsFactura.js
1 | -module.exports = function(comprobante) { | |
1 | +module.exports = function(comprobante, returnFloatByDecimals) { | |
2 | 2 | |
3 | 3 | comprobante = '100;000001;74300;2087455000005;DescripciónArticulo;000000000500000;;000000000035500;02100;0000 00000003452;000000000016437;000000000000000;000000000000000;G; ;000000000000100;000000000000100;CR;CU;000000000032873;7798569874125;; '; |
4 | 4 | |
... | ... | @@ -9,26 +9,26 @@ module.exports = function(comprobante) { |
9 | 9 | codigoProductoServicio: comprobanteArr[2], |
10 | 10 | codigoProductoServicioComprador: comprobanteArr[3], |
11 | 11 | descripcion: comprobanteArr[4], |
12 | - cantidad: comprobanteArr[5], | |
12 | + cantidad: returnFloatByDecimals(comprobanteArr[5], 5), | |
13 | 13 | unidadMedida: comprobanteArr[6], |
14 | - precioUnitario: comprobanteArr[7], | |
15 | - alicuotaIVAAplicable: comprobanteArr[8], | |
16 | - importeIVA: comprobanteArr[9], | |
17 | - subtotalPorRegistro: comprobanteArr[10], | |
18 | - importeBonificacion: comprobanteArr[11], | |
19 | - importeAjuste: comprobanteArr[12], | |
14 | + precioUnitario: returnFloatByDecimals(comprobanteArr[7], 3), | |
15 | + alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[8], 2), | |
16 | + importeIVA: returnFloatByDecimals(comprobanteArr[9], 2), | |
17 | + subtotalPorRegistro: returnFloatByDecimals(comprobanteArr[10], 2), | |
18 | + importeBonificacion: returnFloatByDecimals(comprobanteArr[11], 2), | |
19 | + importeAjuste: returnFloatByDecimals(comprobanteArr[12], 2), | |
20 | 20 | indicacionExento: comprobanteArr[13], |
21 | 21 | indicacionAnulacion: comprobanteArr[14], |
22 | - numeroUnidadesPorUnidadEmbalaje: comprobanteArr[15], | |
23 | - cantidadEmbalajes: comprobanteArr[16], | |
22 | + numeroUnidadesPorUnidadEmbalaje: returnFloatByDecimals(comprobanteArr[15], 2), | |
23 | + cantidadEmbalajes: returnFloatByDecimals(comprobanteArr[16], 2), | |
24 | 24 | codigoTipoEmbalaje: comprobanteArr[17], |
25 | 25 | unidadReferenciaDescripcion: comprobanteArr[18], |
26 | - precioUnitarioSinImpuestos: comprobanteArr[19], | |
26 | + precioUnitarioSinImpuestos: returnFloatByDecimals(comprobanteArr[19], 3), | |
27 | 27 | codigoUPCEAN13: comprobanteArr[20], |
28 | 28 | codigoDUN14: comprobanteArr[21], |
29 | 29 | codigoMercosur: comprobanteArr[22], |
30 | 30 | unidadesMatrix: comprobanteArr[23], |
31 | 31 | codigoMatrix: comprobanteArr[24], |
32 | - precioLista: comprobanteArr[25] | |
32 | + precioLista: returnFloatByDecimals(comprobanteArr[25], 2) | |
33 | 33 | }; |
34 | 34 | } |