index.js 1.87 KB
config = require('./config/config.json');
module.exports = knex = require('knex')(config.db)

require('./watch/index')(config.dir, onGetFile);

const wsServer = require('./webSocketServer/index')();

function onGetFile(event, fileString) {

  if (!fileString) return;

  var planex = require('./planex/index')(fileString);

  console.log(planex);

  var entities = {};

  var tipoCuit = planex.identificaxEmisor.cuit.slice(0, 2);
  var digitoVerificador = planex.identificaxEmisor.cuit[planex.identificaxEmisor.cuit.length - 1];

  var cuitToDebo = tipoCuit + '-' + planex.identificaxEmisor.cuit.slice(2, 10) + '-' + digitoVerificador;

  var promiseProveedores = wsServer.getEntidad('7790968003283', 'PROVEED', {CUIT: cuitToDebo});
  var promiseEmp = wsServer.getEntidad('7790968003283', 'APAREMP');

  var promesasArticulo = [];

  planex.itemsFactura.forEach(item => {

    var queryString = 'select cb.*, art.CodRub, art.DET_LAR from CODBAR cb ' +
      'join ARTICULOS art on cb.CodArt = art.CodArt and cb.CodSec = art.CodSec where cb.CodBar = \'' +
      item.codigoUPCEAN13 + '\'';

    promesasArticulo.push(wsServer.getEntidad('7790968003283', null, {}, queryString));
  });

  Promise.all(promesasArticulo).then(function(values) {

    planex.itemsFactura.forEach((item, index) => {

      if (!values[index]) console.error('No se encontró el articulo');

      item.CodArt = values[index].CodArt;
      item.CodSec = values[index].CodSec;
      item.CodRub = values[index].CodRub;
      item.DET_LAR = values[index].DET_LAR;
    });

    Promise.all([promiseProveedores, promiseEmp]).then(function(data) {

      entities.proveedores = data[0];
      entities.empresa = data[1];

      var debo = require('./debo/index')(planex, entities);

      require('./db/index')(debo);
    });
  });
}

console.log('listen websocket port ' + config.port);
console.log('Ejecutar programa como administrador...');