Merge Request #4

Merged
Created by Eric Fernandez

Master(efernandez)

Assignee: Eric Fernandez
Milestone: None

Merged by Eric Fernandez

Commits (3)
1 participants
1 module.exports = function(codigo) { 1 module.exports = function(codigo) {
2 2
3 var tablaAfip = [ 3 var tablaAfip = [
4 { 4 {
5 codigo: 1, 5 codigo: 1,
6 letraComprobante: 'A', 6 letraComprobante: 'A',
7 tipoComprobante: 'FT' 7 tipoComprobante: 'FT'
8 }, 8 },
9 { 9 {
10 codigo: 7, 10 codigo: 7,
11 letraComprobante: 'B', 11 letraComprobante: 'B',
12 tipoComprobante: 'ND' 12 tipoComprobante: 'ND'
13 }, 13 },
14 { 14 {
15 codigo: 8, 15 codigo: 8,
16 letraComprobante: 'B', 16 letraComprobante: 'B',
17 tipoComprobante: 'NC' 17 tipoComprobante: 'NC'
18 }, 18 },
19 { 19 {
20 codigo: 15, 20 codigo: 15,
21 letraComprobante: 'C', 21 letraComprobante: 'C',
22 tipoComprobante: 'RE' 22 tipoComprobante: 'RE'
23 }, 23 },
24 { 24 {
25 codigo: 60, 25 codigo: 60,
26 letraComprobante: 'A', 26 letraComprobante: 'A',
27 tipoComprobante: 'LP' 27 tipoComprobante: 'LP'
28 }, 28 },
29 { 29 {
30 codigo: 61, 30 codigo: 61,
31 letraComprobante: 'B', 31 letraComprobante: 'B',
32 tipoComprobante: 'LP' 32 tipoComprobante: 'LP'
33 } 33 }
34 ] 34 ]
35 35
36 var result = tablaAfip.filter(function(comprobante) { 36 var result = tablaAfip.filter(function(comprobante) {
37 return comprobante.codigo == parseInt(codigo) 37 return comprobante.codigo == parseInt(codigo)
38 })[0]; 38 })[0];
39 39
40 if (!result) {
41 result = {
42 letraComprobante: 'CIB',
43 tipoComprobante: 'CI'
44 }
45 }
46
47 return result;
48
40 if (!result) { 49 }
41 result = { 50
debo/cabeceraDebo.js
1 module.exports = function(comprobante, afipTablas, entities) { 1 module.exports = function(comprobante, afipTablas, entities) {
2 2
3 return { 3 return {
4 TIP: afipTablas(comprobante.identificaxComprobante.tipo).letraComprobante, // [char](1) NOT NULL, LETRA DEL COMPROBANTE (A,B,C,M,E) 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) 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 6 SUC: parseInt(comprobante.identificaxComprobante.puntoVenta), // [int] NOT NULL, PUNTO DE VENTA
7 NCO: parseInt(comprobante.identificaxComprobante.numero), // [bigint] NOT NULL, NUMERO DE COMPROBANTE 7 NCO: parseInt(comprobante.identificaxComprobante.numero), // [bigint] NOT NULL, NUMERO DE COMPROBANTE
8 COD: 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' 8 COD: 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 FEC: comprobante.identificaxComprobante.fechaComprobante, // [smalldatetime] NULL, FECHA DEL COMPROBANTE 9 FEC: comprobante.identificaxComprobante.fechaComprobante, // [smalldatetime] NULL, FECHA DEL COMPROBANTE
10 NOM: entities.proveedores.NOM, // [varchar](40) NOT NULL, NOMBRE DEL PROVEEDOR TABLA PROVEED CAMPO NOM 10 NOM: entities.proveedores.NOM, // [varchar](40) NOT NULL, NOMBRE DEL PROVEEDOR TABLA PROVEED CAMPO NOM
11 TIV: entities.proveedores.IVA, // [tinyint] NOT NULL, TIPO DE IVA CAMPO IVA TABLA PROVEED 11 TIV: entities.proveedores.IVA, // [tinyint] NOT NULL, TIPO DE IVA CAMPO IVA TABLA PROVEED
12 CUI: entities.proveedores.CUIT, // [char](13) NOT NULL, CUIT DEL PROVEEDOR CAMPO CUIT DEL PROVEEDOR O EL QUE VIENE EN LA COMUNICACION 12 CUI: entities.proveedores.CUIT, // [char](13) NOT NULL, CUIT DEL PROVEEDOR CAMPO CUIT DEL PROVEEDOR O EL QUE VIENE EN LA COMUNICACION
13 FPA: entities.proveedores.FPA, // [tinyint] NOT NULL, FORMA DE PAGO CAMPO FPA TABLA PROVEED 13 FPA: entities.proveedores.FPA, // [tinyint] NOT NULL, FORMA DE PAGO CAMPO FPA TABLA PROVEED
14 TCA: 1, // [money] NOT NULL, FIJO 1 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, // [money] NOT NULL, DESCUENTO TOTAL SUMATORIA DE LOS DTO POR ITEM
16 PDT: 0, // [money] NOT NULL, FIJO 0 16 PDT: 0, // [money] NOT NULL, FIJO 0
17 NET: null, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA <> 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 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 19 IRI: comprobante.detallesImportesIVA.importeLiquidado, // [money] NOT NULL, SUMATORIA DE LOS IVA POR ITEM
20 IRS: 0, // [money] NOT NULL, FIJO 0 20 IRS: 0, // [money] NOT NULL, FIJO 0
21 IMI: comprobante.importesTotales.importeImpuestosInternos, // [money] NOT NULL, SUMATORIA DE LOS IMPUESTOS INTERNOS POR ITEM 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 22 RGA: null, // [money] NOT NULL, IMPORTE RETENCION DE GANANCIAS
23 RIB: null, // [money] NOT NULL, IMPORTE RETENCION DE INGRESOS BRUTOS 23 RIB: null, // [money] NOT NULL, IMPORTE RETENCION DE INGRESOS BRUTOS
24 PIV: null, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA 24 PIV: null, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA
25 CNG: comprobante.importesTotales.totalConceptosNoNetoGravado, // [money] NULL, IMPORTE DE CONCEPTOS NO GRAVADOS 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: null, // [money] NOT NULL, IMPORTE TOTAL DE LA FACTURA
27 ZON: entities.empresa.ZON, // [int] NOT NULL, NUMERO DE LA EMPRESA SELECT ZON FROM APAREMP 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 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) 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 30 OPE: 0, // [int] NOT NULL, FIJO 0
31 REC: 0, // [bigint] NOT NULL, FIJO 0 31 REC: 0, // [bigint] NOT NULL, FIJO 0
32 FEP: null, // [datetime] NULL, ITEM FECHA FACTURA 32 FEP: null, // [datetime] NULL, ITEM FECHA FACTURA
33 NPE: 0, // [bigint] NOT NULL, NOTA DE PEDIDO FIJO 0 33 NPE: 0, // [bigint] NOT NULL, NOTA DE PEDIDO FIJO 0
34 CPA: 0, // [int] NOT NULL, FIJO 0 34 CPA: 0, // [int] NOT NULL, FIJO 0
35 ENV: 0, // [int] NOT NULL, FIJO 0 35 ENV: 0, // [int] NOT NULL, FIJO 0
36 REM: 0, // [bigint] NOT NULL, FIJO 0 36 REM: 0, // [bigint] NOT NULL, FIJO 0
37 PRO: ' ', // [char](1) NOT NULL, FIJO ' ' VACIO NO NULO 37 PRO: ' ', // [char](1) NOT NULL, FIJO ' ' VACIO NO NULO
38 ANU: ' ', // [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 39 TUR: 0, // [int] NOT NULL, FIJO 0
40 PLA: 0, // [int] NOT NULL, FIJO 0 40 PLA: 0, // [int] NOT NULL, FIJO 0
41 LUG: 0, // [int] NOT NULL, FIJO 0 41 LUG: 0, // [int] NOT NULL, FIJO 0
42 ATO: 0, // [numeric](18, 0) NOT NULL, FIJO 0 42 ATO: 0, // [numeric](18, 0) NOT NULL, FIJO 0
43 CCO: 0, // [bigint] NOT NULL, FIJO 0 43 CCO: 0, // [bigint] NOT NULL, FIJO 0
44 IMA: 0, // [int] NOT NULL, FIJO 0 44 IMA: 0, // [int] NOT NULL, FIJO 0
45 CCA1: 0, // [int] NOT NULL, FIJO 0 45 CCA1: 0, // [int] NOT NULL, FIJO 0
46 CCA2: 0, // [int] NOT NULL, FIJO 0 46 CCA2: 0, // [int] NOT NULL, FIJO 0
47 CCA3: 0, // [int] NOT NULL, FIJO 0 47 CCA3: 0, // [int] NOT NULL, FIJO 0
48 CCA4: 0, // [int] NOT NULL, FIJO 0 48 CCA4: 0, // [int] NOT NULL, FIJO 0
49 CCA5: 0, // [int] NOT NULL, FIJO 0 49 CCA5: 0, // [int] NOT NULL, FIJO 0
50 CCA6: 0, // [int] NOT NULL, FIJO 0 50 CCA6: 0, // [int] NOT NULL, FIJO 0
51 CCA7: 0, // [int] NOT NULL, FIJO 0 51 CCA7: 0, // [int] NOT NULL, FIJO 0
52 CCA8: 0, // [int] NOT NULL, FIJO 0 52 CCA8: 0, // [int] NOT NULL, FIJO 0
53 CCA0: 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 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: null, // [money] NOT NULL, IMPORTE RETENCION DE IVA
56 FECCAI: comprobante.identificaxComprobante.fechaVencimientoCai, // [smalldatetime] NOT NULL, FECHA DEL CAI 56 FECCAI: comprobante.identificaxComprobante.fechaVencimientoCai, // [smalldatetime] NOT NULL, FECHA DEL CAI
57 CAI: comprobante.identificaxComprobante.cai, // [char](16) NOT NULL, NUMERO DE CAI 57 CAI: comprobante.identificaxComprobante.cai, // [char](16) NOT NULL, NUMERO DE CAI
58 CHO: 0, // [int] NOT NULL, FIJO 0 58 CHO: 0, // [int] NOT NULL, FIJO 0
59 CTR: '', // [char](1) NOT NULL, VACIO NO NULO 59 CTR: '', // [char](1) NOT NULL, VACIO NO NULO
60 PER: null, // [money] NOT NULL, IMPORTE DE PERCEPCIONES 60 PER: null, // [money] NOT NULL, IMPORTE DE PERCEPCIONES
61 CCA9: 0, // [int] NOT NULL, FIJO 0 61 CCA9: 0, // [int] NOT NULL, FIJO 0
62 FECVEN: comprobante.identificaxComprobante.fechaVencimiento, // [smalldatetime] NOT NULL, FECHA DE VENCIMIENTO DE LA FACTURA 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: null, // [money] NOT NULL, IMPORTE DE CONCEPTOS NO GRAVADOS 2
64 E_HD: '', // [varchar](8) NOT NULL, VACIO NO NULO 64 E_HD: '', // [varchar](8) NOT NULL, VACIO NO NULO
65 C_HD: '', // [varchar](1) NOT NULL, VACIO NO NULO 65 C_HD: '', // [varchar](1) NOT NULL, VACIO NO NULO
66 RSS: null, // [money] NOT NULL, IMPORTE RETENCIONS SUSS 66 RSS: null, // [money] NOT NULL, IMPORTE RETENCIONS SUSS
67 E_HD2: '', // [varchar](12) NOT NULL, VACIO NO NULO 67 E_HD2: '', // [varchar](12) NOT NULL, VACIO NO NULO
68 C_HD2: '', // [varchar](1) 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 69 DTO2: null, // [money] NOT NULL, IMPORTE DE OTROS DESCUENTOS
70 ENLP: 0, // [bit] NOT NULL, FIJO 0 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, // [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 72 RETMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE DE RETENCIONES MUNICIPALES
73 TIPO_OPERACION: 0, // [int] NOT NULL, FIJO 0 73 TIPO_OPERACION: 0, // [int] NOT NULL, FIJO 0
74 IRD: 0, // [money] NOT NULL, FIJO 0 74 IRD: 0, // [money] NOT NULL, FIJO 0
75 AUX1: 0, // [money] NOT NULL, FIJO 0 75 AUX1: 0, // [money] NOT NULL, FIJO 0
76 AUX2: 0, // [money] NOT NULL, FIJO 0 76 AUX2: 0, // [money] NOT NULL, FIJO 0
77 AUX3: 0, // [money] NOT NULL, FIJO 0 77 AUX3: 0, // [money] NOT NULL, FIJO 0
78 AUX4: 0, // [money] NOT NULL, FIJO 0 78 AUX4: 0, // [money] NOT NULL, FIJO 0
79 ARBA: null, // [money] NOT NULL, IMPORTE RETENCION ARBA 79 ARBA: null, // [money] NOT NULL, IMPORTE RETENCION ARBA
80 DGR: null, // [money] NOT NULL, IMPORTE RETENCION DGR 80 DGR: null, // [money] NOT NULL, IMPORTE RETENCION DGR
81 DTO_PIE: null, // [money] NOT NULL, IMPORTE DE DESCUENTO AL PIE, NO POR ITEM 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) 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: null, // [bigint] NOT NULL, NUMERO DE ORDEN DE COMPRA
84 NC_ES_NP: 0, // [bit] NOT NULL, FIJO 0 84 NC_ES_NP: 0, // [bit] NOT NULL, FIJO 0
85 CABA: null, // [money] NOT NULL, IMPORTE RETENCION CABA 85 CABA: null, // [money] NOT NULL, IMPORTE RETENCION CABA
86 ARBA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION ARBA 86 ARBA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION ARBA
87 CABA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION CABA 87 CABA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION CABA
88 PERMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE PERCEPCIONES MUNICIPALES 88 PERMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE PERCEPCIONES MUNICIPALES
89 IMI2: 0, // [money] NOT NULL, FIJO 0 89 IMI2: 0, // [money] NOT NULL, FIJO 0
90 }; 90 };
91 } 91 }
92 92
1 module.exports = function(comprobante, afipTablas, entities) { 1 module.exports = function(comprobante, afipTablas, entities) {
2 2
3 return { 3 return {
4 TIP: afipTablas(comprobante.identificaxComprobante.tipo).letraComprobante, // [char](1) NOT NULL, LETRA DEL COMPROBANTE (A,B,C,M) 4 TIP: afipTablas(comprobante.identificaxComprobante.tipo).letraComprobante, // [char](1) NOT NULL, LETRA DEL COMPROBANTE (A,B,C,M)
5 TCO: afipTablas(comprobante.identificaxComprobante.tipo).tipoComprobante, // [char](2) NOT NULL, TIPO DE COMPROBANTE (FT,NC,ND) 5 TCO: afipTablas(comprobante.identificaxComprobante.tipo).tipoComprobante, // [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 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 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' 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 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 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' 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 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 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 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 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 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 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 18 IVA: comprobante.itemsFactura.importeIVA, // [money] NOT NULL, IMPORTE IVA DEL ITEM
19 PUT: comprobante.itemsFactura.precioUnitario, // [money] NOT NULL, IGUAL AL PUN 19 PUT: comprobante.itemsFactura.precioUnitario, // [money] NOT NULL, IGUAL AL PUN
20 LEG: 0, // [int] NOT NULL, FIJO 0 20 LEG: 0, // [int] NOT NULL, FIJO 0
21 CMF: 0, // [int] NOT NULL, FIJO 0 21 CMF: 0, // [int] NOT NULL, FIJO 0
22 TUR: 0, // [int] NOT NULL, FIJO 0 22 TUR: 0, // [int] NOT NULL, FIJO 0
23 PLA: 0, // [int] NOT NULL, FIJO 0 23 PLA: 0, // [int] NOT NULL, FIJO 0
24 LUG: 0, // [int] NOT NULL, FIJO 0 24 LUG: 0, // [int] NOT NULL, FIJO 0
25 ESC: 0, // [bit] NOT NULL, FIJO 0 25 ESC: 0, // [bit] NOT NULL, FIJO 0
26 TAN: 0, // [int] NOT NULL, FIJO 0 26 TAN: 0, // [int] NOT NULL, FIJO 0
27 CCO: 0, // [bigint] NOT NULL, FIJO 0 27 CCO: 0, // [bigint] NOT NULL, FIJO 0
28 E_HD: '', // [varchar](8) NOT NULL, FIJO '' VACIO NO NULO 28 E_HD: '', // [varchar](8) NOT NULL, FIJO '' VACIO NO NULO
29 C_HD: '', // [varchar](1) 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 30 DTO: comprobante.detalleDescuentosItemFactura.importeDescuento, // [money] NOT NULL, IMPORTE DESCUENTO DE LA FACTURA
31 PTA: 0, // [int] NOT NULL, FIJO 0 31 PTA: 0, // [int] NOT NULL, FIJO 0
32 SUBM: 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 33 E_HD2: '', // [varchar](12) NOT NULL, FIJO '' VACIO NO NULO
34 C_HD2: '', // [varchar](1) 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 35 COMISION: 0, // [money] NOT NULL, FIJO 0
36 LIQ_VTA: '', // [varchar](20) NOT NULL, FIJO '' VACIO NO NULO 36 LIQ_VTA: '', // [varchar](20) NOT NULL, FIJO '' VACIO NO NULO
37 COSTO_PMOV: comprobante.itemsFactura.precioUnitario, // [money] NOT NULL, IGUAL AL PUN 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 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. 39 TASIVA: comprobante.itemsFactura.alicuotaIVAAplicable, // [money] NOT NULL, TASA DE IVA DEL ITEM = 21.00 / 10.50 / ETC.
40 }; 40 };
41 } 41 }
42 42
1 module.exports = function(comprobante, entities) { 1 module.exports = function(comprobante, entities) {
2 2
3 var afipTablas = require('../afip/index'); 3 var afipTablas = require('../afip/index');
4 4
5 return { 5 return {
6 cabecera: require('./cabeceraDebo')(comprobante, afipTablas, entities), 6 cabecera: require('./cabeceraDebo')(comprobante, afipTablas, entities),
7 cuerpo: require('./cuerpoDebo')(comprobante, afipTablas) 7 cuerpo: require('./cuerpoDebo')(comprobante, afipTablas)
8 }; 8 };
9 } 9 }
10 10
1 config = require('./config/config.json'); 1 config = require('./config/config.json');
2
3 require('./watch/index')(config.dir, onGetFile);
4 2
5 const wsServer = require('./webSocketServer/index')(); 3 require('./watch/index')(config.dir, onGetFile);
6 4
7 function onGetFile(event, fileString) { 5 const wsServer = require('./webSocketServer/index')();
8 6
9 if (!fileString) return; 7 function onGetFile(event, fileString) {
10
11 var planex = require('./planex/index')(fileString); 8
12 9 if (!fileString) return;
13 var entities = {};
14
15 var tipoCuit = planex.identificaxEmisor.cuit.slice(0, 2);
16 var digitoVerificador = planex.identificaxEmisor.cuit[planex.identificaxEmisor.cuit.length - 1]; 10
17 11 var planex = require('./planex/index')(fileString);
18 var cuitToDebo = tipoCuit + '-' + planex.identificaxEmisor.cuit.slice(2, 10) + '-' + digitoVerificador;
19
20 var promiseProveedores = wsServer.getEntidad('7790968003283', 'PROVEED', {CUIT: cuitToDebo}); 12
21 var promiseEmp = wsServer.getEntidad('7790968003283', 'APAREMP'); 13 var entities = {};
22 14
23 Promise.all([promiseProveedores, promiseEmp]).then(function(data) { 15 var tipoCuit = planex.identificaxEmisor.cuit.slice(0, 2);
16 var digitoVerificador = planex.identificaxEmisor.cuit[planex.identificaxEmisor.cuit.length - 1];
24 17
25 entities.proveedores = data[0]; 18 var cuitToDebo = tipoCuit + '-' + planex.identificaxEmisor.cuit.slice(2, 10) + '-' + digitoVerificador;
26 entities.empresa = data[1]; 19
27 20 var promiseProveedores = wsServer.getEntidad('7790968003283', 'PROVEED', {CUIT: cuitToDebo});
28 var debo = require('./debo/index')(planex, entities); 21 var promiseEmp = wsServer.getEntidad('7790968003283', 'APAREMP');
29 }); 22
30 23 Promise.all([promiseProveedores, promiseEmp]).then(function(data) {
31 console.log(planex); 24
32 } 25 entities.proveedores = data[0];
33 26 entities.empresa = data[1];
34 console.log('listen websocket port ' + config.port); 27
35 console.log('Ejecutar programa como administrador...'); 28 var debo = require('./debo/index')(planex, entities);
planex/comprobantesReferencia.js
1 module.exports = function(comprobante) { 1 module.exports = function(comprobante) {
2
3 var comprobanteArr = comprobante.split(';');
4 2
5 return { 3 var comprobanteArr = comprobante.split(';');
6 tipoDocumentoReferencia: comprobanteArr[1], 4
7 puntoVentaReferencia: parseInt(comprobanteArr[2]), 5 return {
8 numeroDocumentoReferencia: parseInt(comprobanteArr[3]), 6 tipoDocumentoReferencia: comprobanteArr[1],
9 fechaComprobanteReferencia: comprobanteArr[4], 7 puntoVentaReferencia: parseInt(comprobanteArr[2]),
10 cuitEmisorComprobanteAsociado: comprobanteArr[5] 8 numeroDocumentoReferencia: parseInt(comprobanteArr[3]),
11 } 9 fechaComprobanteReferencia: comprobanteArr[4],
12 } 10 cuitEmisorComprobanteAsociado: comprobanteArr[5]
13 11 }
planex/detallePercepcionesIIBB.js
1 module.exports = function(comprobante, returnFloatByDecimals) { 1 module.exports = function(comprobante, returnFloatByDecimals) {
2
3 var comprobanteArr = comprobante.split(';');
4 2
5 return { 3 var comprobanteArr = comprobante.split(';');
6 codigoJurisdiccionIB: comprobanteArr[1], 4
7 importePercepcionesIB: returnFloatByDecimals(comprobanteArr[2], 2), 5 return {
8 jurisdiccionImpuestosMunicipales: comprobanteArr[3], 6 codigoJurisdiccionIB: comprobanteArr[1],
9 importePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[4], 2), 7 importePercepcionesIB: returnFloatByDecimals(comprobanteArr[2], 2),
10 descripcionPercepcionIB: comprobanteArr[5], 8 jurisdiccionImpuestosMunicipales: comprobanteArr[3],
11 porcentajePercepcionesIB: returnFloatByDecimals(comprobanteArr[6], 2), 9 importePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[4], 2),
12 importeBasePercepcionesIB: returnFloatByDecimals(comprobanteArr[7], 2), 10 descripcionPercepcionIB: comprobanteArr[5],
13 porcentajePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[8], 2), 11 porcentajePercepcionesIB: returnFloatByDecimals(comprobanteArr[6], 2),
14 importeBasePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[9], 2) 12 importeBasePercepcionesIB: returnFloatByDecimals(comprobanteArr[7], 2),
15 }; 13 porcentajePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[8], 2),
16 } 14 importeBasePercepcionesImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[9], 2)
17 15 };
planex/detallesImportesIVA.js
1 module.exports = function(comprobante, returnFloatByDecimals) { 1 module.exports = function(comprobante, returnFloatByDecimals) {
2 2
3 var comprobanteArr = comprobante.split(';');
4
5 return { 3 var comprobanteArr = comprobante.split(';');
6 alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[1], 2), 4
7 importeLiquidado: returnFloatByDecimals(comprobanteArr[2], 2), 5 return {
8 importeNetoGravado: returnFloatByDecimals(comprobanteArr[3], 2), 6 alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[1], 2),
9 importeLiquidadoRNI: returnFloatByDecimals(comprobanteArr[4], 2) 7 importeLiquidado: returnFloatByDecimals(comprobanteArr[2], 2),
10 }; 8 importeNetoGravado: returnFloatByDecimals(comprobanteArr[3], 2),
11 } 9 importeLiquidadoRNI: returnFloatByDecimals(comprobanteArr[4], 2)
12 10 };
planex/identificaxComprobante.js
1 module.exports = function(comprobante) { 1 module.exports = function(comprobante) {
2 2
3 var comprobanteArr = comprobante.split(';');
4
5 return { 3 var comprobanteArr = comprobante.split(';');
6 tipo: comprobanteArr[1], 4
7 numero: parseInt(comprobanteArr[2]), 5 return {
8 numeroRegistrado: parseInt(comprobanteArr[3]), 6 tipo: comprobanteArr[1],
9 puntoVenta: parseInt(comprobanteArr[4]), 7 numero: parseInt(comprobanteArr[2]),
10 fechaComprobante: comprobanteArr[5], 8 numeroRegistrado: parseInt(comprobanteArr[3]),
11 fechaVencimiento: comprobanteArr[6], 9 puntoVenta: parseInt(comprobanteArr[4]),
12 fechaSegundoVencimiento: comprobanteArr[7], 10 fechaComprobante: comprobanteArr[5],
13 fechaProximoVencimiento: comprobanteArr[8], 11 fechaVencimiento: comprobanteArr[6],
14 condicionPago: comprobanteArr[9], 12 fechaSegundoVencimiento: comprobanteArr[7],
15 caeOCaea: comprobanteArr[10], 13 fechaProximoVencimiento: comprobanteArr[8],
16 fechaVencimientoCaeOCaea: comprobanteArr[11], 14 condicionPago: comprobanteArr[9],
17 cai: comprobanteArr[12], 15 caeOCaea: comprobanteArr[10],
18 fechaVencimientoCai: comprobanteArr[14], 16 fechaVencimientoCaeOCaea: comprobanteArr[11],
19 motivo: comprobanteArr[15], 17 cai: comprobanteArr[12],
20 fechaServicioDesde: comprobanteArr[16], 18 fechaVencimientoCai: comprobanteArr[14],
21 fechaServicioHasta: comprobanteArr[17], 19 motivo: comprobanteArr[15],
22 codigoControladorFiscal: comprobanteArr[17], 20 fechaServicioDesde: comprobanteArr[16],
23 codigoOperacion: comprobanteArr[18], 21 fechaServicioHasta: comprobanteArr[17],
24 cantidadHojas: comprobanteArr[19], 22 codigoControladorFiscal: comprobanteArr[17],
25 datosCodigoBarraParaCobranza: comprobanteArr[20], 23 codigoOperacion: comprobanteArr[18],
26 datosOtroCodigoBarras: comprobanteArr[21], 24 cantidadHojas: comprobanteArr[19],
27 datosCodigoParaPagoElectronico: comprobanteArr[22], 25 datosCodigoBarraParaCobranza: comprobanteArr[20],
28 fechaAnulacion: comprobanteArr[23], 26 datosOtroCodigoBarras: comprobanteArr[21],
29 fechaEntrega: comprobanteArr[24], 27 datosCodigoParaPagoElectronico: comprobanteArr[22],
30 numeroVisualizador: comprobanteArr[25] 28 fechaAnulacion: comprobanteArr[23],
31 }; 29 fechaEntrega: comprobanteArr[24],
32 } 30 numeroVisualizador: comprobanteArr[25]
33 31 };
planex/identificaxEmisor.js
1 module.exports = function(comprobante) { 1 module.exports = function(comprobante) {
2 2
3 comprobanteArr = comprobante.split(';');
4
5 return { 3 comprobanteArr = comprobante.split(';');
6 razonSocial: comprobanteArr[1], 4
7 glnEmisor: comprobanteArr[2], 5 return {
8 ivaEmisor: comprobanteArr[3], 6 razonSocial: comprobanteArr[1],
9 numeroIngresosBrutos: comprobanteArr[4], 7 glnEmisor: comprobanteArr[2],
10 inicioActividades: comprobanteArr[5], 8 ivaEmisor: comprobanteArr[3],
11 contacto: comprobanteArr[6], 9 numeroIngresosBrutos: comprobanteArr[4],
12 direccion: comprobanteArr[7], 10 inicioActividades: comprobanteArr[5],
13 numero: comprobanteArr[8], 11 contacto: comprobanteArr[6],
14 piso: comprobanteArr[9], 12 direccion: comprobanteArr[7],
15 departamento: comprobanteArr[10], 13 numero: comprobanteArr[8],
16 sector: comprobanteArr[11], 14 piso: comprobanteArr[9],
17 torre: comprobanteArr[12], 15 departamento: comprobanteArr[10],
18 manzana: comprobanteArr[13], 16 sector: comprobanteArr[11],
19 localidad: comprobante[14], 17 torre: comprobanteArr[12],
20 provincia: comprobanteArr[15], 18 manzana: comprobanteArr[13],
21 codigoPostal: comprobanteArr[16], 19 localidad: comprobante[14],
22 email: comprobanteArr[17], 20 provincia: comprobanteArr[15],
23 telefono: comprobanteArr[18], 21 codigoPostal: comprobanteArr[16],
24 cuit: comprobanteArr[19], 22 email: comprobanteArr[17],
25 codigoAgenciaResponsableListaCodigos: comprobanteArr[20], 23 telefono: comprobanteArr[18],
26 numeroEstablecimientoEmisor: comprobanteArr[21], 24 cuit: comprobanteArr[19],
27 numeroAgentePercepcionProvincialDelEmisor: comprobanteArr[22], 25 codigoAgenciaResponsableListaCodigos: comprobanteArr[20],
28 numeroAgentePercepcionMunicipalDelEmisor: comprobanteArr[23], 26 numeroEstablecimientoEmisor: comprobanteArr[21],
29 numeroFax: comprobanteArr[24], 27 numeroAgentePercepcionProvincialDelEmisor: comprobanteArr[22],
30 codigoVendedor: comprobanteArr[25] 28 numeroAgentePercepcionMunicipalDelEmisor: comprobanteArr[23],
31 }; 29 numeroFax: comprobanteArr[24],
32 } 30 codigoVendedor: comprobanteArr[25]
33 31 };
planex/identificaxReceptorFactura.js
1 module.exports = function(comprobante) { 1 module.exports = function(comprobante) {
2
3 var comprobanteArr = comprobante.split(';');
4 2
5 return { 3 var comprobanteArr = comprobante.split(';');
6 razonSocial: comprobanteArr[1], 4
7 glnReceptor: comprobanteArr[2], 5 return {
8 codigoInternoReceptorParaEmisor: comprobanteArr[3], 6 razonSocial: comprobanteArr[1],
9 ivaReceptor: comprobanteArr[4], 7 glnReceptor: comprobanteArr[2],
10 codigoJurisdiccionIBReceptor: comprobanteArr[5], 8 codigoInternoReceptorParaEmisor: comprobanteArr[3],
11 numeroIngresosBrutos: comprobanteArr[6], 9 ivaReceptor: comprobanteArr[4],
12 contacto: comprobanteArr[7], 10 codigoJurisdiccionIBReceptor: comprobanteArr[5],
13 direccionCalle: comprobanteArr[8], 11 numeroIngresosBrutos: comprobanteArr[6],
14 direccionNumero: comprobanteArr[9], 12 contacto: comprobanteArr[7],
15 piso: comprobanteArr[10], 13 direccionCalle: comprobanteArr[8],
16 departamento: comprobanteArr[11], 14 direccionNumero: comprobanteArr[9],
17 sector: comprobanteArr[12], 15 piso: comprobanteArr[10],
18 torre: comprobanteArr[13], 16 departamento: comprobanteArr[11],
19 manzana: comprobanteArr[14], 17 sector: comprobanteArr[12],
20 localidad: comprobanteArr[15], 18 torre: comprobanteArr[13],
21 provincia: comprobanteArr[16], 19 manzana: comprobanteArr[14],
22 codigoPostal: comprobanteArr[17], 20 localidad: comprobanteArr[15],
23 email: comprobanteArr[18], 21 provincia: comprobanteArr[16],
24 telefono: comprobanteArr[19], 22 codigoPostal: comprobanteArr[17],
25 tipoDocumentoReceptor: comprobanteArr[20], 23 email: comprobanteArr[18],
26 numeroDocumentoReceptor: comprobanteArr[21], 24 telefono: comprobanteArr[19],
27 codigoAgenciaResponsableListaCodigos: comprobanteArr[22], 25 tipoDocumentoReceptor: comprobanteArr[20],
28 codigoDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[23], 26 numeroDocumentoReceptor: comprobanteArr[21],
29 nombreDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[24], 27 codigoAgenciaResponsableListaCodigos: comprobanteArr[22],
30 numeroFax: comprobanteArr[25], 28 codigoDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[23],
31 municipio: comprobanteArr[26] 29 nombreDptoOPersonaAQuienVaDirigidoElComp: comprobanteArr[24],
32 }; 30 numeroFax: comprobanteArr[25],
33 } 31 municipio: comprobanteArr[26]
34 32 };
planex/identificaxSucursalReceptorFactura.js
1 module.exports = function(comprobante) { 1 module.exports = function(comprobante) {
2 2
3 var comprobanteArr = comprobante.split(';');
4
5 return { 3 var comprobanteArr = comprobante.split(';');
6 razonSocial: comprobanteArr[1], 4
7 glnSucursal: comprobanteArr[2], 5 return {
8 codigoInternoSucursalReceptorParaEmisor: comprobanteArr[3], 6 razonSocial: comprobanteArr[1],
9 ivaSucursal: comprobanteArr[4], 7 glnSucursal: comprobanteArr[2],
10 codigoJurisdiccionIB: comprobanteArr[5], 8 codigoInternoSucursalReceptorParaEmisor: comprobanteArr[3],
11 numeroIB: comprobanteArr[6], 9 ivaSucursal: comprobanteArr[4],
12 contacto: comprobanteArr[7], 10 codigoJurisdiccionIB: comprobanteArr[5],
13 direccion: comprobanteArr[8], 11 numeroIB: comprobanteArr[6],
14 numero: comprobanteArr[9], 12 contacto: comprobanteArr[7],
15 piso: comprobanteArr[10], 13 direccion: comprobanteArr[8],
16 departamento: comprobanteArr[11], 14 numero: comprobanteArr[9],
17 sector: comprobanteArr[12], 15 piso: comprobanteArr[10],
18 torre: comprobanteArr[13], 16 departamento: comprobanteArr[11],
19 manzana: comprobanteArr[14], 17 sector: comprobanteArr[12],
20 localidad: comprobanteArr[15], 18 torre: comprobanteArr[13],
21 provincia: comprobanteArr[16], 19 manzana: comprobanteArr[14],
22 codigoPostal: comprobanteArr[17], 20 localidad: comprobanteArr[15],
23 email: comprobanteArr[18], 21 provincia: comprobanteArr[16],
24 telefono: comprobanteArr[19], 22 codigoPostal: comprobanteArr[17],
25 tipoDocumento: comprobanteArr[20], 23 email: comprobanteArr[18],
26 numeroDocumento: comprobanteArr[21], 24 telefono: comprobanteArr[19],
27 codigoAgenciaResponsableListaCodigos: comprobanteArr[22], 25 tipoDocumento: comprobanteArr[20],
28 codigoDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[23], 26 numeroDocumento: comprobanteArr[21],
29 nombreDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[24], 27 codigoAgenciaResponsableListaCodigos: comprobanteArr[22],
30 numeroFax: comprobanteArr[25], 28 codigoDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[23],
31 municipio: comprobanteArr[26], 29 nombreDptoOPersonaAQuienVaDirigidoElMsj: comprobanteArr[24],
32 numeroSucursalReceptorParaEmisor: comprobanteArr[27], 30 numeroFax: comprobanteArr[25],
33 } 31 municipio: comprobanteArr[26],
34 } 32 numeroSucursalReceptorParaEmisor: comprobanteArr[27],
35 33 }
planex/importesTotales.js
1 module.exports = function(comprobante, returnFloatByDecimals) { 1 module.exports = function(comprobante, returnFloatByDecimals) {
2 2
3 var comprobanteArr = comprobante.split(';');
4
5 return { 3 var comprobanteArr = comprobante.split(';');
6 saldoAnterior: returnFloatByDecimals(comprobanteArr[1], 2), 4
7 totalBruto: returnFloatByDecimals(comprobanteArr[2], 2), 5 return {
8 totalNeto: returnFloatByDecimals(comprobanteArr[3], 2), 6 saldoAnterior: returnFloatByDecimals(comprobanteArr[1], 2),
9 totalOperacion: returnFloatByDecimals(comprobanteArr[4], 2), 7 totalBruto: returnFloatByDecimals(comprobanteArr[2], 2),
10 totalConceptosNoNetoGravado: returnFloatByDecimals(comprobanteArr[5], 2), 8 totalNeto: returnFloatByDecimals(comprobanteArr[3], 2),
11 netoGravado: returnFloatByDecimals(comprobanteArr[6], 2), 9 totalOperacion: returnFloatByDecimals(comprobanteArr[4], 2),
12 liquidado: returnFloatByDecimals(comprobanteArr[7], 2), 10 totalConceptosNoNetoGravado: returnFloatByDecimals(comprobanteArr[5], 2),
13 liquidadoRNI: returnFloatByDecimals(comprobanteArr[8], 2), 11 netoGravado: returnFloatByDecimals(comprobanteArr[6], 2),
14 importeOperacionesExentas: returnFloatByDecimals(comprobanteArr[9], 2), 12 liquidado: returnFloatByDecimals(comprobanteArr[7], 2),
15 importeActaImpuestosNacionales: returnFloatByDecimals(comprobanteArr[10], 2), 13 liquidadoRNI: returnFloatByDecimals(comprobanteArr[8], 2),
16 importeIB: returnFloatByDecimals(comprobanteArr[11], 2), 14 importeOperacionesExentas: returnFloatByDecimals(comprobanteArr[9], 2),
17 importeImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[12], 2), 15 importeActaImpuestosNacionales: returnFloatByDecimals(comprobanteArr[10], 2),
18 importeImpuestosInternos: returnFloatByDecimals(comprobanteArr[13], 2), 16 importeIB: returnFloatByDecimals(comprobanteArr[11], 2),
19 transporte: returnFloatByDecimals(comprobanteArr[14], 2), 17 importeImpuestosMunicipales: returnFloatByDecimals(comprobanteArr[12], 2),
20 monedaFacturacion: comprobanteArr[15], 18 importeImpuestosInternos: returnFloatByDecimals(comprobanteArr[13], 2),
21 tipoCambioFacturacion: returnFloatByDecimals(comprobanteArr[16], 2), 19 transporte: returnFloatByDecimals(comprobanteArr[14], 2),
22 cantidadAlicuotasIVA: comprobanteArr[17], 20 monedaFacturacion: comprobanteArr[15],
23 totalFacturaSegundoVencimiento: returnFloatByDecimals(comprobanteArr[18], 2), 21 tipoCambioFacturacion: returnFloatByDecimals(comprobanteArr[16], 2),
24 observaciones: comprobanteArr[19], 22 cantidadAlicuotasIVA: comprobanteArr[17],
25 observacionesDebitoAutomatico: comprobanteArr[20], 23 totalFacturaSegundoVencimiento: returnFloatByDecimals(comprobanteArr[18], 2),
26 fechaTipoCambioFacturacion: comprobanteArr[21], 24 observaciones: comprobanteArr[19],
27 monedaPago: comprobanteArr[22], 25 observacionesDebitoAutomatico: comprobanteArr[20],
28 tipoCambioMonedaPago: returnFloatByDecimals(comprobanteArr[23], 6), 26 fechaTipoCambioFacturacion: comprobanteArr[21],
29 fechaTipoCambioPago: comprobanteArr[24], 27 monedaPago: comprobanteArr[22],
30 importeOtrosTributos: returnFloatByDecimals(comprobanteArr[25], 2) 28 tipoCambioMonedaPago: returnFloatByDecimals(comprobanteArr[23], 6),
31 }; 29 fechaTipoCambioPago: comprobanteArr[24],
32 } 30 importeOtrosTributos: returnFloatByDecimals(comprobanteArr[25], 2)
33 31 };
1 module.exports = function(comprobante) { 1 module.exports = function(comprobante) {
2 2
3 // split por salto de línea
4 comprobante = comprobante.split(/\r?\n/);
5
6 var objReturn = {
7 identificaxComprobante: {},
8 identificaxMensaje: {},
9 comprobantesReferencia: [],
10 identificaxEmisor: {},
11 informaxRepresentanteEmisor: {},
12 identificaxReceptorFactura: {},
13 identificaxSucursalReceptorFactura: {},
14 importesTotales: {},
15 detallesImportesIVA: {},
16 detallePercepcionesIIBB: {},
17 descuentosGlobalesFactura: {},
18 detalleOtrosImpuestosComprobante: {},
19 itemsFactura: [],
20 detalleDescuentosItemFactura: {},
21 detalleImpuestosItemFactura: {}
22 };
3 // split por salto de línea 23
4 comprobante = comprobante.split(/\r?\n/); 24 function returnFloatByDecimals(parameter, cantDecimal) {
5 25
6 var objReturn = { 26 if (!parameter) return;
7 identificaxComprobante: {}, 27
8 identificaxMensaje: {}, 28 var beforeSemiColon = parseFloat(parameter.slice(0, parameter.length - cantDecimal));
9 comprobantesReferencia: [], 29
10 identificaxEmisor: {}, 30 var afterSemicolon = parameter.slice(parameter.length - cantDecimal, parameter.length);
11 informaxRepresentanteEmisor: {}, 31
12 identificaxReceptorFactura: {}, 32 return parseFloat(beforeSemiColon + '.' + afterSemicolon);
13 identificaxSucursalReceptorFactura: {}, 33 }
14 importesTotales: {}, 34
15 detallesImportesIVA: {}, 35 comprobante.forEach(sector => {
16 detallePercepcionesIIBB: {}, 36
17 descuentosGlobalesFactura: {}, 37 if (sector.slice(0, 3) == '010') {
18 detalleOtrosImpuestosComprobante: {}, 38 objReturn.identificaxComprobante = require('./identificaxComprobante')(sector)// 010
19 itemsFactura: [], 39 } else if (sector.slice(0, 3) == '012') {
20 detalleDescuentosItemFactura: {}, 40 objReturn.identificaxMensaje = require('./identificaxMensaje')(sector)// 012
21 detalleImpuestosItemFactura: {} 41 } else if (sector.slice(0, 3) == '020') {
22 }; 42 objReturn.comprobantesReferencia.push(require('./comprobantesReferencia')(sector)) // 020
23 43 } else if (sector.slice(0, 3) == '030') {
24 function returnFloatByDecimals(parameter, cantDecimal) { 44 objReturn.identificaxEmisor = require('./identificaxEmisor')(sector) // 030
25 45 } else if (sector.slice(0, 3) == '035') {
26 if (!parameter) return; 46 objReturn.informaxRepresentanteEmisor = require('./informaxRepresentanteEmisor')(sector) // 035
27 47 } else if (sector.slice(0, 3) == '040') {
28 var beforeSemiColon = parseFloat(parameter.slice(0, parameter.length - cantDecimal)); 48 objReturn.identificaxReceptorFactura = require('./identificaxReceptorFactura')(sector) // 040
29 49 } else if (sector.slice(0, 3) == '045') {
30 var afterSemicolon = parameter.slice(parameter.length - cantDecimal, parameter.length); 50 objReturn.identificaxSucursalReceptorFactura = require('./identificaxSucursalReceptorFactura')(sector) // 045
31 51 } else if (sector.slice(0, 3) == '050') {
52 objReturn.importesTotales = require('./importesTotales')(sector, returnFloatByDecimals) // 050
53 } else if (sector.slice(0, 3) == '060') {
54 objReturn.detallesImportesIVA = require('./detallesImportesIVA')(sector, returnFloatByDecimals) // 060
55 } else if (sector.slice(0, 3) == '070') {
56 objReturn.detallePercepcionesIIBB = require('./detallePercepcionesIIBB')(sector, returnFloatByDecimals) // 070
57 } else if (sector.slice(0, 3) == '080') {
58 objReturn.descuentosGlobalesFactura = require('./descuentosGlobalesFactura')(sector, returnFloatByDecimals) // 080
59 } else if (sector.slice(0, 3) == '090') {
60 objReturn.detalleOtrosImpuestosComprobante = require('./detalleOtrosImpuestosComprobante')(sector, returnFloatByDecimals) // 090
61 } else if (sector.slice(0, 3) == '100') {
62 objReturn.itemsFactura.push(require('./itemsFactura')(sector, returnFloatByDecimals)); // 100
63 } else if (sector.slice(0, 3) == '110') {
64 objReturn.detalleDescuentosItemFactura = require('./detalleDescuentosItemFactura')(sector, returnFloatByDecimals); // 110
65 } else if (sector.slice(0, 3) == '120') {
66 objReturn.detalleImpuestosItemFactura = require('./detalleImpuestosItemFactura')(sector, returnFloatByDecimals); // 120
67 }
68 });
69
70 return objReturn;
32 return parseFloat(beforeSemiColon + '.' + afterSemicolon); 71 }
33 } 72
planex/itemsFactura.js
1 module.exports = function(comprobante, returnFloatByDecimals) { 1 module.exports = function(comprobante, returnFloatByDecimals) {
2 2
3 var comprobanteArr = comprobante.split(';');
4
5 return { 3 var comprobanteArr = comprobante.split(';');
6 numeroLinea: comprobanteArr[1], 4
7 codigoProductoServicio: comprobanteArr[2], 5 return {
8 codigoProductoServicioComprador: comprobanteArr[3], 6 numeroLinea: comprobanteArr[1],
9 descripcion: comprobanteArr[4], 7 codigoProductoServicio: comprobanteArr[2],
10 cantidad: returnFloatByDecimals(comprobanteArr[5], 5), 8 codigoProductoServicioComprador: comprobanteArr[3],
11 unidadMedida: comprobanteArr[6], 9 descripcion: comprobanteArr[4],
12 precioUnitario: returnFloatByDecimals(comprobanteArr[7], 3), 10 cantidad: returnFloatByDecimals(comprobanteArr[5], 5),
13 alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[8], 2), 11 unidadMedida: comprobanteArr[6],
14 importeIVA: returnFloatByDecimals(comprobanteArr[9], 2), 12 precioUnitario: returnFloatByDecimals(comprobanteArr[7], 3),
15 subtotalPorRegistro: returnFloatByDecimals(comprobanteArr[10], 2), 13 alicuotaIVAAplicable: returnFloatByDecimals(comprobanteArr[8], 2),
16 importeBonificacion: returnFloatByDecimals(comprobanteArr[11], 2), 14 importeIVA: returnFloatByDecimals(comprobanteArr[9], 2),
17 importeAjuste: returnFloatByDecimals(comprobanteArr[12], 2), 15 subtotalPorRegistro: returnFloatByDecimals(comprobanteArr[10], 2),
18 indicacionExento: comprobanteArr[13], 16 importeBonificacion: returnFloatByDecimals(comprobanteArr[11], 2),
19 indicacionAnulacion: comprobanteArr[14], 17 importeAjuste: returnFloatByDecimals(comprobanteArr[12], 2),
20 numeroUnidadesPorUnidadEmbalaje: returnFloatByDecimals(comprobanteArr[15], 2), 18 indicacionExento: comprobanteArr[13],
21 cantidadEmbalajes: returnFloatByDecimals(comprobanteArr[16], 2), 19 indicacionAnulacion: comprobanteArr[14],
22 codigoTipoEmbalaje: comprobanteArr[17], 20 numeroUnidadesPorUnidadEmbalaje: returnFloatByDecimals(comprobanteArr[15], 2),
23 unidadReferenciaDescripcion: comprobanteArr[18], 21 cantidadEmbalajes: returnFloatByDecimals(comprobanteArr[16], 2),
24 precioUnitarioSinImpuestos: returnFloatByDecimals(comprobanteArr[19], 3), 22 codigoTipoEmbalaje: comprobanteArr[17],
25 codigoUPCEAN13: comprobanteArr[20], 23 unidadReferenciaDescripcion: comprobanteArr[18],
26 codigoDUN14: comprobanteArr[21], 24 precioUnitarioSinImpuestos: returnFloatByDecimals(comprobanteArr[19], 3),
27 codigoMercosur: comprobanteArr[22], 25 codigoUPCEAN13: comprobanteArr[20],
28 unidadesMatrix: comprobanteArr[23], 26 codigoDUN14: comprobanteArr[21],
29 codigoMatrix: comprobanteArr[24], 27 codigoMercosur: comprobanteArr[22],
30 precioLista: returnFloatByDecimals(comprobanteArr[25], 2) 28 unidadesMatrix: comprobanteArr[23],
31 }; 29 codigoMatrix: comprobanteArr[24],
32 } 30 precioLista: returnFloatByDecimals(comprobanteArr[25], 2)
33 31 };
File was created 1 module.exports = function(dir, callback) {
2
3 const fs = require('fs');
4
5 fs.watch(dir, function(event, file) {
6
7 var extencion = file.split('.')[1];
8
9 if (extencion == 'plx' && event == 'change') {
10
11 fs.readFile(dir + '\\' + file, 'utf8', function(err , fileString) {
12
13 callback(event, fileString);
14 })
15 }
16
17 });
18
19 };
1 module.exports = function(dir, callback) { 20
webSocketServer/index.js
File was created 1 module.exports = function() {
2
3 const webSocketServer = require('ws').Server;
4 var clients = [];
5 var idsSolicitud = [];
6
7 const objWs = {};
8
9 objWs.wsServer = new webSocketServer({
10 port: config.port
11 });
12
13 objWs.wsServer.on('connection', function connection(ws) {
14
15 console.log('open socket server');
16
17 ws.on('message', function incoming(message) {
18
19 message = JSON.parse(message.toString('utf8'));
20
21 switch (message.action) {
22 case 'gln':
23 clients.push({ws: ws, gln: message.gln});
24 break;
25 default:
26 // console.log(message.action);
27 }
28 });
29 });
30
31 objWs.getEntidad = function(gln, tableName, where) {
32
33 return new Promise(function(resolve, reject) {
34
35 var client = clients.filter(function(client) {
36 return client.gln == gln
37 })[0];
38
39 var idSolicitud = Math.round(Math.random() * 1000);
40
41 var enviar = {
42 action: 'getEntity',
43 tableName: tableName,
44 where: where || {},
45 idSolicitud: idSolicitud
46 }
47
48 idsSolicitud.push(idSolicitud);
49
50 client.ws.send(JSON.stringify(enviar));
51
52 client.ws.on('message', function(message) {
53
54 message = JSON.parse(message);
55
56 if (idSolicitud == message.idSolicitud) {
57
58 resolve(message.data);
59 }
60
61 });
62 });
63 }
64
65 return objWs;
66 }
1 module.exports = function() { 67