Commit 4fd71551d8e26ee6afb56e240ad560d57725a891

Authored by Eric Fernandez
1 parent cb380bbbed
Exists in master

files

Showing 2 changed files with 156 additions and 0 deletions   Show diff stats
rutas/comprobantes.js
... ... @@ -0,0 +1,145 @@
  1 +module.exports = router = express.Router();
  2 +
  3 +router.get('/comprobantes/:gln*?', function(req, res) {
  4 +
  5 + var cabecera = knex('PMAEFACT_TEMP')
  6 + .where(function(qb) {
  7 + if (req.params.gln) {
  8 + qb.where({gln: req.params.gln});
  9 + }
  10 + })
  11 + .select('*');
  12 +
  13 + var cuerpo = knex('PMOVFACT_TEMP')
  14 + .where(function(qb) {
  15 + if (req.params.gln) {
  16 + qb.where({gln: req.params.gln});
  17 + }
  18 + })
  19 + .select('*');
  20 +
  21 + Promise.all([cabecera, cuerpo]).then(function(data) {
  22 +
  23 + var result = [];
  24 + data[0].forEach((cabecera) => {
  25 +
  26 + let idCabecera = cabecera.TIP + cabecera.TCO + cabecera.SUC + cabecera.NCO;
  27 +
  28 + var cuerpos = data[1].filter((cuerpo) => {
  29 + let idCuerpo = cuerpo.TIP + cuerpo.TCO + cuerpo.SUC + cuerpo.NCO;
  30 + return idCuerpo == idCabecera
  31 + });
  32 +
  33 + result.push({
  34 + cabecera: cabecera,
  35 + cuerpo: cuerpos
  36 + });
  37 + });
  38 +
  39 + res.status(200).send(result);
  40 + });
  41 +});
  42 +
  43 +router.post('/comprobante', function(req, res) {
  44 +
  45 + console.log(req.body);
  46 + delete req.body.cabecera.gln;
  47 + delete req.body.cabecera.C_HD2;
  48 + delete req.body.cabecera.E_HD2;
  49 +
  50 + //smalldatetime
  51 + req.body.cabecera.FEC = new Date(req.body.cabecera.FEC).toISOString().slice(0, 19).replace('T', ' ');
  52 + req.body.cabecera.FECCAI = new Date(req.body.cabecera.FECCAI).toISOString().slice(0, 19).replace('T', ' ');
  53 + req.body.cabecera.FECVEN = new Date(req.body.cabecera.FECVEN).toISOString().slice(0, 19).replace('T', ' ');
  54 +
  55 + //datetime
  56 + req.body.cabecera.FEV = moment(req.body.cabecera.FEV).format('YYYYMMDD');
  57 + req.body.cabecera.FEP = moment(req.body.cabecera.FEP).format('YYYYMMDD');
  58 +
  59 + var promesas = [
  60 + knex('PMAEFACT').insert(req.body.cabecera),
  61 + knex('PCOBYPAG').insert({
  62 + COD: req.body.cabecera.COD,
  63 + FEP: req.body.cabecera.FEC,
  64 + TIP: req.body.cabecera.TIP,
  65 + TCO: req.body.cabecera.TCO,
  66 + SUC: req.body.cabecera.SUC,
  67 + NCO: req.body.cabecera.NCO,
  68 + IPA: req.body.cabecera.TOT,
  69 + SAL: 0,
  70 + TCA: 1,
  71 + ZONA: req.body.cabecera.ZON,
  72 + FPA: req.body.cabecera.FPA,
  73 + REC: 0,
  74 + FER: '19000101 00:00',
  75 + PRO: '',
  76 + FEV: req.body.cabecera.FEV,
  77 + ANU: '',
  78 + PLA: 0,
  79 + LUG: 0,
  80 + RES: 0,
  81 + CCU: 0,
  82 + UCU: 0,
  83 + HOS: '',
  84 + E_HD: '',
  85 + C_HD: ''
  86 + })
  87 + ];
  88 +
  89 + req.body.cuerpo.forEach(cuerpo => {
  90 +
  91 +
  92 + promesas.push(knex('AMOVSTOC').insert({
  93 + SEC: cuerpo.COD,
  94 + ART: cuerpo.ART,
  95 + FEC: req.body.cabecera.FEC,
  96 + CYV: 'C',
  97 + TIP: req.body.cabecera.TIP,
  98 + TCO: req.body.cabecera.TCO,
  99 + PVE: req.body.cabecera.SUC,
  100 + NCO: req.body.cabecera.NCO,
  101 + ORD: cuerpo.ORD,
  102 + CAN: cuerpo.recibido || cuerpo.CAN,
  103 + PUN: cuerpo.PUN,
  104 + COD: req.body.cabecera.COD,
  105 + DTO: cuerpo.DTO,
  106 + IMI: cuerpo.IMI,
  107 + PLA: 0,
  108 + LUG: 0,
  109 + ANU: '',
  110 + TIM: 'Co',
  111 + OPE: -888, // <= TODO: Cuando se haga el login poner codigo operario
  112 + IMI2: cuerpo.IMI2,
  113 + E_HD: '',
  114 + C_HD: '',
  115 + JUS: 'PLANEX',
  116 + NLC: 0,
  117 + IMI3: cuerpo.IMI3,
  118 + JJN: '',
  119 + JDJ: '',
  120 + ID_MOTIVO_NANB: 0
  121 + }));
  122 +
  123 + delete cuerpo.gln;
  124 + delete cuerpo.C_HD2;
  125 + delete cuerpo.E_HD2;
  126 + delete cuerpo.codigoBarras;
  127 + delete cuerpo.estado;
  128 + delete cuerpo.recibido;
  129 + delete cuerpo.input;
  130 +
  131 + promesas.push(knex('PMOVFACT').insert(cuerpo));
  132 +
  133 + });
  134 +
  135 + Promise.all(promesas)
  136 + .then(function() {
  137 +
  138 + console.log('comprobantes guardados con éxito');
  139 + })
  140 + .catch(function(e) {
  141 + console.log(e);
  142 + });
  143 +
  144 + res.status(201).send('ok');
  145 +});
... ... @@ -0,0 +1,11 @@
  1 +module.exports = router = express.Router();
  2 +
  3 +router.post('/login', function(req, res) {
  4 +
  5 + if (wsServer.getClientGln(req.body.gln).length) {
  6 +
  7 + res.status(200).send({data: 'ok'});
  8 + } else {
  9 + res.status(200).send({data: 'No existe el cliente'});
  10 + }
  11 +});