Merge Request #6
← To merge requests
efernandez/websocketbo:
master
→
master
Commits (2)
Showing
2 changed files
Show diff stats
data/index.js
1 | module.exports = function(config) { | 1 | module.exports = function(config) { |
2 | 2 | ||
3 | return { | ||
4 | getEntity: function (message) { | ||
5 | 3 | return { | |
6 | return new Promise(function(resolve, reject) { | 4 | getEntity: function (message) { |
7 | 5 | ||
8 | var promise; | 6 | return new Promise(function(resolve, reject) { |
9 | 7 | ||
10 | if (message.queryString) { | 8 | var promise; |
11 | 9 | ||
12 | promise = knex.schema.raw(message.queryString); | 10 | if (message.queryString) { |
13 | } else { | 11 | |
14 | 12 | promise = knex.schema.raw(message.queryString); | |
15 | promise = knex(message.tableName).where(message.where).select('*'); | 13 | } else { |
16 | } | 14 | |
17 | 15 | promise = knex(message.tableName).where(message.where).select('*'); | |
18 | promise.then(function (data) { | 16 | } |
19 | 17 | ||
20 | message.data = data[0]; | 18 | promise.then(function (data) { |
21 | resolve(message); | 19 | |
22 | }); | 20 | message.data = data[0]; |
23 | }); | 21 | resolve(message); |
24 | }, | 22 | }); |
25 | 23 | }); | |
24 | }, | ||
25 | |||
26 | guardarComprobante: function (req) { | ||
27 | |||
28 | return new Promise((resolve, reject) => { | ||
29 | |||
30 | delete req.body.cabecera.idTransaccion; | ||
31 | delete req.body.cabecera.GLN; | ||
32 | delete req.body.cabecera.C_HD2; | ||
33 | delete req.body.cabecera.E_HD2; | ||
34 | |||
35 | //smalldatetime | ||
36 | req.body.cabecera.FEC = new Date(req.body.cabecera.FEC).toISOString().slice(0, 19).replace('T', ' '); | ||
37 | req.body.cabecera.FECCAI = new Date(req.body.cabecera.FECCAI).toISOString().slice(0, 19).replace('T', ' '); | ||
38 | req.body.cabecera.FECVEN = new Date(req.body.cabecera.FECVEN).toISOString().slice(0, 19).replace('T', ' '); | ||
39 | //datetime | ||
40 | req.body.cabecera.FEV = moment(req.body.cabecera.FEV).format('YYYYMMDD'); | ||
41 | req.body.cabecera.FEP = moment(req.body.cabecera.FEP).format('YYYYMMDD'); | ||
42 | |||
43 | var promesas = [ | ||
44 | knex('PMAEFACT').insert(req.body.cabecera), | ||
45 | knex('PCOBYPAG').insert({ | ||
46 | COD: req.body.cabecera.COD, | ||
47 | FEP: req.body.cabecera.FEC, | ||
48 | TIP: req.body.cabecera.TIP, | ||
49 | TCO: req.body.cabecera.TCO, | ||
50 | SUC: req.body.cabecera.SUC, | ||
51 | NCO: req.body.cabecera.NCO, | ||
52 | IPA: req.body.cabecera.TOT, | ||
53 | SAL: 0, | ||
54 | TCA: 1, | ||
55 | ZONA: req.body.cabecera.ZON, | ||
56 | FPA: req.body.cabecera.FPA, | ||
57 | REC: 0, | ||
58 | FER: '19000101 00:00', | ||
59 | PRO: '', | ||
60 | FEV: req.body.cabecera.FEV, | ||
61 | ANU: '', | ||
62 | PLA: 0, | ||
63 | LUG: 0, | ||
64 | RES: 0, | ||
65 | CCU: 0, | ||
66 | UCU: 0, | ||
67 | HOS: '', | ||
68 | E_HD: '', | ||
69 | C_HD: '' | ||
70 | }), | ||
71 | ]; | ||
72 | |||
73 | req.body.cuerpo.forEach(cuerpo => { | ||
74 | |||
75 | if (cuerpo.estado != 'rechazado' && !(cuerpo.COD == 0 && cuerpo.ART == 0)) { | ||
76 | |||
77 | promesas.push(knex('AMOVSTOC').insert({ | ||
78 | SEC: cuerpo.COD, | ||
79 | ART: cuerpo.ART, | ||
80 | FEC: req.body.cabecera.FEC, | ||
81 | CYV: 'C', | ||
82 | TIP: req.body.cabecera.TIP, | ||
83 | TCO: req.body.cabecera.TCO, | ||
84 | PVE: req.body.cabecera.SUC, | ||
85 | NCO: req.body.cabecera.NCO, | ||
86 | ORD: cuerpo.ORD, | ||
87 | CAN: cuerpo.cantidadRecibida, | ||
88 | PUN: cuerpo.PUN, | ||
89 | COD: req.body.cabecera.COD, | ||
90 | DTO: cuerpo.DTO, | ||
91 | IMI: cuerpo.IMI, | ||
92 | PLA: 0, | ||
93 | LUG: 0, | ||
94 | ANU: '', | ||
95 | TIM: 'Co', | ||
96 | OPE: -888, // <= TODO: Cuando se haga el login poner codigo operario | ||
97 | IMI2: cuerpo.IMI2, | ||
98 | E_HD: '', | ||
99 | C_HD: '', | ||
100 | JUS: 'PLANEX', | ||
101 | NLC: 0, | ||
102 | IMI3: cuerpo.IMI3, | ||
103 | JJN: '', | ||
104 | JDJ: '', | ||
105 | ID_MOTIVO_NANB: 0 | ||
106 | })); | ||
107 | }; | ||
108 | |||
109 | cuerpo.estado == 'rechazado' ? cuerpo.cantidadRecibida = 0 : false; | ||
110 | |||
111 | delete cuerpo.GLN; | ||
112 | delete cuerpo.C_HD2; | ||
113 | delete cuerpo.E_HD2; | ||
114 | delete cuerpo.codigoBarras; | ||
115 | delete cuerpo.estado; | ||
116 | delete cuerpo.recibido; | ||
117 | delete cuerpo.input; | ||
118 | delete cuerpo.tempRecibido; | ||
119 | |||
120 | cuerpo.LI0 = cuerpo.LI0.slice(0, 29); | ||
121 | cuerpo.TIO = cuerpo.TIO.slice(0, 29); | ||
122 | |||
123 | promesas.push(knex('PMOVFACT').insert(cuerpo)); | ||
124 | |||
125 | }); | ||
126 | |||
127 | Promise.all(promesas) | ||
128 | .then(function() { | ||
129 | |||
130 | Promise.all([ | ||
131 | knex('PMAEFACT_TEMP').where({ | ||
132 | TIP: req.body.cabecera.TIP, | ||
133 | TCO: req.body.cabecera.TCO, | ||
134 | SUC: req.body.cabecera.SUC, | ||
135 | NCO: req.body.cabecera.NCO, | ||
136 | COD: req.body.cabecera.COD | ||
137 | }) | ||
138 | .del(), | ||
139 | knex('PMOVFACT_TEMP').where({ | ||
140 | TIP: req.body.cabecera.TIP, | ||
141 | TCO: req.body.cabecera.TCO, | ||
142 | SUC: req.body.cabecera.SUC, | ||
143 | NCO: req.body.cabecera.NCO | ||
144 | }) | ||
145 | .del() | ||
146 | ]).then(function() { | ||
147 | |||
148 | console.log('comprobantes guardados con éxito'); | ||
149 | resolve(); | ||
150 | }) | ||
151 | |||
152 | }) | ||
153 | .catch(function(e) { | ||
154 | console.log(e); | ||
155 | reject('Ocurrió un error'); | ||
156 | }); | ||
157 | }); | ||
26 | guardarComprobante: function (req) { | 158 | } |
27 | 159 | } | |
28 | return new Promise((resolve, reject) => { | 160 | } |
index.js
1 | const WebSocketClient = require('ws'); | 1 | const WebSocketClient = require('ws'); |
2 | const config = require('./config/config.json'); | 2 | const config = require('./config/config.json'); |
3 | const data = require('./data/index')(config.bo); | 3 | const data = require('./data/index')(config.bo); |
4 | module.exports = knex = requre('knex')(config.bo); | ||
4 | module.exports = knex = requre('knex')(config.bo); | 5 | |
5 | 6 | const client = new WebSocketClient(config.urlHO); | |
6 | const client = new WebSocketClient(config.urlHO); | 7 | |
7 | 8 | client.on('open', function open() { | |
8 | client.on('open', function open() { | 9 | console.log('conection to socket ho is open'); |
9 | console.log('conection to socket ho is open'); | 10 | |
10 | 11 | client.send(JSON.stringify({ gln: config.gln, action: 'gln'})); | |
11 | client.send(JSON.stringify({ gln: config.gln, action: 'gln'})); | 12 | |
12 | 13 | client.on('message', function incoming(message) { | |
13 | client.on('message', function incoming(message) { | 14 | |
14 | 15 | message = JSON.parse(message.toString('utf8')); | |
15 | message = JSON.parse(message.toString('utf8')); | 16 | |
16 | 17 | switch (message.action) { | |
17 | switch (message.action) { | 18 | case 'getEntity': |
18 | case 'getEntity': | 19 | |
19 | 20 | data.getEntity(message).then(function(message) { | |
20 | data.getEntity(message).then(function(message) { | 21 | |
21 | 22 | client.send(JSON.stringify(message)); | |
22 | client.send(JSON.stringify(message)); | 23 | }); |
23 | }); | 24 | break; |
25 | |||
26 | case 'comprobante' : | ||
27 | |||
28 | data.guardarComprobante(message.req).then(() => { | ||
29 | client.send('ok'); | ||
30 | }).catch(err => { | ||
31 | client.send('bad'); | ||
32 | }); | ||
33 | |||
34 | break; | ||
35 | |||
24 | break; | 36 | default: |
25 | 37 | break; | |
26 | case 'comprobante' : | 38 | } |
27 | 39 | }); | |
28 | data.guardarComprobante(message.req).then(() => { | 40 | }); |
29 | client.send('ok'); | 41 | |
30 | }).catch(err => { | 42 | client.on('error', function(e) { |
31 | client.send('bad'); | 43 | console.log(e); |
32 | }); | 44 | }) |
33 | 45 | ||
34 | break; | 46 | console.log('Sevice connected to wsServer: ' + config.urlHO); |
35 | 47 |