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
| File was created | 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 | } |
debo/cabeceraDebo.js
| File was created | 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 | } | ||
| 92 |
debo/cuerpoDebo.js
| File was created | 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 | } | ||
| 42 |
debo/index.js
| File was created | 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 | } | ||
| 10 |
index.js
| 1 | const webSocketServer = require('ws').Server; | 1 | const webSocketServer = require('ws').Server; |
| 2 | const fs = require('fs'); | 2 | const fs = require('fs'); |
| 3 | const config = require('./config/config.json'); | 3 | const config = require('./config/config.json'); |
| 4 | 4 | ||
| 5 | const planex = require('./planex/index')(''); | 5 | const planex = require('./planex/index')(''); |
| 6 | 6 | ||
| 7 | const debo = require('./debo/index')(planex); | ||
| 8 | |||
| 7 | console.log(planex); | 9 | console.log(planex); |
| 10 | console.log(debo); | ||
| 8 | 11 | ||
| 9 | fs.watch(__dirname, function (event, file) { | 12 | fs.watch(__dirname, function (event, file) { |
| 10 | console.log(event); | 13 | console.log(event); |
| 11 | console.log(file); | 14 | console.log(file); |
| 12 | }); | 15 | }); |
| 13 | 16 | ||
| 14 | const wsServer = new webSocketServer({ | 17 | const wsServer = new webSocketServer({ |
| 15 | port: config.port | 18 | port: config.port |
| 16 | }); | 19 | }); |
| 17 | 20 | ||
| 18 | wsServer.on('connection', function connection(ws) { | 21 | wsServer.on('connection', function connection(ws) { |
| 19 | console.log('open socket server') | 22 | |
| 23 | console.log('open socket server'); | ||
| 20 | 24 | ||
| 21 | ws.on('message', function incoming(message) { | 25 | ws.on('message', function incoming(message) { |
| 22 | console.log('recibe ho: %s', message); | ||
| 23 | if (message == 'isAlive?') { | ||
| 24 | 26 | ||
| 25 | setTimeout(function () { | 27 | message = message.toString('utf8'); |
| 26 | ws.send('YES IS ALIVE'); | 28 | console.log(message); |
| 27 | }, 10000); | 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 | }); |
| 31 | 39 |
planex/comprobantesReferencia.js
| 1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante) { |
| 2 | 2 | ||
| 3 | comprobante = '020;RE;0009;00093491;;' | 3 | comprobante = '020;RE;0009;00093491;;' |
| 4 | 4 | ||
| 5 | var comprobanteArr = comprobante.split(';'); | 5 | var comprobanteArr = comprobante.split(';'); |
| 6 | 6 | ||
| 7 | return { | 7 | return { |
| 8 | tipoDocumentoReferencia: comprobanteArr[1], | 8 | tipoDocumentoReferencia: comprobanteArr[1], |
| 9 | puntoVentaReferencia: comprobanteArr[2], | 9 | puntoVentaReferencia: parseInt(comprobanteArr[2]), |
| 10 | numeroDocumentoReferencia: comprobanteArr[3], | 10 | numeroDocumentoReferencia: parseInt(comprobanteArr[3]), |
| 11 | fechaComprobanteReferencia: comprobanteArr[4], | 11 | fechaComprobanteReferencia: comprobanteArr[4], |
| 12 | cuitEmisorComprobanteAsociado: comprobanteArr[5] | 12 | cuitEmisorComprobanteAsociado: comprobanteArr[5] |
| 13 | } | 13 | } |
| 14 | } | 14 | } |
| 15 | 15 |
planex/descuentosGlobalesFactura.js
| 1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
| 2 | 2 | ||
| 3 | var comrpobanteArr = comprobante.split(';'); | 3 | var comrpobanteArr = comprobante.split(';'); |
| 4 | 4 | ||
| 5 | return { | 5 | return { |
| 6 | descripcionDescuentoOIntereses: comrpobanteArr[1], | 6 | descripcionDescuentoOIntereses: comrpobanteArr[1], |
| 7 | porcentaje: comrpobanteArr[2], | 7 | porcentaje: returnFloatByDecimals(comrpobanteArr[2], 2), |
| 8 | importeBase: comrpobanteArr[3], | 8 | importeBase: returnFloatByDecimals(comrpobanteArr[3], 2), |
| 9 | importe: comrpobanteArr[4], | 9 | importe: returnFloatByDecimals(comrpobanteArr[4]), |
| 10 | ClasificadorDescuentoOInteres: comrpobanteArr[5] | 10 | ClasificadorDescuentoOInteres: comrpobanteArr[5] |
| 11 | }; | 11 | }; |
| 12 | } | 12 | } |
| 13 | 13 |
planex/detalleDescuentosItemFactura.js
| 1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
| 2 | 2 | ||
| 3 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
| 4 | 4 | ||
| 5 | return { | 5 | return { |
| 6 | numeroLinea: comprobanteArr[1], | 6 | numeroLinea: comprobanteArr[1], |
| 7 | descripcionDescuento: comprobanteArr[2], | 7 | descripcionDescuento: comprobanteArr[2], |
| 8 | porcentajeDescuento: comprobanteArr[3], | 8 | porcentajeDescuento: returnFloatByDecimals(comprobanteArr[3], 2), |
| 9 | importeBase: comprobanteArr[4], | 9 | importeBase: returnFloatByDecimals(comprobanteArr[4], 2), |
| 10 | importeDescuento: comprobanteArr[5], | 10 | importeDescuento: returnFloatByDecimals(comprobanteArr[5], 2) |
| 11 | }; | 11 | }; |
| 12 | } | 12 | } |
| 13 | 13 |
planex/detalleImpuestosItemFactura.js
| 1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
| 2 | 2 | ||
| 3 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
| 4 | 4 | ||
| 5 | return { | 5 | return { |
| 6 | numeroLinea: comprobanteArr[1], | 6 | numeroLinea: comprobanteArr[1], |
| 7 | descripcionImpuesto: comprobanteArr[2], | 7 | descripcionImpuesto: comprobanteArr[2], |
| 8 | procentajeImpuesto: comprobanteArr[3], | 8 | procentajeImpuesto: returnFloatByDecimals(comprobanteArr[3], 2), |
| 9 | importeBase: comprobanteArr[4], | 9 | importeBase: returnFloatByDecimals(comprobanteArr[4], 2), |
| 10 | importeImpuesto: comprobanteArr[5] | 10 | importeImpuesto: returnFloatByDecimals(comprobanteArr[5, 2]) |
| 11 | }; | 11 | }; |
| 12 | } | 12 | } |
| 13 | 13 |
planex/detalleOtrosImpuestosComprobante.js
| 1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
| 2 | 2 | ||
| 3 | var comprobanteArr = comprobante.split(';'); | 3 | var comprobanteArr = comprobante.split(';'); |
| 4 | 4 | ||
| 5 | return { | 5 | return { |
| 6 | descripcionImpuesto: comprobanteArr[1], | 6 | descripcionImpuesto: comprobanteArr[1], |
| 7 | porcentaje: comprobanteArr[2], | 7 | porcentaje: returnFloatByDecimals(comprobanteArr[2], 2), |
| 8 | importeBase: comprobanteArr[3], | 8 | importeBase: returnFloatByDecimals(comprobanteArr[3], 2), |
| 9 | importeImpuesto: comprobanteArr[4], | 9 | importeImpuesto: returnFloatByDecimals(comprobanteArr[4], 2), |
| 10 | codigoArancelImpuestoOCuota: comprobanteArr[5], | 10 | codigoArancelImpuestoOCuota: comprobanteArr[5], |
| 11 | jurisdiccion: comprobanteArr[6] | 11 | jurisdiccion: comprobanteArr[6] |
| 12 | }; | 12 | }; |
| 13 | } | 13 | } |
| 14 | 14 |
planex/detallePercepcionesIIBB.js
| 1 | module.exports = function(comprobante) { | 1 | module.exports = function(comprobante, returnFloatByDecimals) { |
| 2 | 2 | ||
| 3 | comprobante = '070;01;000000000000411;00;000000000000000;PERC .I.B. BS. A.S;00250;000000000016436;00000;000000000000000 '; | 3 | comprobante = '070;01;000000000000411;00;000000000000000;PERC .I.B. BS. A.S;00250;000000000016436;00000;000000000000000 '; |
| 4 | 4 | ||
| 5 | var comprobanteArr = comprobante.split(';'); | 5 | var comprobanteArr = comprobante.split(';'); |
| 6 | 6 | ||
| 7 | return { | 7 | return { |
| 8 | codigoJurisdiccionIB: comprobanteArr[1], | 8 | codigoJurisdiccionIB: comprobanteArr[1], |
| 9 | importePercepcionesIB: comprobanteArr[2], | 9 | importePercepcionesIB: returnFloatByDecimals(comprobanteArr[2], 2), |
| 10 | jurisdiccionImpuestosMunicipales: comprobanteArr[3], | 10 | jurisdiccionImpuestosMunicipales: comprobanteArr[3], |
| 11 | importePercepcionesImpuestosMunicipales: comprobanteArr[4], | 11 | importePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[4], 2), |
| 12 | descripcionPercepcionIB: comprobanteArr[5], | 12 | descripcionPercepcionIB: comprobanteArr[5], |
| 13 | porcentajePercepcionesIB: comprobanteArr[6], | 13 | porcentajePercepcionesIB: returnFloatByDecimals(comprobanteArr[6], 2), |
| 14 | importeBasePercepcionesIB: comprobanteArr[7], | 14 | importeBasePercepcionesIB: returnFloatByDecimals(comprobanteArr[7], 2), |
| 15 | porcentajePercepcionesImpuestosMunicipales: comprobanteArr[8], | 15 | porcentajePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[8], 2), |
| 16 | importeBasePercepcionesImpuestosMunicipales: comprobanteArr[9] | 16 | importeBasePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[9], 2) |
| 17 | }; | 17 | }; |
| 18 | } | 18 | } |
| 19 | 19 |
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 | var comprobanteArr = comprobante.split(';'); | 5 | var comprobanteArr = comprobante.split(';'); |
| 6 | 6 | ||
| 7 | return { | 7 | return { |
| 8 | alicuotaIVAAplicable: comprobanteArr[1], | 8 | alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[1], 2), |
| 9 | importeLiquidado: comprobanteArr[2], | 9 | importeLiquidado: returnFloatByDecimals(comprobanteArr[2], 2), |
| 10 | importeNetoGravado: comprobanteArr[3], | 10 | importeNetoGravado: returnFloatByDecimals(comprobanteArr[3], 2), |
| 11 | importeLiquidadoRNI: comprobanteArr[4] | 11 | importeLiquidadoRNI: returnFloatByDecimals(comprobanteArr[4], 2) |
| 12 | }; | 12 | }; |
| 13 | } | 13 | } |
| 14 | 14 |
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'; | 3 | var comprobante = '010;01;00081929;00081929;0002;20120927;20120927;;;14 DIAS;;;32012114736927;20140716;;;;;;;;;;;20120927'; |
| 4 | 4 | ||
| 5 | var comprobanteArr = comprobante.split(';'); | 5 | var comprobanteArr = comprobante.split(';'); |
| 6 | 6 | ||
| 7 | return { | 7 | return { |
| 8 | tipo: comprobanteArr[1], | 8 | tipo: comprobanteArr[1], |
| 9 | numero: comprobanteArr[2], | 9 | numero: parseInt(comprobanteArr[2]), |
| 10 | numeroRegistrado: comprobanteArr[3], | 10 | numeroRegistrado: parseInt(comprobanteArr[3]), |
| 11 | puntoVenta: comprobanteArr[4], | 11 | puntoVenta: parseInt(comprobanteArr[4]), |
| 12 | fechaComprobante: comprobanteArr[5], | 12 | fechaComprobante: comprobanteArr[5], |
| 13 | fechaVencimiento: comprobanteArr[6], | 13 | fechaVencimiento: comprobanteArr[6], |
| 14 | fechaSegundoVencimiento: comprobanteArr[7], | 14 | fechaSegundoVencimiento: comprobanteArr[7], |
| 15 | fechaProximoVencimiento: comprobanteArr[8], | 15 | fechaProximoVencimiento: comprobanteArr[8], |
| 16 | condicionPago: comprobanteArr[9], | 16 | condicionPago: comprobanteArr[9], |
| 17 | caeOCaea: comprobanteArr[10], | 17 | caeOCaea: comprobanteArr[10], |
| 18 | fechaVencimientoCaeOCaea: comprobanteArr[11], | 18 | fechaVencimientoCaeOCaea: comprobanteArr[11], |
| 19 | cai: comprobanteArr[12], | 19 | cai: comprobanteArr[12], |
| 20 | fechaVencimientoCai: comprobanteArr[14], | 20 | fechaVencimientoCai: comprobanteArr[14], |
| 21 | motivo: comprobanteArr[15], | 21 | motivo: comprobanteArr[15], |
| 22 | fechaServicioDesde: comprobanteArr[16], | 22 | fechaServicioDesde: comprobanteArr[16], |
| 23 | fechaServicioHasta: comprobanteArr[17], | 23 | fechaServicioHasta: comprobanteArr[17], |
| 24 | codigoControladorFiscal: comprobanteArr[17], | 24 | codigoControladorFiscal: comprobanteArr[17], |
| 25 | codigoOperacion: comprobanteArr[18], | 25 | codigoOperacion: comprobanteArr[18], |
| 26 | cantidadHojas: comprobanteArr[19], | 26 | cantidadHojas: comprobanteArr[19], |
| 27 | datosCodigoBarraParaCobranza: comprobanteArr[20], | 27 | datosCodigoBarraParaCobranza: comprobanteArr[20], |
| 28 | datosOtroCodigoBarras: comprobanteArr[21], | 28 | datosOtroCodigoBarras: comprobanteArr[21], |
| 29 | datosCodigoParaPagoElectronico: comprobanteArr[22], | 29 | datosCodigoParaPagoElectronico: comprobanteArr[22], |
| 30 | fechaAnulacion: comprobanteArr[23], | 30 | fechaAnulacion: comprobanteArr[23], |
| 31 | fechaEntrega: comprobanteArr[24], | 31 | fechaEntrega: comprobanteArr[24], |
| 32 | numeroVisualizador: comprobanteArr[25] | 32 | numeroVisualizador: comprobanteArr[25] |
| 33 | }; | 33 | }; |
| 34 | } | 34 | } |
| 35 | 35 |
planex/importesTotales.js
| 1 | module.exports = function(comprobante) { | 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;;; ' | 3 | comprobante = '050;000000000000000;000000000000000;000000000000000;000000000140295;000000000000000;000000000115946;000000 000024349;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;000000000000000;;PES;00001000000;1;000000000000000;;;' |
| 4 | 4 | ||
| 5 | var comprobanteArr = comprobante.split(';'); | 5 | var comprobanteArr = comprobante.split(';'); |
| 6 | 6 | ||
| 7 | return { | 7 | return { |
| 8 | saldoAnterior: comprobanteArr[1], | 8 | saldoAnterior: returnFloatByDecimals(comprobanteArr[1], 2), |
| 9 | totalBruto: comprobanteArr[2], | 9 | totalBruto: returnFloatByDecimals(comprobanteArr[2], 2), |
| 10 | totalNeto: comprobanteArr[3], | 10 | totalNeto: returnFloatByDecimals(comprobanteArr[3], 2), |
| 11 | totalOperacion: comprobanteArr[4], | 11 | totalOperacion: returnFloatByDecimals(comprobanteArr[4], 2), |
| 12 | totalConceptosNoNetoGravado: comprobanteArr[5], | 12 | totalConceptosNoNetoGravado: returnFloatByDecimals(comprobanteArr[5], 2), |
| 13 | netoGravado: comprobanteArr[6], | 13 | netoGravado: returnFloatByDecimals(comprobanteArr[6], 2), |
| 14 | liquidado: comprobanteArr[7], | 14 | liquidado: returnFloatByDecimals(comprobanteArr[7], 2), |
| 15 | liquidadoRNI: comprobanteArr[8], | 15 | liquidadoRNI: returnFloatByDecimals(comprobanteArr[8], 2), |
| 16 | importeOperacionesExentas: comprobanteArr[9], | 16 | importeOperacionesExentas: returnFloatByDecimals(comprobanteArr[9], 2), |
| 17 | importeACtaImpuestosNacionales: comprobanteArr[10], | 17 | importeActaImpuestosNacionales: returnFloatByDecimals(comprobanteArr[10], 2), |
| 18 | importeIB: comprobanteArr[11], | 18 | importeIB: returnFloatByDecimals(comprobanteArr[11], 2), |
| 19 | importeImpuestosMunicipales: comprobanteArr[12], | 19 | importeImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[12], 2), |
| 20 | importeImpuestosInternos: comprobanteArr[13], | 20 | importeImpuestosInternos: returnFloatByDecimals(comprobanteArr[13], 2), |
| 21 | transporte: comprobanteArr[14], | 21 | transporte: returnFloatByDecimals(comprobanteArr[14], 2), |
| 22 | monedaFacturacion: comprobanteArr[15], | 22 | monedaFacturacion: comprobanteArr[15], |
| 23 | tipoCambioFacturacion: comprobanteArr[16], | 23 | tipoCambioFacturacion: returnFloatByDecimals(comprobanteArr[16], 2), |
| 24 | cantidadAlicuotasIVA: comprobanteArr[17], | 24 | cantidadAlicuotasIVA: comprobanteArr[17], |
| 25 | totalFacturaSegundoVencimiento: comprobanteArr[18], | 25 | totalFacturaSegundoVencimiento: returnFloatByDecimals(comprobanteArr[18], 2), |
| 26 | observaciones: comprobanteArr[19], | 26 | observaciones: comprobanteArr[19], |
| 27 | observacionesDebitoAutomatico: comprobanteArr[20], | 27 | observacionesDebitoAutomatico: comprobanteArr[20], |
| 28 | fechaTipoCambioFacturacion: comprobanteArr[21], | 28 | fechaTipoCambioFacturacion: comprobanteArr[21], |
| 29 | monedaPago: comprobanteArr[22], | 29 | monedaPago: comprobanteArr[22], |
| 30 | tipoCambioMonedaPago: comprobanteArr[23], | 30 | tipoCambioMonedaPago: returnFloatByDecimals(comprobanteArr[23], 6), |
| 31 | fechaTipoCambioPago: comprobanteArr[24], | 31 | fechaTipoCambioPago: comprobanteArr[24], |
| 32 | importeOtrosTributos: comprobanteArr[25] | 32 | importeOtrosTributos: returnFloatByDecimals(comprobanteArr[25], 2) |
| 33 | }; | 33 | }; |
| 34 | } | 34 | } |
| 35 | 35 |
planex/index.js
| 1 | module.exports = function(comprobante) { | 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 | return { | 15 | return { |
| 4 | identificaxComprobante: require('./identificaxComprobante')(comprobante),// 010 | 16 | identificaxComprobante: require('./identificaxComprobante')(comprobante),// 010 |
| 5 | identificaxMensaje: require('./identificaxMensaje')(comprobante),// 012 | 17 | identificaxMensaje: require('./identificaxMensaje')(comprobante),// 012 |
| 6 | comprobantesReferencia: require('./comprobantesReferencia')(comprobante), // 020 | 18 | comprobantesReferencia: require('./comprobantesReferencia')(comprobante), // 020 |
| 7 | identificaxEmisor: require('./identificaxEmisor')(comprobante), // 030 | 19 | identificaxEmisor: require('./identificaxEmisor')(comprobante), // 030 |
| 8 | informaxRepresentanteEmisor: require('./informaxRepresentanteEmisor')(comprobante), // 035 | 20 | informaxRepresentanteEmisor: require('./informaxRepresentanteEmisor')(comprobante), // 035 |
| 9 | identificaxReceptorFactura: require('./identificaxReceptorFactura')(comprobante), // 040 | 21 | identificaxReceptorFactura: require('./identificaxReceptorFactura')(comprobante), // 040 |
| 10 | identificaxSucursalReceptorFactura: require('./identificaxSucursalReceptorFactura')(comprobante), // 045 | 22 | identificaxSucursalReceptorFactura: require('./identificaxSucursalReceptorFactura')(comprobante), // 045 |
| 11 | importesTotales: require('./importesTotales')(comprobante), // 050 | 23 | importesTotales: require('./importesTotales')(comprobante, returnFloatByDecimals), // 050 |
| 12 | detallesImportesIVA: require('./detallesImportesIVA')(comprobante), // 060 | 24 | detallesImportesIVA: require('./detallesImportesIVA')(comprobante, returnFloatByDecimals), // 060 |
| 13 | detallePercepcionesIIBB: require('./detallePercepcionesIIBB')(comprobante), // 070 | 25 | detallePercepcionesIIBB: require('./detallePercepcionesIIBB')(comprobante, returnFloatByDecimals), // 070 |
| 14 | descuentosGlobalesFactura: require('./descuentosGlobalesFactura')(comprobante), // 080 | 26 | descuentosGlobalesFactura: require('./descuentosGlobalesFactura')(comprobante, returnFloatByDecimals), // 080 |
| 15 | detalleOtrosImpuestosComprobante: require('./detalleOtrosImpuestosComprobante')(comprobante), // 090 | 27 | detalleOtrosImpuestosComprobante: require('./detalleOtrosImpuestosComprobante')(comprobante, returnFloatByDecimals), // 090 |
| 16 | itemsFactura: require('./itemsFactura')(comprobante), // 100 | 28 | itemsFactura: require('./itemsFactura')(comprobante, returnFloatByDecimals), // 100 |
| 17 | detalleDescuentosItemFactura: require('./detalleDescuentosItemFactura')(comprobante), // 110 | 29 | detalleDescuentosItemFactura: require('./detalleDescuentosItemFactura')(comprobante, returnFloatByDecimals), // 110 |
| 18 | detalleImpuestosItemFactura: require('./detalleImpuestosItemFactura')(comprobante), // 120 | 30 | detalleImpuestosItemFactura: require('./detalleImpuestosItemFactura')(comprobante, returnFloatByDecimals), // 120 |
| 19 | }; | 31 | }; |
| 20 | } | 32 | } |
| 21 | 33 |
planex/itemsFactura.js
| 1 | module.exports = function(comprobante) { | 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;; '; | 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 | ||
| 5 | var comprobanteArr = comprobante.split(';'); | 5 | var comprobanteArr = comprobante.split(';'); |
| 6 | 6 | ||
| 7 | return { | 7 | return { |
| 8 | numeroLinea: comprobanteArr[1], | 8 | numeroLinea: comprobanteArr[1], |
| 9 | codigoProductoServicio: comprobanteArr[2], | 9 | codigoProductoServicio: comprobanteArr[2], |
| 10 | codigoProductoServicioComprador: comprobanteArr[3], | 10 | codigoProductoServicioComprador: comprobanteArr[3], |
| 11 | descripcion: comprobanteArr[4], | 11 | descripcion: comprobanteArr[4], |
| 12 | cantidad: comprobanteArr[5], | 12 | cantidad: returnFloatByDecimals(comprobanteArr[5], 5), |
| 13 | unidadMedida: comprobanteArr[6], | 13 | unidadMedida: comprobanteArr[6], |
| 14 | precioUnitario: comprobanteArr[7], | 14 | precioUnitario: returnFloatByDecimals(comprobanteArr[7], 3), |
| 15 | alicuotaIVAAplicable: comprobanteArr[8], | 15 | alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[8], 2), |
| 16 | importeIVA: comprobanteArr[9], | 16 | importeIVA: returnFloatByDecimals(comprobanteArr[9], 2), |
| 17 | subtotalPorRegistro: comprobanteArr[10], | 17 | subtotalPorRegistro: returnFloatByDecimals(comprobanteArr[10], 2), |
| 18 | importeBonificacion: comprobanteArr[11], | 18 | importeBonificacion: returnFloatByDecimals(comprobanteArr[11], 2), |
| 19 | importeAjuste: comprobanteArr[12], | 19 | importeAjuste: returnFloatByDecimals(comprobanteArr[12], 2), |
| 20 | indicacionExento: comprobanteArr[13], | 20 | indicacionExento: comprobanteArr[13], |
| 21 | indicacionAnulacion: comprobanteArr[14], | 21 | indicacionAnulacion: comprobanteArr[14], |
| 22 | numeroUnidadesPorUnidadEmbalaje: comprobanteArr[15], | 22 | numeroUnidadesPorUnidadEmbalaje: returnFloatByDecimals(comprobanteArr[15], 2), |
| 23 | cantidadEmbalajes: comprobanteArr[16], | 23 | cantidadEmbalajes: returnFloatByDecimals(comprobanteArr[16], 2), |
| 24 | codigoTipoEmbalaje: comprobanteArr[17], | 24 | codigoTipoEmbalaje: comprobanteArr[17], |
| 25 | unidadReferenciaDescripcion: comprobanteArr[18], | 25 | unidadReferenciaDescripcion: comprobanteArr[18], |
| 26 | precioUnitarioSinImpuestos: comprobanteArr[19], | 26 | precioUnitarioSinImpuestos: returnFloatByDecimals(comprobanteArr[19], 3), |
| 27 | codigoUPCEAN13: comprobanteArr[20], | 27 | codigoUPCEAN13: comprobanteArr[20], |
| 28 | codigoDUN14: comprobanteArr[21], | 28 | codigoDUN14: comprobanteArr[21], |
| 29 | codigoMercosur: comprobanteArr[22], | 29 | codigoMercosur: comprobanteArr[22], |
| 30 | unidadesMatrix: comprobanteArr[23], | 30 | unidadesMatrix: comprobanteArr[23], |
| 31 | codigoMatrix: comprobanteArr[24], | 31 | codigoMatrix: comprobanteArr[24], |
| 32 | precioLista: comprobanteArr[25] | 32 | precioLista: returnFloatByDecimals(comprobanteArr[25], 2) |
| 33 | }; | 33 | }; |
| 34 | } | 34 | } |
| 35 | 35 |