Merge Request #4
← To merge requests
efernandez/websocketho:
master
→
master
Commits (3)
Showing
17 changed files
Show diff stats
afip/index.js
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 |
debo/cuerpoDebo.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) | 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 |
debo/index.js
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 |
index.js
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 | }; |
planex/index.js
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 | }; |
watch/index.js
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 |