Merge Request #6

Merged
Created by Eric Fernandez

Master(efernandez)

Assignee: Eric Fernandez
Milestone: None

Merged by Eric Fernandez

Commits (2)
1 participants
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 }
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