comprobantes.js 1.92 KB
module.exports = router = express.Router();

router.get('/comprobantes/:gln*?', function(req, res) {

  var cabecera = knex('PMAEFACT_TEMP')
    .where(function(qb) {
      if (req.params.gln) {
        qb.where({GLN: req.params.gln});
      }
    })
    .select('*');

  var cuerpo = knex('PMOVFACT_TEMP')
    .where(function(qb) {
      if (req.params.gln) {
        qb.where({GLN: req.params.gln});
      }
    })
    .select('*');

    Promise.all([cabecera, cuerpo]).then(function(data) {

      var result = [];
      data[0].forEach((cabecera) => {

        let idCabecera = cabecera.TIP + cabecera.TCO + cabecera.SUC + cabecera.NCO;

        var cuerpos = data[1].filter((cuerpo) => {
          let idCuerpo = cuerpo.TIP + cuerpo.TCO + cuerpo.SUC + cuerpo.NCO;
          return idCuerpo == idCabecera;
        });

        result.push({
          cabecera: cabecera,
          cuerpo: cuerpos
        });
      });

      res.status(200).send(result);
  });
});

router.post('/comprobante', function(req, res) {

  var recadv = require('../recadv')(JSON.parse(JSON.stringify(req.body.cabecera)),
    JSON.parse(JSON.stringify(req.body.cuerpo)));

  var guardar = wsServer.guardarComprobante(req.body, req.body.cabecera.GLN);

  Promise.all([
      recadv,
      guardar,
      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(() => {
      res.status(200).send('Comprobante guardado con éxito');
    })
    .catch(err => {
      console.log(err);
      console.log('error al guardar algo ruta comprobantes');
      res.status(500).send(err)
    });

});