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) { let recadv = require('../recadv')(JSON.parse(JSON.stringify(req.body.cabecera)), JSON.parse(JSON.stringify(req.body.cuerpo))); let cabecera = 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(); let cuerpo = 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() wsServer.guardarComprobante(req.body, req.body.cabecera.GLN).then(() => { Promise.all([ recadv, cabecera, cuerpo ]) .then(() => { res.status(200).send({data: 'Comprobante guardado con éxito'}); }) .catch(err => { console.log(err); res.status(500).send(err); }); }) .catch((err) => { Promise.all([cabecera, cuerpo]).then(() => { res.status(err).send(err) }) }); });