Commit 859bdcbb0726d408f9f9bcd962dd81cf8113c99b

Authored by Eric Fernandez
1 parent 540b58a031
Exists in master

parse wesocket

... ... @@ -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 +}
... ... @@ -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 +}
... ... @@ -0,0 +1,9 @@
  1 +module.exports = function(comprobante) {
  2 +
  3 + var afipTablas = require('../afip/index');
  4 +
  5 + return {
  6 + cabecera: require('./cabeceraDebo')(comprobante, afipTablas),
  7 + cuerpo: require('./cuerpoDebo')(comprobante, afipTablas)
  8 + };
  9 +}
... ... @@ -4,7 +4,10 @@ const config = require(&#39;./config/config.json&#39;);
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 }
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 }