diff --git a/db/index.js b/db/index.js index c765324..50627bb 100644 --- a/db/index.js +++ b/db/index.js @@ -1,4 +1,4 @@ -module.exports = function(comprobante) { +module.exports = function(comprobante, nameFile) { var promesas = []; @@ -10,7 +10,14 @@ module.exports = function(comprobante) { Promise.all(promesas).then(function() { - console.log('COMPROBANTE GUARDADO CON ÉXITO'); + nameFileDest = nameFile.split('\\')[nameFile.split('\\').length - 1]; + var pathDest = config.dirDestino + '/' + nameFileDest; + + fs.rename(nameFile, pathDest, function(err) { + + if(err) console.log(err); + console.log('COMPROBANTE GUARDADO CON ÉXITO'); + }); }).catch(function() { console.log('ERROR AL GUARDAR EL COMPROBANTE'); diff --git a/debo/relaciones.js b/debo/relaciones.js index d8de683..63ef2df 100644 --- a/debo/relaciones.js +++ b/debo/relaciones.js @@ -28,7 +28,11 @@ module.exports = function(planex, wsServer) { planex.itemsFactura.forEach((item, index) => { - if (!values[index]) return; console.error('No se encontró el articulo'); + if (!values[index]) { + + console.error('No se encontró el articulo Código de barras = ' + item.codigoUPCEAN13); + return; + } item.CodArt = values[index].CodArt; item.CodSec = values[index].CodSec; @@ -44,6 +48,8 @@ module.exports = function(planex, wsServer) { resolve({planex, values}); + }).catch(function(e) { + reject(e); }); }); diff --git a/debo/validacion.js b/debo/validacion.js index bfa88b3..1305cbf 100644 --- a/debo/validacion.js +++ b/debo/validacion.js @@ -14,7 +14,7 @@ module.exports = function(debo, wsServer, gln) { if (values) { reject('Ya existe el comprobante', values); } else { - resolve(); + resolve(debo); } }); }); diff --git a/index.js b/index.js index d537b37..efb09ec 100644 --- a/index.js +++ b/index.js @@ -1,11 +1,12 @@ -config = require('./config/config.json'); - module.exports = + config = require('./config/config.json'); knex = require('knex')(config.db), express = require('express'); app = express(); wsServer = require('./webSocketServer/index')(); moment = require('moment'); + fs = require('fs'); + app.listen(config.portWebService); app.use(express.json({ limit: '50mb' })); @@ -25,16 +26,12 @@ app.use(function(req, res, next) { app.use('/gateway-debo', require('./rutas/comprobantes')); app.use('/gateway-debo', require('./rutas/login')); -var planexArr = []; - -function onGetFile(fileString) { +function onGetFile(fileString, nameFile) { if (!fileString) return; var planex = require('./planex/index')(fileString); - planexArr.push(planex); - // Traigo proveedor, empresa require('./debo/relaciones')(planex, wsServer).then(function(result) { @@ -47,14 +44,17 @@ function onGetFile(fileString) { var debo = require('./debo/index')(planex, entities); - require('./debo/validacion')(debo, wsServer, planex.identificaxSucursalReceptorFactura.glnSucursal).then(function() { + require('./debo/validacion')(debo, wsServer, planex.identificaxSucursalReceptorFactura.glnSucursal) + .then(function(debo) { - require('./db/index')(debo); - }).catch(function(err) { + require('./db/index')(debo, nameFile); + }).catch(function(err) { - console.log(err); - }); + console.log(err); + }); + }).catch(function(e) { + console.log(e); }); } diff --git a/rutas/comprobantes.js b/rutas/comprobantes.js index 46fd33c..377995b 100644 --- a/rutas/comprobantes.js +++ b/rutas/comprobantes.js @@ -88,7 +88,7 @@ router.post('/comprobante', function(req, res) { req.body.cuerpo.forEach(cuerpo => { - + if (cuerpo.estado == 'rechazado') return; promesas.push(knex('AMOVSTOC').insert({ SEC: cuerpo.COD, ART: cuerpo.ART, @@ -128,6 +128,9 @@ router.post('/comprobante', function(req, res) { delete cuerpo.recibido; delete cuerpo.input; + cuerpo.LI0 = cuerpo.LI0.slice(0, 29); + cuerpo.TIO = cuerpo.TIO.slice(0, 29); + promesas.push(knex('PMOVFACT').insert(cuerpo)); }); @@ -135,11 +138,32 @@ router.post('/comprobante', function(req, res) { Promise.all(promesas) .then(function() { - console.log('comprobantes guardados con éxito'); + Promise.all([ + knex('PMAEFACT_TEMP').where({ + TIP: req.body.cabecera.TIP, + TCO: req.body.cabecera.TCO, + SUC: req.body.cabecera.SUC, + NCO: req.body.cabecera.NCO, + COD: req.body.cabecera.COD + }) + .del(), + knex('PMOVFACT_TEMP').where({ + TIP: req.body.cabecera.TIP, + TCO: req.body.cabecera.TCO, + SUC: req.body.cabecera.SUC, + NCO: req.body.cabecera.NCO + }) + .del() + ]).then(function() { + + console.log('comprobantes guardados con éxito'); + res.status(201).send(); + }) + }) .catch(function(e) { console.log(e); + res.status(500).send(e); }); - res.status(201).send('ok'); }); diff --git a/watch/index.js b/watch/index.js index ab60bcf..d2bea3b 100644 --- a/watch/index.js +++ b/watch/index.js @@ -1,9 +1,8 @@ module.exports = function (dir, callback) { - const fs = require('fs'); const chokidar = require('chokidar'); - const watcher = chokidar.watch(dir); + const watcher = chokidar.watch(dir, { ignored: config.dirDestino }); watcher.on('add', function(file) { @@ -13,7 +12,7 @@ module.exports = function (dir, callback) { fs.readFile(file, 'utf8', function (err, fileString) { - callback(fileString); + callback(fileString, file); }); }