Commit de297f2a authored by Wendy Fuertes's avatar Wendy Fuertes

Ajustes en contingencia

parent 6cf7cbdf
This diff is collapsed.
......@@ -176,7 +176,6 @@ module.exports = (app) => {
}
async function post(eventoC, usuario, t) {
console.log("----...--- registra eventoC", eventoC)
let eventoRes = await models.evento_significativo.findOne({
attributes: ['id_evento'],
where: {
......@@ -198,20 +197,8 @@ module.exports = (app) => {
_usuario_creacion: (usuario.usuario) ? usuario.usuario: usuario
}, {
transaction: t
})/* .then(async resp =>{
console.log("----...--- registra evento", resp)
try{
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
await enviarEvento(resp.id_evento, usuario, t);
} else {
throw Error(await app.dao.catalogo.getError(1, conn.toString(), t));
}
} catch (e) {
return resp.id_evento;
}
}); */
/* if (eventoNuevo) {
});
if (eventoNuevo) {
try{
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
......@@ -222,7 +209,7 @@ module.exports = (app) => {
} catch (e) {
return eventoNuevo.id_evento;
}
} */
}
} else {
throw Error('El Evento Significativo ya fue creado')
}
......
......@@ -35,6 +35,7 @@ module.exports = (app) => {
}
async function post(numeroFactura, numeroDocumento, nombreRazonSocial, montoTotal, tipoEmision, tipoFactura, factura, cuf, cufd, codigoDocumentoSector, idPuntoVenta, usuario, fechaEmision, idCliente, caed, fIdVenta, t) {
console.log("$$$$",numeroFactura, numeroDocumento, nombreRazonSocial, montoTotal, tipoEmision, tipoFactura, "factura", cuf, cufd, codigoDocumentoSector, idPuntoVenta, usuario, fechaEmision, idCliente, caed, fIdVenta )
return await models.venta.create({
numero_factura: numeroFactura,
numero_documento: numeroDocumento,
......@@ -157,7 +158,7 @@ module.exports = (app) => {
if (!validacion.transaccion) {
throw Error(await app.dao.catalogo.getError(1, validacion.listaCodigosRespuestas.map(val => val.toString())));
}
await setAnulado(idVenta, usuario, t);
await setAnulado(idVenta, usuario, /* motivo, */ t);
} else {
console.log("La anulación de facturas solo es hasta el día ocho (8) del mes siguiente")
throw Error('Se paso el tiempo límite de anulación.');
......@@ -181,7 +182,7 @@ module.exports = (app) => {
where.fid_punto_venta = idPuntoVenta;
}
return await models.venta.findAll({
attributes: ['id_venta', 'tipo_emision', 'factura', 'cufd', 'codigo_documento_sector', 'codigo_recepcion', 'fecha_emision', 'fid_punto_venta', 'caed'],
attributes: ['id_venta', 'tipo_emision', 'factura', 'cufd', 'codigo_documento_sector', 'codigo_recepcion', 'fecha_emision', 'fid_punto_venta', 'caed', 'tipo_factura'],
include: [
{
attributes: ['id_punto_venta', 'codigo', 'cuis', 'tipo_emision', 'fid_sucursal'],
......@@ -256,10 +257,11 @@ module.exports = (app) => {
});
}
async function setAnulado(idVenta, usuario, t) {
async function setAnulado(idVenta, usuario/* , motivo */, t) {
return await models.venta.update({
estado: 'ANULADO',
fecha_anulacion: moment().format('YYYY-MM-DDTHH:mm:ss.SSS'),
//motivo: motivo,
_usuario_modificacion: usuario
}, {
where: {
......@@ -490,7 +492,7 @@ module.exports = (app) => {
let page = req.params.page;
let offset = limit * (page - 1);
return models.venta.findAndCountAll({
attributes: ['id_venta', 'numero_factura', 'numero_documento', 'nombre_razon_social', 'monto', 'caed', 'fecha_emision', 'estado', 'fecha_anulacion', 'tipo_emision'],
attributes: ['id_venta', 'numero_factura', 'numero_documento', 'nombre_razon_social', 'monto', 'caed', 'fecha_emision', 'estado', 'fecha_anulacion', 'tipo_emision', 'observaciones'],
where: options,
limit: limit,
offset: offset,
......@@ -794,7 +796,7 @@ module.exports = (app) => {
async function ventasPorPeriodo(desde, hasta, t){
const res = await app.db.sequelize.query(`SELECT EXTRACT(MONTH FROM fecha_emision) as mes, EXTRACT(YEAR FROM fecha_emision) as anio, count(*) as ventas, sum(monto) as monto_total
FROM venta
WHERE estado like 'VALIDADO'
WHERE estado in ('VALIDADO', 'ANULADO')
and fecha_emision between :desde and :hasta
group by (mes, anio)`, {
replacements: {
......
......@@ -20,11 +20,12 @@ module.exports = (app) => {
stopTestConnection: function () { },
stopEnviarFacturaPaquete: function () { },
stopValidarFacturaPaquete: function () { },
stopValidarPaquete: function () { },
//stopValidarPaquete: function () { },
stopEnviarContingencia: function () { },
stopValidarContin: function () { },
stopValidarPaqueteContin: function () { },
stopValidarMasiva: function () { }
stopValidarMasiva: function () { },
stopSalud: function () { }
};
}
......@@ -375,64 +376,22 @@ module.exports = (app) => {
}
async function validarFacturaPaqueteContin() {
let t;
try {
const facturas = await app.dao.venta.getPendientesEmision('ENVIADO', 4, 2);// 4 = factura de contingencia, 2 = off online
if (facturas.length > 0) {
const cufd = await app.dao.cufd.get(facturas[0].punto_venta.fid_sucursal, 'system');
try {
const params = {
codigoAmbiente: app.config.impuestos.codigoAmbiente,
codigoDocumentoFiscal: facturas[0].esquema.codigo_documento_fiscal,
codigoDocumentoSector: facturas[0].codigo_documento_sector,
codigoEmision: facturas[0].tipo_emision,
codigoModalidad: app.config.impuestos.codigoModalidad,
codigoPuntoVenta: facturas[0].punto_venta.codigo,
codigoRecepcion: facturas[0].codigo_recepcion,
codigoSistema: app.config.impuestos.codigoSistema,
codigoSucursal: facturas[0].punto_venta.sucursal.codigo,
cufd: cufd,
cuis: facturas[0].punto_venta.cuis,
nit: facturas[0].punto_venta.sucursal.nit,
};
const conn = await impuestosContin.verificarComunicacion();
if (conn === 66) {
const validacion = await impuestosContin.validacionRecepcionPaqueteFacturaElectronicaContingencia(params);
console.log(validacion)
console.log("---------------------------------------------------------------------------------")
if (!validacion.transaccion) {
//buscar facturas observadas y cambiarlas
var obs = await app.dao.venta.buscarIdsObs(validacion.listaErroresDetalles);
var mensajesObs = await app.dao.catalogo.getError(1, obs.errores.map(val => val.toString()));
const obser = mensajesObs.split('|').map(val => ({ observacion: val }));
switch (validacion.codigoEstado) {
case 902: await app.dao.venta.setEstado(obs.ids, 'RECHAZADO', obser);
break;
case 904: await app.dao.venta.setEstado(obs.ids, 'OBSERVADO', obser);
break;
case 901:
break;
default: await app.dao.venta.setEstado(obs.ids, 'INESPERADO', obser);
}
//buscar ids para facturas que no fueron observadas y cambiarlas a estado valido si existen
var vids = await app.dao.venta.buscarIdsVal(facturas.map(f => f.id_venta), obs.ids);
if (vids.length != 0) {
await await app.dao.venta.setValidadoPaquete(vids, validacion.codigoRecepcion);
}
throw { code: recepcion.codigoEstado, mesasge: mensajesObs };
}
if (validacion.codigoEstado === 908) {
await app.dao.venta.setValidadoPaquete(facturas.map(f => f.id_venta), validacion.codigoRecepcion);
}
} else {
throw Error(await app.dao.catalogo.getError(facturas[0].fid_punto_venta, conn.toString()));
}
} catch (error) {
// Eventos significativos
await app.dao.error(error, facturas[0].fecha_emision, facturas[0].fid_punto_venta, 'system');
}
t = await app.db.sequelize.transaction();
const puntos = await models.punto_venta.findAll({
where: {
estado: 'ACTIVO'
},
transaccion: t
}).then(res => res.map(val => val.toJSON()));
for (let i = 0; i < puntos.length; i++) {
await app.dao.contingencia.validarFacturaPaqueteContin(puntos[i].id_punto_venta, t);
}
await t.commit();
} catch (error) {
await logs(models.logs).error(error.message, error.name, error, 'system');
await t.rollback();
}
if (runValidarPaqueteContin) {
setTimeout(validarFacturaPaqueteContin, 3000);
......@@ -530,7 +489,7 @@ module.exports = (app) => {
if (runSalud) {
setTimeout(testSalud, 1800000);
} else {
cola.dispatchEvent('stopValidar');
cola.dispatchEvent('stopSalud');
}
}
......@@ -596,14 +555,14 @@ module.exports = (app) => {
});
}
function stopTestConnection() {
/* function stopTestConnection() {
return new Promise(resolve => {
runTestConnection = false;
cola.setEventListener('stopTestConnection', function () {
resolve();
});
});
}
}
function stopValidarPaquete() {
return new Promise(resolve => {
......@@ -612,11 +571,11 @@ module.exports = (app) => {
resolve();
});
});
}
}*/
function stopEnviarContingencia() {
return new Promise(resolve => {
runValidarPaquete = false;
runEnviarContingencia = false;
cola.setEventListener('stopEnviarContingencia', function () {
resolve();
});
......@@ -625,7 +584,7 @@ module.exports = (app) => {
function stopValidarContin() {
return new Promise(resolve => {
runValidarPaquete = false;
runValidarContingencia = false;
cola.setEventListener('stopValidarContin', function () {
resolve();
});
......@@ -634,7 +593,7 @@ module.exports = (app) => {
function stopValidarPaqueteContin() {
return new Promise(resolve => {
runValidarPaquete = false;
runValidarPaqueteContin = false;
cola.setEventListener('stopValidarPaqueteContin', function () {
resolve();
});
......@@ -648,6 +607,14 @@ module.exports = (app) => {
});
});
}
function stopSalud() {
return new Promise(resolve => {
runSalud = false;
cola.setEventListener('stopSalud', function () {
resolve();
});
});
}
function stop() {
const promises = [];
......@@ -663,24 +630,27 @@ module.exports = (app) => {
if (runValidarPaquete) {
promises.push(stopValidarFacturaPaquete());
}
if (runTestConnection) {
/* if (runTestConnection) {
promises.push(stopTestConnection());
}
}
if (runValidarPaquete) {
promises.push(stopValidarPaquete());
}
}*/
if (runEnviarContingencia) {
promises.push(stopEnviarContingencia());
}
if (runValidarContingencia) {
promises.push(stopValidarContin());
}
if (runValidarPaquete) {
if (runValidarPaqueteContin) {
promises.push(stopValidarPaqueteContin());
}
if (runValidarMasiva) {
promises.push(stopValidarMasiva());
}
if (runSalud) {
promises.push(stopSalud());
}
return Promise.all(promises);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment