435 lines
15 KiB
JavaScript
435 lines
15 KiB
JavaScript
const controlador = {};
|
|
//const axios = require('axios').default;
|
|
|
|
controlador.verClientesJsonApp = (req, res) => {
|
|
req.getConnection((err, conn) => {
|
|
conn.query('SELECT client_rucCed, client_nombre, client_direccion, client_celular, client_email FROM clientes order by client_id DESC LIMIT 100', (err, rows) => {//se obtiene error o consulta filas(rows)
|
|
//conn.query('SELECT * FROM clientes LIMIT 62668,15', (err, rows) => {//se obtiene error o consulta filas(rows)
|
|
if (err) {
|
|
res.json(err);
|
|
//next(err);
|
|
}
|
|
//console.log(rows);
|
|
var client = { Clientes: rows };
|
|
res.json(client);
|
|
//res.render('clientesV',{ data:rows });
|
|
});
|
|
//conn.end();
|
|
});
|
|
};
|
|
|
|
controlador.ver = (req, res) => {
|
|
req.getConnection((err, conn) => {
|
|
conn.query('SELECT * FROM clientes order by client_id DESC LIMIT 50', (err, rows) => {//se obtiene error o consulta filas(rows)
|
|
//conn.query('SELECT * FROM clientes LIMIT 62668,15', (err, rows) => {//se obtiene error o consulta filas(rows)
|
|
if (err) {
|
|
res.json(err);
|
|
//next(err);
|
|
}
|
|
//console.log(rows);
|
|
res.render('clientesV', {
|
|
data: rows
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
controlador.verClientJson = (req, res) => {
|
|
console.log(req.params);
|
|
const idCl = req.params.client_rucCed;
|
|
req.getConnection((err, conn) => {
|
|
conn.query('SELECT * FROM clientes WHERE client_rucCed = ?', [idCl], (err, rows) => {
|
|
res.json(rows);
|
|
//res.render('clientesV',{ data:rows });
|
|
});
|
|
});
|
|
};
|
|
|
|
controlador.verClientJsonPost = (req, res) => {
|
|
console.log(req.body);//requerimiento
|
|
const dato = req.body;
|
|
res.send('working...');
|
|
res.redirect("/");
|
|
//const idCl = req.params.client_rucCed;
|
|
/*req.getConnection((err, conn) => {
|
|
conn.query('SELECT * FROM clientes WHERE client_rucCed = ?',[dato],(err,rows)=>{
|
|
res.json(rows);
|
|
//res.render('clientesV',{ data:rows });
|
|
});
|
|
});*/
|
|
};
|
|
|
|
controlador.verClientForm = (req, res) => {
|
|
//console.log(req.params);
|
|
//const idCl = req.params.client_rucCed;
|
|
const { client_rucCed } = req.params;
|
|
req.getConnection((err, conn) => {
|
|
conn.query('SELECT * FROM clientes WHERE client_rucCed = ?', [client_rucCed], (err, rows) => {
|
|
if (err) {
|
|
res.json(err);
|
|
//next(err);
|
|
}
|
|
console.log(rows);
|
|
res.render('clientesV', {
|
|
data: rows
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
//***Nuevos Clientes***//
|
|
controlador.verFormNclientes = (req, res) => {
|
|
console.log('form nuevo cliente');
|
|
res.render('clienteNuevo');
|
|
};
|
|
controlador.guardaCliente = (req, res) => {
|
|
console.log(req.body);
|
|
const data = req.body;
|
|
req.getConnection((err, conn) => {
|
|
conn.query('INSERT INTO clientes set ?', [data], (err, rows) => {
|
|
if (err) {
|
|
next(res.json(err));
|
|
} else {
|
|
console.log(rows);
|
|
//res.send('working...');
|
|
res.redirect('/clientes');//redireciona a la ruta inical de la app
|
|
}
|
|
});//set ? => data
|
|
});
|
|
};
|
|
|
|
controlador.VerClienteA_Modificar = (req, res) => {
|
|
const { client_id } = req.params;
|
|
req.getConnection((err, conn) => {
|
|
conn.query('SELECT * FROM clientes WHERE client_id = ?', [client_id], (err, rows) => {
|
|
console.log(rows);
|
|
res.render('clientesEdit', {
|
|
data: rows[0]
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
controlador.modificaCliente = (req, res) => {
|
|
const { client_id } = req.params;
|
|
const nCliente = req.body;
|
|
|
|
req.getConnection((err, conn) => {
|
|
conn.query('UPDATE clientes SET ? WHERE client_id = ?', [nCliente, client_id], (err, rows) => {
|
|
console.log(rows);
|
|
res.redirect("/");
|
|
//res.render('clientesEdit',{ data: rows[0] });
|
|
});
|
|
});
|
|
};
|
|
|
|
controlador.eliminarCliente = (req, res) => {
|
|
//console.log(req.params.client_id);
|
|
//const id = req.params.client_id;
|
|
const { client_id } = req.params;
|
|
//res.send('Eliminar ');
|
|
req.getConnection((err, conn) => {
|
|
conn.query('DELETE FROM clientes WHERE client_id=?', [client_id], (err, rows) => {
|
|
res.redirect('/');//redireciona a la ruta inical de la app
|
|
});
|
|
});
|
|
}
|
|
|
|
/**** Listar miembros *****/
|
|
controlador.listarMiembros = (req, res) => {
|
|
req.getConnection((err, conn) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error de conexión' });
|
|
}
|
|
|
|
conn.query('SELECT * FROM miembros ORDER BY nombre ASC', (err, miembros) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error al consultar miembros' });
|
|
}
|
|
res.json(miembros);
|
|
});
|
|
});
|
|
};
|
|
|
|
/**** Obtener miembro para edición (ahora vía /api/miembros/:id) *****/
|
|
controlador.editarMiembro = (req, res) => {
|
|
const { id } = req.params; // *** MODIFICADO: id ahora viene de req.params ***
|
|
req.getConnection((err, conn) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error de conexión' });
|
|
}
|
|
|
|
conn.query('SELECT * FROM miembros WHERE id = ?', [id], (err, miembro) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error al consultar miembro' });
|
|
}
|
|
if (miembro.length === 0) {
|
|
return res.status(404).json({ error: 'Miembro no encontrado' });
|
|
}
|
|
res.json(miembro[0]);
|
|
});
|
|
});
|
|
};
|
|
|
|
/**** Guardar/Crear nuevo miembro (vía POST /api/miembros) *****/
|
|
controlador.guardarMiembro = (req, res) => {
|
|
const miembro = req.body; // Obtener los datos del miembro desde el cuerpo de la solicitud
|
|
req.getConnection((err, conn) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error de conexión' });
|
|
}
|
|
|
|
conn.query('INSERT INTO miembros SET ?', miembro, (err, result) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error al guardar miembro' });
|
|
}
|
|
res.status(201).json({ id: result.insertId, ...miembro, message: 'Miembro creado exitosamente' }); // 201 Created
|
|
});
|
|
});
|
|
};
|
|
|
|
/**** Actualizar miembro existente (vía PUT /api/miembros/:id) *****/
|
|
controlador.actualizarMiembro = (req, res) => {
|
|
const { id } = req.params; // *** MODIFICADO: id ahora viene de req.params ***
|
|
const miembroActualizado = req.body; // Obtener los datos actualizados del miembro desde el cuerpo de la solicitud
|
|
req.getConnection((err, conn) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error de conexión' });
|
|
}
|
|
|
|
conn.query('UPDATE miembros SET ? WHERE id = ?', [miembroActualizado, id], (err, result) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error al actualizar miembro' });
|
|
}
|
|
if (result.affectedRows === 0) {
|
|
return res.status(404).json({ error: 'Miembro no encontrado' });
|
|
}
|
|
res.json({ message: 'Miembro actualizado exitosamente' });
|
|
});
|
|
});
|
|
};
|
|
|
|
/**** Eliminar miembro (vía DELETE /api/miembros/:id) *****/
|
|
controlador.eliminarMiembro = (req, res) => {
|
|
const { id } = req.params; // *** MODIFICADO: id ahora viene de req.params ***
|
|
req.getConnection((err, conn) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error de conexión' });
|
|
}
|
|
|
|
conn.query('DELETE FROM miembros WHERE id = ?', [id], (err, result) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error al eliminar miembro' });
|
|
}
|
|
if (result.affectedRows === 0) {
|
|
return res.status(404).json({ error: 'Miembro no encontrado' });
|
|
}
|
|
res.json({ message: 'Miembro eliminado exitosamente' });
|
|
});
|
|
});
|
|
};
|
|
|
|
/**
|
|
* controlador para obtener las ciudades de la base de datos
|
|
* @param {*} req
|
|
* @param {*} res
|
|
*/
|
|
controlador.obtenerCiudades = (req, res) => {
|
|
req.getConnection((err, conn) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error de conexión' });
|
|
}
|
|
|
|
conn.query(
|
|
'SELECT id_ciudad, nombre, perteneceA FROM localizacion_ciudad ORDER BY nombre ASC',
|
|
(err, ciudades) => {
|
|
if (err) {
|
|
return res.status(500).json({ error: 'Error al consultar ciudades' });
|
|
}
|
|
res.json(ciudades);
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
//********* CONSULTA CLIENTES APP-SIGMA********//
|
|
controlador.app_pedidos_clientes = (req, res) => {
|
|
const consulta = "%" + req.query.consulta + "%";
|
|
//let data = req.stringify;
|
|
console.log(req.query);
|
|
|
|
//const codItem = req.params.consulta;
|
|
req.getConnection((err, conn) => {
|
|
//codigo_prdcto
|
|
//conn.query('SELECT codigo_prdcto,detalle_prdcto,describe_prdcto FROM productos WHERE detalle_prdcto like ? or describe_prdcto like ?',[item,item],(err,rows)=>{
|
|
conn.query(`SELECT client_rucCed,client_nombre,client_direccion,client_celular,client_email FROM clientes WHERE client_nombre like ? or client_rucCed like ?`, [consulta, consulta], (err, rows) => {
|
|
//res.json(rows);
|
|
res.json(rows);
|
|
console.log(err);
|
|
//res.render('clientesV',{ data:rows });
|
|
});
|
|
});
|
|
};
|
|
|
|
//CONSULTA CLIENTE CLOUD C.I-RUC => ruta:/busquedaSRI
|
|
var data_url0 = 'http://www.ecuadorlegalonline.com/modulo/sri/consulta-ruc/ruc.api.php';
|
|
var data_url1 = "https://siax-system.net/app/clientes_cloud.php";
|
|
var data_url2 = "http://sheyla2.dyndns.info/SRI/SRI.php";
|
|
var data_url3 = "http://192.168.10.100:8000/test_post";
|
|
var arrayUrl = [
|
|
"http://www.ecuadorlegalonline.com/modulo/sri/consulta-ruc/ruc.api.php",
|
|
"https://siax-system.net/api/clientes_cloud.php",
|
|
"http://sheyla2.dyndns.info/SRI/SRI.php",
|
|
"http://192.168.10.100:8000/test_post",
|
|
"solo testing"
|
|
];
|
|
controlador.buscarCli_sri = (req, res) => {
|
|
var idCli = req.query.ID_CLIENTE;
|
|
console.log(`Peticion => Consulta RUC: ${idCli}`);
|
|
let selc = 1;
|
|
|
|
switch (selc) {
|
|
case 0:
|
|
fetch(arrayUrl[selc] + "?ruc=" + idCli, {
|
|
method: 'POST',
|
|
})
|
|
.then(resp => resp.text()) // Si esperas JSON, usa .json() en su lugar
|
|
.then(data => {
|
|
// Aquí puedes usar la respuesta real si lo deseas: console.log(data);
|
|
|
|
const json = { nombre: "NOMBRE", empresa: "empresa", direccion: "Santo Domingo" };
|
|
const consulta = { "resp_consulta": json };
|
|
res.json(json);
|
|
})
|
|
.catch(error => {
|
|
console.error("Error al hacer fetch:", error);
|
|
res.status(500).json({ error: 'Error al consultar servicio remoto' });
|
|
});
|
|
break;
|
|
case 1:
|
|
fetch(arrayUrl[selc] + "?ID_CLIENTE=" + idCli, {
|
|
method: 'POST',
|
|
})
|
|
.then(function (resp_sri) {
|
|
return resp_sri.json(); // Parsea la respuesta como JSON
|
|
})
|
|
.then(function (data) {
|
|
console.log(data);
|
|
// Asumiendo que 'res' es el objeto de respuesta de Express o similar,
|
|
// puedes enviarle los datos directamente.
|
|
// Si 'res' no está disponible en este contexto, necesitarás ajustar esta línea.
|
|
// Por ejemplo, si estás en el lado del cliente, solo necesitarías 'console.log(data)'.
|
|
res.json(data);
|
|
})
|
|
.catch(function (error) {
|
|
console.error('Hubo un problema con la petición Fetch:', error);
|
|
});
|
|
break;
|
|
case 2:
|
|
fetch(arrayUrl[selc] + "?ruc=" + idCli, {
|
|
method: 'POST', // fetch por defecto es GET, así que especificamos POST
|
|
})
|
|
.then(function (resp_sri) {
|
|
return resp_sri.text(); // Usamos .text() porque la respuesta se va a dividir por '***'
|
|
})
|
|
.then(function (data_toArray) {
|
|
console.log(data_toArray);
|
|
let arr = data_toArray.split('***');
|
|
console.log(arr);
|
|
var obj_json = { nombre: arr[1], empresa: arr[2], direccion: arr[9] };
|
|
res.json(obj_json); // Enviamos el JSON al cliente
|
|
})
|
|
.catch(function (error) {
|
|
console.error('Hubo un problema con la petición Fetch:', error);
|
|
// Podrías enviar un error al cliente si 'res' está disponible
|
|
// res.status(500).send('Error en la consulta');
|
|
});
|
|
break;
|
|
|
|
case 4:
|
|
var json = { nombre: "NOMBRE", empresa: "empresa", direccion: "Santo Domingo" };
|
|
var consulta = { "resp_consulta": json };
|
|
res.json(json);
|
|
break;
|
|
default:
|
|
}
|
|
// conectarme a SRI FALSO
|
|
/*axios.post(data_url,{
|
|
data: {
|
|
func:'GETDATA',
|
|
ruc:numeroruc
|
|
}
|
|
}).then(function(res) {
|
|
console.log(res.data);
|
|
});*/
|
|
}
|
|
|
|
controlador.api_consultaCliente = (req, res) => {
|
|
//ejemplo de consumo api: http://localhost:3001/api_consultaClientes?id=0701637498001
|
|
var idCli = req.query.id;
|
|
//console.log(req.query.id);
|
|
console.log(`Peticion => Consulta ID: ${idCli}`);
|
|
req.getConnection((err, conn) => {
|
|
conn.query('SELECT client_nombre as nombre,client_razonSocial as nombre_comercial,client_Ciudad as ciudad,client_direccion as direccion,IFNULL(client_celular,client_telefono) as telefono,client_email as email FROM clientes WHERE client_rucCed = ?', [idCli], (err, rows) => {
|
|
//conn.query('SELECT * FROM clientes WHERE client_rucCed = ?',[idCli],(err,rows)=>{
|
|
if (rows.length > 0) {
|
|
console.log("Encontrado en Servidor Local:");
|
|
res.json(rows);
|
|
} else {
|
|
fetch(arrayUrl[1] + "?ID_CLIENTE=" + idCli, {
|
|
method: 'POST', // Especificamos el método POST
|
|
})
|
|
.then(function (resp_sri) {
|
|
// Si esperamos un array de objetos JSON, usamos .json()
|
|
return resp_sri.json();
|
|
})
|
|
.then(function (resp) {
|
|
console.log("Encontrado en Servidor SRI:");
|
|
console.log(resp);
|
|
|
|
if (resp.length > 0) {
|
|
var obj_json = {
|
|
nombre: resp[0].CLI_NOMBRE,
|
|
nombre_comercial: resp[0].CLI_NOMBRE, // Se mantiene si es el mismo valor
|
|
direccion: resp[0].CLI_DIRECCION,
|
|
ciudad: "", // Este campo parece venir vacío, se mantiene
|
|
telefono: resp[0].CLI_TELEFONOS,
|
|
email: resp[0].CLI_EMAIL
|
|
};
|
|
res.json([obj_json]); // Enviamos un array con el objeto JSON
|
|
} else {
|
|
res.json({ "RESP": "DATA NO ENCONTRADA" });
|
|
// La línea comentada de Axios que hacía otra petición sin efecto se omite aquí.
|
|
}
|
|
})
|
|
.catch(function (err) {
|
|
console.error("Hubo un error con la petición Fetch:", err);
|
|
// Puedes enviar un error al cliente si lo consideras necesario, por ejemplo:
|
|
// res.status(500).json({ "RESP": "ERROR EN EL SERVIDOR" });
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
/*async function consulta_clientes(idCli) {
|
|
if (false) {
|
|
axios.post(arrayUrl[1] + "?ID_CLIENTE=" + idCli)
|
|
.then(function (resp_sri) {
|
|
console.log("Encontrado en Servidor SRI:");
|
|
console.log(resp_sri.data);
|
|
var data_toArray = resp_sri.data;
|
|
let arr = data_toArray.split('***');
|
|
//console.log(arr);
|
|
var obj_json = { nombre: arr[1], nombre_comercial: arr[2], direccion: arr[5], telefono: "", email: "" };
|
|
console.log(obj_json);
|
|
res.json(obj_json);
|
|
}).catch(function (err) {
|
|
console.log(err);
|
|
});
|
|
}
|
|
}*/
|
|
|
|
|
|
module.exports = controlador;
|