Commit 96432b4fe6e7b9ddce038af11d9dff64475e10be
1 parent
756dc8903e
Exists in
master
refactor último momento
Showing
2 changed files
with
147 additions
and
2 deletions
Show diff stats
data/index.js
1 | 1 | module.exports = function(config) { |
2 | 2 | |
3 | - var knex = require('knex')(config); | |
4 | - | |
5 | 3 | return { |
6 | 4 | getEntity: function (message) { |
7 | 5 | |
... | ... | @@ -23,6 +21,141 @@ module.exports = function(config) { |
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 | + recadv, | |
45 | + knex('PMAEFACT').insert(req.body.cabecera), | |
46 | + knex('PCOBYPAG').insert({ | |
47 | + COD: req.body.cabecera.COD, | |
48 | + FEP: req.body.cabecera.FEC, | |
49 | + TIP: req.body.cabecera.TIP, | |
50 | + TCO: req.body.cabecera.TCO, | |
51 | + SUC: req.body.cabecera.SUC, | |
52 | + NCO: req.body.cabecera.NCO, | |
53 | + IPA: req.body.cabecera.TOT, | |
54 | + SAL: 0, | |
55 | + TCA: 1, | |
56 | + ZONA: req.body.cabecera.ZON, | |
57 | + FPA: req.body.cabecera.FPA, | |
58 | + REC: 0, | |
59 | + FER: '19000101 00:00', | |
60 | + PRO: '', | |
61 | + FEV: req.body.cabecera.FEV, | |
62 | + ANU: '', | |
63 | + PLA: 0, | |
64 | + LUG: 0, | |
65 | + RES: 0, | |
66 | + CCU: 0, | |
67 | + UCU: 0, | |
68 | + HOS: '', | |
69 | + E_HD: '', | |
70 | + C_HD: '' | |
71 | + }), | |
72 | + ]; | |
73 | + | |
74 | + req.body.cuerpo.forEach(cuerpo => { | |
75 | + | |
76 | + if (cuerpo.estado != 'rechazado' && !(cuerpo.COD == 0 && cuerpo.ART == 0)) { | |
77 | + | |
78 | + promesas.push(knex('AMOVSTOC').insert({ | |
79 | + SEC: cuerpo.COD, | |
80 | + ART: cuerpo.ART, | |
81 | + FEC: req.body.cabecera.FEC, | |
82 | + CYV: 'C', | |
83 | + TIP: req.body.cabecera.TIP, | |
84 | + TCO: req.body.cabecera.TCO, | |
85 | + PVE: req.body.cabecera.SUC, | |
86 | + NCO: req.body.cabecera.NCO, | |
87 | + ORD: cuerpo.ORD, | |
88 | + CAN: cuerpo.cantidadRecibida, | |
89 | + PUN: cuerpo.PUN, | |
90 | + COD: req.body.cabecera.COD, | |
91 | + DTO: cuerpo.DTO, | |
92 | + IMI: cuerpo.IMI, | |
93 | + PLA: 0, | |
94 | + LUG: 0, | |
95 | + ANU: '', | |
96 | + TIM: 'Co', | |
97 | + OPE: -888, // <= TODO: Cuando se haga el login poner codigo operario | |
98 | + IMI2: cuerpo.IMI2, | |
99 | + E_HD: '', | |
100 | + C_HD: '', | |
101 | + JUS: 'PLANEX', | |
102 | + NLC: 0, | |
103 | + IMI3: cuerpo.IMI3, | |
104 | + JJN: '', | |
105 | + JDJ: '', | |
106 | + ID_MOTIVO_NANB: 0 | |
107 | + })); | |
108 | + }; | |
109 | + | |
110 | + cuerpo.estado == 'rechazado' ? cuerpo.cantidadRecibida = 0 : false; | |
111 | + | |
112 | + delete cuerpo.GLN; | |
113 | + delete cuerpo.C_HD2; | |
114 | + delete cuerpo.E_HD2; | |
115 | + delete cuerpo.codigoBarras; | |
116 | + delete cuerpo.estado; | |
117 | + delete cuerpo.recibido; | |
118 | + delete cuerpo.input; | |
119 | + delete cuerpo.tempRecibido; | |
120 | + | |
121 | + cuerpo.LI0 = cuerpo.LI0.slice(0, 29); | |
122 | + cuerpo.TIO = cuerpo.TIO.slice(0, 29); | |
123 | + | |
124 | + promesas.push(knex('PMOVFACT').insert(cuerpo)); | |
125 | + | |
126 | + }); | |
127 | + | |
128 | + Promise.all(promesas) | |
129 | + .then(function() { | |
130 | + | |
131 | + Promise.all([ | |
132 | + knex('PMAEFACT_TEMP').where({ | |
133 | + TIP: req.body.cabecera.TIP, | |
134 | + TCO: req.body.cabecera.TCO, | |
135 | + SUC: req.body.cabecera.SUC, | |
136 | + NCO: req.body.cabecera.NCO, | |
137 | + COD: req.body.cabecera.COD | |
138 | + }) | |
139 | + .del(), | |
140 | + knex('PMOVFACT_TEMP').where({ | |
141 | + TIP: req.body.cabecera.TIP, | |
142 | + TCO: req.body.cabecera.TCO, | |
143 | + SUC: req.body.cabecera.SUC, | |
144 | + NCO: req.body.cabecera.NCO | |
145 | + }) | |
146 | + .del() | |
147 | + ]).then(function() { | |
148 | + | |
149 | + console.log('comprobantes guardados con éxito'); | |
150 | + resolve(); | |
151 | + }) | |
152 | + | |
153 | + }) | |
154 | + .catch(function(e) { | |
155 | + console.log(e); | |
156 | + reject('Ocurrió un error'); | |
157 | + }); | |
158 | + }); | |
26 | 159 | } |
27 | 160 | } |
28 | 161 | } |
index.js
1 | 1 | const WebSocketClient = require('ws'); |
2 | 2 | const config = require('./config/config.json'); |
3 | 3 | const data = require('./data/index')(config.bo); |
4 | +module.exports = knex = requre('knex')(config.bo); | |
4 | 5 | |
5 | 6 | const client = new WebSocketClient(config.urlHO); |
6 | 7 | |
... | ... | @@ -21,6 +22,17 @@ client.on('open', function open() { |
21 | 22 | client.send(JSON.stringify(message)); |
22 | 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 | 36 | default: |
25 | 37 | break; |
26 | 38 | } |