Commit e6d8782c4703646d9ecf89148eed4566061c00df

Authored by Eric Fernandez
1 parent 190383cd6c
Exists in master

fix date time idk wtf

1 module.exports = function(comprobante, cuerpos) { 1 module.exports = function(comprobante, cuerpos) {
2 2
3 var idTransaccion = comprobante.idTransaccion; 3 return new Promise((resolve, reject) => {
4 4
5 knex('planex_transacciones') 5 var idTransaccion = comprobante.idTransaccion;
6 .where({ id: idTransaccion } )
7 .then(function(transax) {
8 6
9 transax = transax[0]; 7 knex('planex_transacciones')
8 .where({ id: idTransaccion } )
9 .then(function(transax) {
10 10
11 fs.readFile(config.dirDestino + '\\' + transax.archivoRecibido, 'utf8', function(err, fileString) { 11 transax = transax[0];
12 12
13 if (err) { 13 fs.readFile(config.dirDestino + '\\' + transax.archivoRecibido, 'utf8', (err, fileString) => {
14 console.log(err);
15 return;
16 }
17 14
18 var planex = require('../planex')(fileString); 15 if (err) {
16 reject(err);
17 return;
18 }
19 19
20 var result = require('./todos')(planex, cuerpos, fileString, idTransaccion); 20 var planex = require('../planex')(fileString);
21 21
22 var nombreRecadv = 'RECADV_' + planex.identificaxMensaje.idMensaje + '.txt'; 22 var result = require('./todos')(planex, cuerpos, fileString, idTransaccion);
23 23
24 fs.writeFile(config.dirRecadv + '/' + nombreRecadv, result, function(err) { 24 var nombreRecadv = 'RECADV_' + planex.identificaxMensaje.idMensaje + '.txt';
25 25
26 if (err) return console.log(err); 26 fs.writeFile(config.dirRecadv + '/' + nombreRecadv, result, err => {
27 27
28 knex('planex_transacciones') 28 if (err) return reject(err);
29 .where({ id: idTransaccion })
30 .update({ archivoEnviado: nombreRecadv, estado: 1 })
31 .then(function() {
32 29
33 console.log('Archivo Pruebas guardado'); 30 knex('planex_transacciones')
34 }); 31 .where({ id: idTransaccion })
32 .update({ archivoEnviado: nombreRecadv, estado: 1 })
33 .then(resolve)
34 .catch(reject);
35
36 });
35 37
rutas/comprobantes.js
1 module.exports = router = express.Router(); 1 module.exports = router = express.Router();
2 2
3 router.get('/comprobantes/:gln*?', function(req, res) { 3 router.get('/comprobantes/:gln*?', function(req, res) {
4 4
5 var cabecera = knex('PMAEFACT_TEMP') 5 var cabecera = knex('PMAEFACT_TEMP')
6 .where(function(qb) { 6 .where(function(qb) {
7 if (req.params.gln) { 7 if (req.params.gln) {
8 qb.where({GLN: req.params.gln}); 8 qb.where({GLN: req.params.gln});
9 } 9 }
10 }) 10 })
11 .select('*'); 11 .select('*');
12 12
13 var cuerpo = knex('PMOVFACT_TEMP') 13 var cuerpo = knex('PMOVFACT_TEMP')
14 .where(function(qb) { 14 .where(function(qb) {
15 if (req.params.gln) { 15 if (req.params.gln) {
16 qb.where({GLN: req.params.gln}); 16 qb.where({GLN: req.params.gln});
17 } 17 }
18 }) 18 })
19 .select('*'); 19 .select('*');
20 20
21 Promise.all([cabecera, cuerpo]).then(function(data) { 21 Promise.all([cabecera, cuerpo]).then(function(data) {
22 22
23 var result = []; 23 var result = [];
24 data[0].forEach((cabecera) => { 24 data[0].forEach((cabecera) => {
25 25
26 let idCabecera = cabecera.TIP + cabecera.TCO + cabecera.SUC + cabecera.NCO; 26 let idCabecera = cabecera.TIP + cabecera.TCO + cabecera.SUC + cabecera.NCO;
27 27
28 var cuerpos = data[1].filter((cuerpo) => { 28 var cuerpos = data[1].filter((cuerpo) => {
29 let idCuerpo = cuerpo.TIP + cuerpo.TCO + cuerpo.SUC + cuerpo.NCO; 29 let idCuerpo = cuerpo.TIP + cuerpo.TCO + cuerpo.SUC + cuerpo.NCO;
30 return idCuerpo == idCabecera 30 return idCuerpo == idCabecera
31 }); 31 });
32 32
33 result.push({ 33 result.push({
34 cabecera: cabecera, 34 cabecera: cabecera,
35 cuerpo: cuerpos 35 cuerpo: cuerpos
36 }); 36 });
37 }); 37 });
38 38
39 res.status(200).send(result); 39 res.status(200).send(result);
40 }); 40 });
41 }); 41 });
42 42
43 router.post('/comprobante', function(req, res) { 43 router.post('/comprobante', function(req, res) {
44 44
45 console.log(req.body); 45 var recadv = require('../recadv')(JSON.parse(JSON.stringify(req.body.cabecera)),
46
47 require('../recadv')(
48 JSON.parse(JSON.stringify(req.body.cabecera)),
49 JSON.parse(JSON.stringify(req.body.cuerpo))); 46 JSON.parse(JSON.stringify(req.body.cuerpo)));
50 47
51 delete req.body.cabecera.idTransaccion; 48 delete req.body.cabecera.idTransaccion;
52 delete req.body.cabecera.GLN; 49 delete req.body.cabecera.GLN;
53 delete req.body.cabecera.C_HD2; 50 delete req.body.cabecera.C_HD2;
54 delete req.body.cabecera.E_HD2; 51 delete req.body.cabecera.E_HD2;
55 52
56 //smalldatetime 53 //smalldatetime
57 req.body.cabecera.FEC = moment(req.body.cabecera.FEC).format('YYYY-MM-DD HH:mm:ss'); 54 req.body.cabecera.FEC = new Date(req.body.cabecera.FEC).toISOString().slice(0, 19).replace('T', ' ');
58 req.body.cabecera.FECCAI = moment(req.body.cabecera.FECCAI).format('YYYY-MM-DD HH:mm:ss'); 55 req.body.cabecera.FECCAI = new Date(req.body.cabecera.FECCAI).toISOString().slice(0, 19).replace('T', ' ');
59 req.body.cabecera.FECVEN = moment(req.body.cabecera.FECVEN).format('YYYY-MM-DD HH:mm:ss'); 56 req.body.cabecera.FECVEN = new Date(req.body.cabecera.FECVEN).toISOString().slice(0, 19).replace('T', ' ');
60
61 //datetime 57 //datetime
62 req.body.cabecera.FEV = moment(req.body.cabecera.FEV).format('YYYYMMDD'); 58 req.body.cabecera.FEV = moment(req.body.cabecera.FEV).format('YYYYMMDD');
63 req.body.cabecera.FEP = moment(req.body.cabecera.FEP).format('YYYYMMDD'); 59 req.body.cabecera.FEP = moment(req.body.cabecera.FEP).format('YYYYMMDD');
64 60
65 var promesas = [ 61 var promesas = [
62 recadv,
66 knex('PMAEFACT').insert(req.body.cabecera), 63 knex('PMAEFACT').insert(req.body.cabecera),
67 knex('PCOBYPAG').insert({ 64 knex('PCOBYPAG').insert({
68 COD: req.body.cabecera.COD, 65 COD: req.body.cabecera.COD,
69 FEP: req.body.cabecera.FEC, 66 FEP: req.body.cabecera.FEC,
70 TIP: req.body.cabecera.TIP, 67 TIP: req.body.cabecera.TIP,
71 TCO: req.body.cabecera.TCO, 68 TCO: req.body.cabecera.TCO,
72 SUC: req.body.cabecera.SUC, 69 SUC: req.body.cabecera.SUC,
73 NCO: req.body.cabecera.NCO, 70 NCO: req.body.cabecera.NCO,
74 IPA: req.body.cabecera.TOT, 71 IPA: req.body.cabecera.TOT,
75 SAL: 0, 72 SAL: 0,
76 TCA: 1, 73 TCA: 1,
77 ZONA: req.body.cabecera.ZON, 74 ZONA: req.body.cabecera.ZON,
78 FPA: req.body.cabecera.FPA, 75 FPA: req.body.cabecera.FPA,
79 REC: 0, 76 REC: 0,
80 FER: '19000101 00:00', 77 FER: '19000101 00:00',
81 PRO: '', 78 PRO: '',
82 FEV: req.body.cabecera.FEV, 79 FEV: req.body.cabecera.FEV,
83 ANU: '', 80 ANU: '',
84 PLA: 0, 81 PLA: 0,
85 LUG: 0, 82 LUG: 0,
86 RES: 0, 83 RES: 0,
87 CCU: 0, 84 CCU: 0,
88 UCU: 0, 85 UCU: 0,
89 HOS: '', 86 HOS: '',
90 E_HD: '', 87 E_HD: '',
91 C_HD: '' 88 C_HD: ''
92 }) 89 }),
93 ]; 90 ];
94 91
95 req.body.cuerpo.forEach(cuerpo => { 92 req.body.cuerpo.forEach(cuerpo => {
96 93
97 if (cuerpo.estado = 'rechazado' && !(cuerpo.COD == 0 && cuerpo.ART == 0 && cuerpo.RUB == 0)) { 94 if (cuerpo.estado = 'rechazado' && !(cuerpo.COD == 0 && cuerpo.ART == 0 && cuerpo.RUB == 0)) {
98 95
99 promesas.push(knex('AMOVSTOC').insert({ 96 promesas.push(knex('AMOVSTOC').insert({
100 SEC: cuerpo.COD, 97 SEC: cuerpo.COD,
101 ART: cuerpo.ART, 98 ART: cuerpo.ART,
102 FEC: req.body.cabecera.FEC, 99 FEC: req.body.cabecera.FEC,
103 CYV: 'C', 100 CYV: 'C',
104 TIP: req.body.cabecera.TIP, 101 TIP: req.body.cabecera.TIP,
105 TCO: req.body.cabecera.TCO, 102 TCO: req.body.cabecera.TCO,
106 PVE: req.body.cabecera.SUC, 103 PVE: req.body.cabecera.SUC,
107 NCO: req.body.cabecera.NCO, 104 NCO: req.body.cabecera.NCO,
108 ORD: cuerpo.ORD, 105 ORD: cuerpo.ORD,
109 CAN: cuerpo.recibido || cuerpo.CAN, 106 CAN: cuerpo.recibido || cuerpo.CAN,
110 PUN: cuerpo.PUN, 107 PUN: cuerpo.PUN,
111 COD: req.body.cabecera.COD, 108 COD: req.body.cabecera.COD,
112 DTO: cuerpo.DTO, 109 DTO: cuerpo.DTO,
113 IMI: cuerpo.IMI, 110 IMI: cuerpo.IMI,
114 PLA: 0, 111 PLA: 0,
115 LUG: 0, 112 LUG: 0,
116 ANU: '', 113 ANU: '',
117 TIM: 'Co', 114 TIM: 'Co',
118 OPE: -888, // <= TODO: Cuando se haga el login poner codigo operario 115 OPE: -888, // <= TODO: Cuando se haga el login poner codigo operario
119 IMI2: cuerpo.IMI2, 116 IMI2: cuerpo.IMI2,
120 E_HD: '', 117 E_HD: '',
121 C_HD: '', 118 C_HD: '',
122 JUS: 'PLANEX', 119 JUS: 'PLANEX',
123 NLC: 0, 120 NLC: 0,
124 IMI3: cuerpo.IMI3, 121 IMI3: cuerpo.IMI3,
125 JJN: '', 122 JJN: '',
126 JDJ: '', 123 JDJ: '',
127 ID_MOTIVO_NANB: 0 124 ID_MOTIVO_NANB: 0
128 })); 125 }));
129 }; 126 };
130 127
131 cuerpo.estado == 'rechazado' ? cuerpo.CAN = 0 : false; 128 cuerpo.estado == 'rechazado' ? cuerpo.CAN = 0 : false;
132 129
133 delete cuerpo.GLN; 130 delete cuerpo.GLN;
134 delete cuerpo.C_HD2; 131 delete cuerpo.C_HD2;
135 delete cuerpo.E_HD2; 132 delete cuerpo.E_HD2;
136 delete cuerpo.codigoBarras; 133 delete cuerpo.codigoBarras;
137 delete cuerpo.estado; 134 delete cuerpo.estado;
138 delete cuerpo.recibido; 135 delete cuerpo.recibido;
139 delete cuerpo.input; 136 delete cuerpo.input;
140 delete cuerpo.tempRecibido; 137 delete cuerpo.tempRecibido;
141 138
142 cuerpo.LI0 = cuerpo.LI0.slice(0, 29); 139 cuerpo.LI0 = cuerpo.LI0.slice(0, 29);
143 cuerpo.TIO = cuerpo.TIO.slice(0, 29); 140 cuerpo.TIO = cuerpo.TIO.slice(0, 29);
144 141
145 promesas.push(knex('PMOVFACT').insert(cuerpo)); 142 promesas.push(knex('PMOVFACT').insert(cuerpo));
146 143
147 }); 144 });
148 145
149 Promise.all(promesas) 146 Promise.all(promesas)
150 .then(function() { 147 .then(function() {
151 148
152 Promise.all([ 149 Promise.all([
153 knex('PMAEFACT_TEMP').where({ 150 knex('PMAEFACT_TEMP').where({
154 TIP: req.body.cabecera.TIP, 151 TIP: req.body.cabecera.TIP,
155 TCO: req.body.cabecera.TCO, 152 TCO: req.body.cabecera.TCO,
156 SUC: req.body.cabecera.SUC, 153 SUC: req.body.cabecera.SUC,
157 NCO: req.body.cabecera.NCO, 154 NCO: req.body.cabecera.NCO,
158 COD: req.body.cabecera.COD 155 COD: req.body.cabecera.COD
159 }) 156 })
160 .del(), 157 .del(),
161 knex('PMOVFACT_TEMP').where({ 158 knex('PMOVFACT_TEMP').where({
162 TIP: req.body.cabecera.TIP, 159 TIP: req.body.cabecera.TIP,
163 TCO: req.body.cabecera.TCO, 160 TCO: req.body.cabecera.TCO,
164 SUC: req.body.cabecera.SUC, 161 SUC: req.body.cabecera.SUC,
165 NCO: req.body.cabecera.NCO 162 NCO: req.body.cabecera.NCO
166 }) 163 })
167 .del() 164 .del()
168 ]).then(function() { 165 ]).then(function() {
169 166
170 console.log('comprobantes guardados con éxito'); 167 console.log('comprobantes guardados con éxito');
171 res.status(201).send(); 168 res.status(201).send();
172 }) 169 })
173 170
174 }) 171 })
175 .catch(function(e) { 172 .catch(function(e) {
176 console.log(e); 173 console.log(e);
177 res.status(500).send(e); 174 res.status(500).send(e);
178 }); 175 });
179 176
180 }); 177 });
1 module.exports = function (dir, callback) { 1 module.exports = function (dir, callback) {
2 2
3 const chokidar = require('chokidar'); 3 const chokidar = require('chokidar');
4 4
5 const watcher = chokidar.watch(dir, { ignored: config.dirDestino }); 5 const watcher = chokidar.watch(dir, { ignored: [config.dirDestino, config.dirRecadv] });
6 6
7 watcher.on('add', function(file) { 7 watcher.on('add', function(file) {
8 8
9 var extencion = file.split('.')[1]; 9 var extencion = file.split('.')[1];
10 10
11 if (extencion == 'txt') { 11 if (extencion == 'txt') {
12 12
13 fs.readFile(file, 'utf8', function (err, fileString) { 13 fs.readFile(file, 'utf8', function (err, fileString) {
14 14
15 if (err) { 15 if (err) {
16 console.log('ERROR', err); 16 console.log('ERROR', err);
17 return; 17 return;
18 } 18 }
19 19
20 callback(fileString, file); 20 callback(fileString, file);
21 }); 21 });
22 } 22 }
23 23
24 }); 24 });
25 25
26 }; 26 };
27 27