module.exports = function(config) { return { getEntity: function (message) { return new Promise(function(resolve, reject) { var promise; if (message.queryString) { promise = knex.schema.raw(message.queryString); } else { promise = knex(message.tableName).where(message.where).select('*'); } promise.then(function (data) { message.data = data[0]; resolve(message); }); }); }, guardarComprobante: function (body) { console.log('recibo datos guardarComprobante en estación'); console.log(body); return new Promise((resolve, reject) => { delete body.cabecera.idTransaccion; delete body.cabecera.GLN; delete body.cabecera.C_HD2; delete body.cabecera.E_HD2; //smalldatetime body.cabecera.FEC = new Date(body.cabecera.FEC).toISOString().slice(0, 19).replace('T', ' '); body.cabecera.FECCAI = new Date(body.cabecera.FECCAI).toISOString().slice(0, 19).replace('T', ' '); body.cabecera.FECVEN = new Date(body.cabecera.FECVEN).toISOString().slice(0, 19).replace('T', ' '); //datetime body.cabecera.FEV = moment(body.cabecera.FEV).format('YYYYMMDD'); body.cabecera.FEP = moment(body.cabecera.FEP).format('YYYYMMDD'); knex('PMAEFACT').insert(body.cabecera).then(() => { var promesas = [ knex('PCOBYPAG').insert({ COD: body.cabecera.COD, FEP: body.cabecera.FEC, TIP: body.cabecera.TIP, TCO: body.cabecera.TCO, SUC: body.cabecera.SUC, NCO: body.cabecera.NCO, IPA: body.cabecera.TOT, SAL: 0, TCA: 1, ZONA: body.cabecera.ZON, FPA: body.cabecera.FPA, REC: 0, FER: '19000101 00:00', PRO: '', FEV: body.cabecera.FEV, ANU: '', PLA: 0, LUG: 0, RES: 0, CCU: 0, UCU: 0, HOS: '', E_HD: '', C_HD: '' }), ]; body.cuerpo.forEach(cuerpo => { if (cuerpo.estado != 'rechazado' && !(cuerpo.COD == 0 && cuerpo.ART == 0)) { promesas.push(knex('AMOVSTOC').insert({ SEC: cuerpo.COD, ART: cuerpo.ART, FEC: body.cabecera.FEC, CYV: 'C', TIP: body.cabecera.TIP, TCO: body.cabecera.TCO, PVE: body.cabecera.SUC, NCO: body.cabecera.NCO, ORD: cuerpo.ORD, CAN: cuerpo.cantidadRecibida, PUN: cuerpo.PUN, COD: body.cabecera.COD, DTO: cuerpo.DTO, IMI: cuerpo.IMI, PLA: 0, LUG: 0, ANU: '', TIM: 'Co', OPE: -888, // <= TODO: Cuando se haga el login poner codigo operario IMI2: cuerpo.IMI2, E_HD: '', C_HD: '', JUS: 'PLANEX', NLC: 0, IMI3: cuerpo.IMI3, JJN: '', JDJ: '', ID_MOTIVO_NANB: 0 })); }; cuerpo.estado == 'rechazado' ? cuerpo.cantidadRecibida = 0 : false; delete cuerpo.GLN; delete cuerpo.C_HD2; delete cuerpo.E_HD2; delete cuerpo.codigoBarras; delete cuerpo.estado; delete cuerpo.recibido; delete cuerpo.input; delete cuerpo.tempRecibido; cuerpo.LI0 = cuerpo.LI0.slice(0, 29); cuerpo.TIO = cuerpo.TIO.slice(0, 29); promesas.push(knex('PMOVFACT').insert(cuerpo)); }); Promise.all(promesas) .then(function() { console.log('comprobantes guardados con éxito'); resolve(); }) .catch(function(e) { console.log(e); reject('Ocurrió un error'); }); }) .catch(reject); }); } } }