Commit f629c8d02be1b7363f48e289cafd37ed6f115b21

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'master'

Master(efernandez)

See merge request !5
debo/cabeceraDebo.js
... ... @@ -12,24 +12,24 @@ module.exports = function(comprobante, afipTablas, entities) {
12 12 CUI: entities.proveedores.CUIT, // [char](13) NOT NULL, CUIT DEL PROVEEDOR CAMPO CUIT DEL PROVEEDOR O EL QUE VIENE EN LA COMUNICACION
13 13 FPA: entities.proveedores.FPA, // [tinyint] NOT NULL, FORMA DE PAGO CAMPO FPA TABLA PROVEED
14 14 TCA: 1, // [money] NOT NULL, FIJO 1
15   - DTO: comprobante.descuentosGlobalesFactura.importe, // [money] NOT NULL, DESCUENTO TOTAL SUMATORIA DE LOS DTO POR ITEM
  15 + DTO: comprobante.descuentosGlobalesFactura.importe || 0, // [money] NOT NULL, DESCUENTO TOTAL SUMATORIA DE LOS DTO POR ITEM
16 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
  17 + NET: comprobante.importesTotales.netoGravado, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA <> 0
  18 + NEE: comprobante.importesTotales.importeOperacionesExentas, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA = 0
19 19 IRI: comprobante.detallesImportesIVA.importeLiquidado, // [money] NOT NULL, SUMATORIA DE LOS IVA POR ITEM
20 20 IRS: 0, // [money] NOT NULL, FIJO 0
21 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 INGRESOS BRUTOS
24   - PIV: null, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA
  22 + RGA: 0, // [money] NOT NULL, IMPORTE RETENCION DE GANANCIAS
  23 + RIB: 0, // [money] NOT NULL, IMPORTE RETENCION DE INGRESOS BRUTOS
  24 + PIV: comprobante.detalleOtrosImpuestosComprobante.percepcionIVA ? comprobante.detalleOtrosImpuestosComprobante.percepcionIVA.importeImpuesto : 0, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA, SECTOR 90 C05
25 25 CNG: comprobante.importesTotales.totalConceptosNoNetoGravado, // [money] NULL, IMPORTE DE CONCEPTOS NO GRAVADOS
26   - TOT: null, // [money] NOT NULL, IMPORTE TOTAL DE LA FACTURA
  26 + TOT: comprobante.importesTotales.totalOperacion, // [money] NOT NULL, IMPORTE TOTAL DE LA FACTURA
27 27 ZON: entities.empresa.ZON, // [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)
  28 + FEV: comprobante.identificaxComprobante.fechaVencimiento, // [datetime] NULL, FECHA DE VENCIMIENTO
  29 + OCP: comprobante.comprobantesReferencia.PC.numeroDocumentoReferencia, // [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 30 OPE: 0, // [int] NOT NULL, FIJO 0
31 31 REC: 0, // [bigint] NOT NULL, FIJO 0
32   - FEP: null, // [datetime] NULL, ITEM FECHA FACTURA
  32 + FEP: comprobante.identificaxComprobante.fechaComprobante, // [datetime] NULL, ITEM FECHA FACTURA
33 33 NPE: 0, // [bigint] NOT NULL, NOTA DE PEDIDO FIJO 0
34 34 CPA: 0, // [int] NOT NULL, FIJO 0
35 35 ENV: 0, // [int] NOT NULL, FIJO 0
... ... @@ -52,23 +52,23 @@ module.exports = function(comprobante, afipTablas, entities) {
52 52 CCA8: 0, // [int] NOT NULL, FIJO 0
53 53 CCA0: 0, // [int] NOT NULL, FIJO 0
54 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
  55 + RIV: 0, // [money] NOT NULL, IMPORTE RETENCION DE IVA
56 56 FECCAI: comprobante.identificaxComprobante.fechaVencimientoCai, // [smalldatetime] NOT NULL, FECHA DEL CAI
57 57 CAI: comprobante.identificaxComprobante.cai, // [char](16) NOT NULL, NUMERO DE CAI
58 58 CHO: 0, // [int] NOT NULL, FIJO 0
59 59 CTR: '', // [char](1) NOT NULL, VACIO NO NULO
60   - PER: null, // [money] NOT NULL, IMPORTE DE PERCEPCIONES
  60 + PER: comprobante.importesTotales.importeIB, // [money] NOT NULL, IMPORTE DE PERCEPCIONES
61 61 CCA9: 0, // [int] NOT NULL, FIJO 0
62 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
  63 + CNG2: 0, // [money] NOT NULL, IMPORTE DE CONCEPTOS NO GRAVADOS 2
64 64 E_HD: '', // [varchar](8) NOT NULL, VACIO NO NULO
65 65 C_HD: '', // [varchar](1) NOT NULL, VACIO NO NULO
66   - RSS: null, // [money] NOT NULL, IMPORTE RETENCIONS SUSS
  66 + RSS: 0, // [money] NOT NULL, IMPORTE RETENCIONS SUSS
67 67 E_HD2: '', // [varchar](12) NOT NULL, VACIO NO NULO
68 68 C_HD2: '', // [varchar](1) NOT NULL, VACIO NO NULO
69   - DTO2: null, // [money] NOT NULL, IMPORTE DE OTROS DESCUENTOS
  69 + DTO2: 0, // [money] NOT NULL, IMPORTE DE OTROS DESCUENTOS
70 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
  71 + COD_TRANS: comprobante.identificaxComprobante.numeroRegistrado || 0, // [bigint] NOT NULL, VER DE PONER EL NUMERO DE REFERENCIA QUE PUEDA UNIRNOS A LO QUE VIENE DESDE PLANEX
72 72 RETMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE DE RETENCIONES MUNICIPALES
73 73 TIPO_OPERACION: 0, // [int] NOT NULL, FIJO 0
74 74 IRD: 0, // [money] NOT NULL, FIJO 0
... ... @@ -76,15 +76,15 @@ module.exports = function(comprobante, afipTablas, entities) {
76 76 AUX2: 0, // [money] NOT NULL, FIJO 0
77 77 AUX3: 0, // [money] NOT NULL, FIJO 0
78 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
  79 + ARBA: 0, // [money] NOT NULL, IMPORTE RETENCION ARBA
  80 + DGR: 0, // [money] NOT NULL, IMPORTE RETENCION DGR
  81 + DTO_PIE: 0, // [money] NOT NULL, IMPORTE DE DESCUENTO AL PIE, NO POR ITEM
82 82 OPERACIONES_3711: 1, // [int] NOT NULL, FIJO 1 (PORQUE SON BIENES)
83   - ORC: null, // [bigint] NOT NULL, NUMERO DE ORDEN DE COMPRA
  83 + ORC: comprobante.comprobantesReferencia.PC.numeroDocumentoReferencia, // [bigint] NOT NULL, NUMERO DE ORDEN DE COMPRA
84 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
  85 + CABA: 0, // [money] NOT NULL, IMPORTE RETENCION CABA
  86 + ARBA_PER: 0, // [money] NOT NULL, IMPORTE PERCEPCION ARBA
  87 + CABA_PER: 0, // [money] NOT NULL, IMPORTE PERCEPCION CABA
88 88 PERMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE PERCEPCIONES MUNICIPALES
89 89 IMI2: 0, // [money] NOT NULL, FIJO 0
90 90 };
1   -module.exports = function(comprobante, afipTablas, entities) {
  1 +module.exports = function(comprobante, afipTablas, entities, item) {
2 2  
3 3 return {
4 4 TIP: afipTablas(comprobante.identificaxComprobante.tipo).letraComprobante, // [char](1) NOT NULL, LETRA DEL COMPROBANTE (A,B,C,M)
5 5 TCO: afipTablas(comprobante.identificaxComprobante.tipo).tipoComprobante, // [char](2) NOT NULL, TIPO DE COMPROBANTE (FT,NC,ND)
6 6 SUC: parseInt(comprobante.identificaxComprobante.puntoVenta), // [int] NOT NULL, PUNTO DE VENTA DE LA FACTURA
7 7 NCO: parseInt(comprobante.identificaxComprobante.numero), // [bigint] NOT NULL, NUMERO DE COMPROBANTE
8   - PRO: entities.proveedor.COD, // [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
  8 + PRO: entities.proveedores.COD, // [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(item.numeroLinea), // [int] NOT NULL, ORDEN DEL ITEM, EMPIEZA EN 1 Y SUMA DE A 1 POR CADA REGISTRO DE MOVIMIENTO
  10 + COD: item.CodSec, // [int] NOT NULL, SECTOR DEBO DEL PRODUCTO
  11 + ART: item.CodArt, // [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: item.CodRub, // [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: item.DET_LAR, // [varchar](60) NOT NULL DESCRIPCION DEL PRODUCTO DEL PUNTO ANTERIOR DET_LAR
  14 + LI0: item.descripcion, // [varchar](60) NOT NULL, DESCRIPCION ENVIADA POR EL PROVEEDOR
  15 + CAN: item.cantidad, // [money] NOT NULL, CANTIDAD DEL ITEM
  16 + PUN: item.precioUnitario, // [decimal](20, 8) NOT NULL PRECIO UNITARIO DEL PRODUCTO ITEM
  17 + IMI: item.impuestoInterno ? item.impuestoInterno.importeImpuesto : 0, // [money] NOT NULL, IMPORTE IMPUESTOS INTERNOS DEL ITEM
  18 + IVA: item.importeIVA, // [money] NOT NULL, IMPORTE IVA DEL ITEM
  19 + PUT: item.precioUnitario, // [money] NOT NULL, IGUAL AL PUN
20 20 LEG: 0, // [int] NOT NULL, FIJO 0
21 21 CMF: 0, // [int] NOT NULL, FIJO 0
22 22 TUR: 0, // [int] NOT NULL, FIJO 0
... ... @@ -27,7 +27,7 @@ module.exports = function(comprobante, afipTablas, entities) {
27 27 CCO: 0, // [bigint] NOT NULL, FIJO 0
28 28 E_HD: '', // [varchar](8) NOT NULL, FIJO '' VACIO NO NULO
29 29 C_HD: '', // [varchar](1) NOT NULL, FIJO '' VACIO NO NULO
30   - DTO: comprobante.detalleDescuentosItemFactura.importeDescuento, // [money] NOT NULL, IMPORTE DESCUENTO DE LA FACTURA
  30 + DTO: 0, // Comprobante.detalleDescuentosItemFactura.importeDescuento; [money] NOT NULL, IMPORTE DESCUENTO DE LA FACTURA
31 31 PTA: 0, // [int] NOT NULL, FIJO 0
32 32 SUBM: 0, // [int] NOT NULL, FIJO 0
33 33 E_HD2: '', // [varchar](12) NOT NULL, FIJO '' VACIO NO NULO
... ... @@ -2,8 +2,15 @@ module.exports = function(comprobante, entities) {
2 2  
3 3 var afipTablas = require('../afip/index');
4 4  
5   - return {
  5 + var objReturn = {
6 6 cabecera: require('./cabeceraDebo')(comprobante, afipTablas, entities),
7   - cuerpo: require('./cuerpoDebo')(comprobante, afipTablas)
8   - };
  7 + cuerpo: []
  8 + }
  9 +
  10 + comprobante.itemsFactura.forEach((item, index) => {
  11 +
  12 + objReturn.cuerpo.push(require('./cuerpoDebo')(comprobante, afipTablas, entities, item));
  13 + });
  14 +
  15 + return objReturn;
9 16 }
1 1 config = require('./config/config.json');
  2 +module.exports = knex = require('knex')(config.db)
2 3  
3 4 require('./watch/index')(config.dir, onGetFile);
4 5  
... ... @@ -10,6 +11,8 @@ function onGetFile(event, fileString) {
10 11  
11 12 var planex = require('./planex/index')(fileString);
12 13  
  14 + console.log(planex);
  15 +
13 16 var entities = {};
14 17  
15 18 var tipoCuit = planex.identificaxEmisor.cuit.slice(0, 2);
... ... @@ -20,15 +23,39 @@ function onGetFile(event, fileString) {
20 23 var promiseProveedores = wsServer.getEntidad('7790968003283', 'PROVEED', {CUIT: cuitToDebo});
21 24 var promiseEmp = wsServer.getEntidad('7790968003283', 'APAREMP');
22 25  
23   - Promise.all([promiseProveedores, promiseEmp]).then(function(data) {
  26 + var promesasArticulo = [];
  27 +
  28 + planex.itemsFactura.forEach(item => {
24 29  
25   - entities.proveedores = data[0];
26   - entities.empresa = data[1];
  30 + var queryString = 'select cb.*, art.CodRub, art.DET_LAR from CODBAR cb ' +
  31 + 'join ARTICULOS art on cb.CodArt = art.CodArt and cb.CodSec = art.CodSec where cb.CodBar = \'' +
  32 + item.codigoUPCEAN13 + '\'';
27 33  
28   - var debo = require('./debo/index')(planex, entities);
  34 + promesasArticulo.push(wsServer.getEntidad('7790968003283', null, {}, queryString));
29 35 });
30 36  
31   - console.log(planex);
  37 + Promise.all(promesasArticulo).then(function(values) {
  38 +
  39 + planex.itemsFactura.forEach((item, index) => {
  40 +
  41 + if (!values[index]) console.error('No se encontrรณ el articulo');
  42 +
  43 + item.CodArt = values[index].CodArt;
  44 + item.CodSec = values[index].CodSec;
  45 + item.CodRub = values[index].CodRub;
  46 + item.DET_LAR = values[index].DET_LAR;
  47 + });
  48 +
  49 + Promise.all([promiseProveedores, promiseEmp]).then(function(data) {
  50 +
  51 + entities.proveedores = data[0];
  52 + entities.empresa = data[1];
  53 +
  54 + var debo = require('./debo/index')(planex, entities);
  55 +
  56 + require('./db/index')(debo);
  57 + });
  58 + });
32 59 }
33 60  
34 61 console.log('listen websocket port ' + config.port);
... ... @@ -5,6 +5,8 @@
5 5 "main": "index.js",
6 6 "dependencies": {
7 7 "express": "^4.16.4",
  8 + "knex": "^0.16.5",
  9 + "mssql": "^5.1.0",
8 10 "ws": "^7.0.0"
9 11 },
10 12 "devDependencies": {},
planex/comprobantesReferencia.js
1   -module.exports = function(comprobante) {
  1 +module.exports = function(comprobante, result) {
2 2  
3 3 var comprobanteArr = comprobante.split(';');
4 4  
5   - return {
  5 + var comprobanteReferencia = {
6 6 tipoDocumentoReferencia: comprobanteArr[1],
7 7 puntoVentaReferencia: parseInt(comprobanteArr[2]),
8 8 numeroDocumentoReferencia: parseInt(comprobanteArr[3]),
9 9 fechaComprobanteReferencia: comprobanteArr[4],
10 10 cuitEmisorComprobanteAsociado: comprobanteArr[5]
11 11 }
  12 +
  13 + result.comprobantesReferencia[comprobanteReferencia.tipoDocumentoReferencia] = comprobanteReferencia;
  14 +
  15 + return;
12 16 }
planex/detalleImpuestosItemFactura.js
1   -module.exports = function(comprobante, returnFloatByDecimals) {
  1 +module.exports = function(comprobante, returnFloatByDecimals, result) {
2 2  
3 3 var comprobanteArr = comprobante.split(';');
4 4  
5   - return {
  5 + var detalleDescuentos = {
6 6 numeroLinea: comprobanteArr[1],
7 7 descripcionImpuesto: comprobanteArr[2],
8 8 procentajeImpuesto: returnFloatByDecimals(comprobanteArr[3], 2),
9 9 importeBase: returnFloatByDecimals(comprobanteArr[4], 2),
10   - importeImpuesto: returnFloatByDecimals(comprobanteArr[5, 2])
  10 + importeImpuesto: returnFloatByDecimals(comprobanteArr[5], 2)
11 11 };
  12 +
  13 + var item = result.itemsFactura.filter(function(item) {
  14 + return detalleDescuentos.numeroLinea == item.numeroLinea;
  15 + })[0];
  16 +
  17 + switch (detalleDescuentos.descripcionImpuesto) {
  18 + case 'C05':
  19 + item.percepcionIVA = detalleDescuentos;
  20 + break;
  21 + case 'C06':
  22 + item.percepcionIIBB = detalleDescuentos;
  23 + break;
  24 + case 'C07':
  25 + item.impuestoInterno = detalleDescuentos;
  26 + break;
  27 + case 'C08':
  28 + item.impuestoAbasto = detalleDescuentos;
  29 + break;
  30 + case 'ITC':
  31 + item.impuestoTransferenciaCombustibles = detalleDescuentos;
  32 + break;
  33 + case 'C10':
  34 + item.percepcionImpuestosMunicipales = detalleDescuentos;
  35 + break;
  36 + default:
  37 + break;
  38 + }
  39 +
  40 + return detalleDescuentos;
12 41 }
planex/detalleOtrosImpuestosComprobante.js
1   -module.exports = function(comprobante, returnFloatByDecimals) {
  1 +module.exports = function(comprobante, returnFloatByDecimals, result) {
2 2  
3 3 var comprobanteArr = comprobante.split(';');
4 4  
5   - return {
  5 + var detalleOtrosImpuestos = {
6 6 descripcionImpuesto: comprobanteArr[1],
7 7 porcentaje: returnFloatByDecimals(comprobanteArr[2], 2),
8 8 importeBase: returnFloatByDecimals(comprobanteArr[3], 2),
... ... @@ -10,4 +10,40 @@ module.exports = function(comprobante, returnFloatByDecimals) {
10 10 codigoArancelImpuestoOCuota: comprobanteArr[5],
11 11 jurisdiccion: comprobanteArr[6]
12 12 };
  13 +
  14 + switch (detalleOtrosImpuestos.codigoArancelImpuestoOCuota) {
  15 + case 'C05':
  16 +
  17 + result.detalleOtrosImpuestosComprobante.percepcionIVA = detalleOtrosImpuestos;
  18 + break;
  19 +
  20 + case 'C07':
  21 +
  22 + result.detalleOtrosImpuestosComprobante.impuestoInterno = detalleOtrosImpuestos;
  23 + break;
  24 +
  25 + case 'C08':
  26 +
  27 + result.detalleOtrosImpuestosComprobante.impuestoAbasto = detalleOtrosImpuestos;
  28 + break;
  29 +
  30 + case 'C09':
  31 +
  32 + result.detalleOtrosImpuestosComprobante.impuestoVideo = detalleOtrosImpuestos;
  33 + break;
  34 +
  35 + case 'ITC':
  36 +
  37 + result.detalleOtrosImpuestosComprobante.impuestoTransferenciaCombustibles = detalleOtrosImpuestos;
  38 + break;
  39 +
  40 + case 'C12':
  41 +
  42 + result.detalleOtrosImpuestosComprobante.percepcionNoCategorizadosORNI = detalleOtrosImpuestos;
  43 + break;
  44 + default:
  45 + break;
  46 + }
  47 +
  48 + return;
13 49 }
... ... @@ -6,7 +6,7 @@ module.exports = function(comprobante) {
6 6 var objReturn = {
7 7 identificaxComprobante: {},
8 8 identificaxMensaje: {},
9   - comprobantesReferencia: [],
  9 + comprobantesReferencia: {},
10 10 identificaxEmisor: {},
11 11 informaxRepresentanteEmisor: {},
12 12 identificaxReceptorFactura: {},
... ... @@ -17,8 +17,8 @@ module.exports = function(comprobante) {
17 17 descuentosGlobalesFactura: {},
18 18 detalleOtrosImpuestosComprobante: {},
19 19 itemsFactura: [],
20   - detalleDescuentosItemFactura: {},
21   - detalleImpuestosItemFactura: {}
  20 + detalleDescuentosItemFactura: [],
  21 + detalleImpuestosItemFactura: []
22 22 };
23 23  
24 24 function returnFloatByDecimals(parameter, cantDecimal) {
... ... @@ -39,7 +39,7 @@ module.exports = function(comprobante) {
39 39 } else if (sector.slice(0, 3) == '012') {
40 40 objReturn.identificaxMensaje = require('./identificaxMensaje')(sector)// 012
41 41 } else if (sector.slice(0, 3) == '020') {
42   - objReturn.comprobantesReferencia.push(require('./comprobantesReferencia')(sector)) // 020
  42 + require('./comprobantesReferencia')(sector, objReturn) // 020
43 43 } else if (sector.slice(0, 3) == '030') {
44 44 objReturn.identificaxEmisor = require('./identificaxEmisor')(sector) // 030
45 45 } else if (sector.slice(0, 3) == '035') {
... ... @@ -57,13 +57,13 @@ module.exports = function(comprobante) {
57 57 } else if (sector.slice(0, 3) == '080') {
58 58 objReturn.descuentosGlobalesFactura = require('./descuentosGlobalesFactura')(sector, returnFloatByDecimals) // 080
59 59 } else if (sector.slice(0, 3) == '090') {
60   - objReturn.detalleOtrosImpuestosComprobante = require('./detalleOtrosImpuestosComprobante')(sector, returnFloatByDecimals) // 090
  60 + require('./detalleOtrosImpuestosComprobante')(sector, returnFloatByDecimals, objReturn) // 090
61 61 } else if (sector.slice(0, 3) == '100') {
62 62 objReturn.itemsFactura.push(require('./itemsFactura')(sector, returnFloatByDecimals)); // 100
63 63 } else if (sector.slice(0, 3) == '110') {
64   - objReturn.detalleDescuentosItemFactura = require('./detalleDescuentosItemFactura')(sector, returnFloatByDecimals); // 110
  64 + objReturn.detalleDescuentosItemFactura.push(require('./detalleDescuentosItemFactura')(sector, returnFloatByDecimals)); // 110
65 65 } else if (sector.slice(0, 3) == '120') {
66   - objReturn.detalleImpuestosItemFactura = require('./detalleImpuestosItemFactura')(sector, returnFloatByDecimals); // 120
  66 + objReturn.detalleImpuestosItemFactura.push(require('./detalleImpuestosItemFactura')(sector, returnFloatByDecimals, objReturn)); // 120
67 67 }
68 68 });
69 69  
... ... @@ -6,12 +6,12 @@ module.exports = function(dir, callback) {
6 6  
7 7 var extencion = file.split('.')[1];
8 8  
9   - if (extencion == 'plx' && event == 'change') {
  9 + if (extencion == 'txt' && event == 'change') {
10 10  
11 11 fs.readFile(dir + '\\' + file, 'utf8', function(err , fileString) {
12 12  
13 13 callback(event, fileString);
14   - })
  14 + });
15 15 }
16 16  
17 17 });
webSocketServer/index.js
... ... @@ -2,7 +2,6 @@ module.exports = function() {
2 2  
3 3 const webSocketServer = require('ws').Server;
4 4 var clients = [];
5   -var idsSolicitud = [];
6 5  
7 6 const objWs = {};
8 7  
... ... @@ -28,7 +27,7 @@ objWs.wsServer.on(&#39;connection&#39;, function connection(ws) {
28 27 });
29 28 });
30 29  
31   -objWs.getEntidad = function(gln, tableName, where) {
  30 +objWs.getEntidad = function(gln, tableName, where, queryString) {
32 31  
33 32 return new Promise(function(resolve, reject) {
34 33  
... ... @@ -36,16 +35,24 @@ objWs.getEntidad = function(gln, tableName, where) {
36 35 return client.gln == gln
37 36 })[0];
38 37  
  38 + if (!client) {
  39 + reject('No se encuentra el webSocket client');
  40 + }
  41 +
39 42 var idSolicitud = Math.round(Math.random() * 1000);
40 43  
41 44 var enviar = {
42 45 action: 'getEntity',
43   - tableName: tableName,
44   - where: where || {},
45 46 idSolicitud: idSolicitud
46   - }
  47 + };
47 48  
48   - idsSolicitud.push(idSolicitud);
  49 + if (queryString) {
  50 +
  51 + enviar.queryString = queryString;
  52 + } else {
  53 + enviar.tableName = tableName;
  54 + enviar.where = where || {};
  55 + }
49 56  
50 57 client.ws.send(JSON.stringify(enviar));
51 58