Commit 859bdcbb0726d408f9f9bcd962dd81cf8113c99b

Authored by Eric Fernandez
1 parent 540b58a031
Exists in master

parse wesocket

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
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
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
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
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