Commit 13ce4d24df549ac081539c5a5e767666c02bf6a7
Exists in
master
Merge branch 'master' into 'master'
Master(efernandez) See merge request !6
Showing
2 changed files
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,140 @@ 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 | + 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 | 158 | } |
| 27 | 159 | } |
| 28 | 160 | } |
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 | } |