Agregado toping en los menus

This commit is contained in:
Pablinux
2025-05-25 12:10:15 -05:00
parent c7aabd4d1f
commit 0b8549c63c
53 changed files with 3235 additions and 2916 deletions

View File

@@ -5,13 +5,12 @@ const config = {
user: 'admin',
pswd: 'Dx.1706%',
db_a: 'TELCOTRONICS',
//db_a: 'facturacion',
debg: false,
sock: '/'
},
dir:{
root_dir: '/home/pablinux/Projects/Node/APP-SIGMA-WEB/src/public/files/',
path_dir: __dirname,
path_dir: process.cwd(), // usa el path del ejecutable real
},
sesion:{
id:"",
@@ -22,7 +21,7 @@ const config = {
},
sessionStorage:{
secretSession: "Microbot%",
cockie:false,//se envia por https
cookie: false // CORREGIDO
},
origin:{
whiteList : ['https://factura-e.net','https://app.factura-e.net'],
@@ -34,6 +33,6 @@ const config = {
server:{
port:3001
}
}
module.exports = config;
module.exports = config;

View File

@@ -1,5 +1,5 @@
const controlador = {};
const axios = require('axios').default;
//const axios = require('axios').default;
controlador.verClientesJsonApp = (req, res) => {
req.getConnection((err, conn) => {
@@ -173,35 +173,59 @@ controlador.buscarCli_sri = (req, res) => {
switch (selc) {
case 0:
axios.post(arrayUrl[selc] + "?ruc=" + idCli)
.then(function (resp_sri) {
//console.log(resp_sri.data);
//var consulta = {"resp_consulta":resp_sri};
var json = { nombre: "NOMBRE", empresa: "empresa", direccion: "Santo Domingo" };
var consulta = { "resp_consulta": json };
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:
axios({
fetch(arrayUrl[selc] + "?ID_CLIENTE=" + idCli, {
method: 'POST',
url: arrayUrl[selc]+"?ID_CLIENTE="+idCli,
})
.then(function (resp_sri) {
console.log(resp_sri.data);
res.json(resp_sri.data);
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:
axios.post(arrayUrl[selc] + "?ruc=" + idCli)
fetch(arrayUrl[selc] + "?ruc=" + idCli, {
method: 'POST', // fetch por defecto es GET, así que especificamos POST
})
.then(function (resp_sri) {
console.log(resp_sri.data);
var data_toArray = resp_sri.data;
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] };
//var consulta = {"resp_consulta":json};
res.json(obj_json);
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;
@@ -235,34 +259,44 @@ controlador.api_consultaCliente = (req, res) => {
console.log("Encontrado en Servidor Local:");
res.json(rows);
} else {
axios.post(arrayUrl[1] + "?ID_CLIENTE=" + idCli)
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_sri.data);
var resp = resp_sri.data;
if(resp.length > 0){
var obj_json = {
nombre: resp[0].CLI_NOMBRE,
nombre_comercial: resp[0].CLI_NOMBRE,
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:"", telefono:
resp[0].CLI_TELEFONOS,
email: resp[0].CLI_EMAIL };
res.json([obj_json]);
}else{
res.json({"RESP":"DATA NO ENCONTRADA"});
//axios.post(arrayUrl[1] + "?ID_CLIENTE=" + idCli).then(function (resp_sri) {});
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.log(err);
})
.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){
/*async function consulta_clientes(idCli) {
if (false) {
axios.post(arrayUrl[1] + "?ID_CLIENTE=" + idCli)
.then(function (resp_sri) {
console.log("Encontrado en Servidor SRI:");
@@ -277,7 +311,7 @@ async function consulta_clientes(idCli) {
console.log(err);
});
}
}
}*/
module.exports = controlador;

View File

@@ -1,5 +1,5 @@
const controlador = {};
const axios = require('axios').default;
//const axios = require('axios').default;
const jwt = require('jsonwebtoken');
const config = require('../config');
const { base64encode, base64decode } = require('nodejs-base64');

View File

@@ -133,7 +133,8 @@ controlador.guardarItems = (req, res) => {
let json = JSON.parse(data.json_item);
//let json = parse.Items;
//console.log(json.length);
for (var i = 0; i < json.length; i++) {
//solucion cancelado
/*for (var i = 0; i < json.length; i++) {
var item = json[i];
//console.log(item);
@@ -142,7 +143,17 @@ controlador.guardarItems = (req, res) => {
console.log(item);
});//set ? => data
});
}
}*/
//solucion sujerida por IA
req.getConnection((err, conn) => {
for (let i = 0; i < json.length; i++) {
conn.query('INSERT INTO productos_cloud set ?', [json[i]], (err, rows) => {
// opcional: manejo de error
console.log("Si no funciona aqui esta el error");
});
}
});
res.json("'resp':'ok'");
};

View File

@@ -338,7 +338,9 @@
gap: 20px;
margin-top: 30px;
}
#toping{
font-size: 9px;
}
.texto_obsv {

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -31,7 +31,10 @@ function render_tabla_items(lista_items) {
let fila = `<tr>
<td>${lista_items[key].codigo}</td>
<td>${lista_items[key].cantidad}</td>
<td>${lista_items[key].nombre}</td>
<td>
<div>${lista_items[key].nombre}</div>
<span id="toping">${lista_items[key].toping}</span>
</td>
<td>${Number(lista_items[key].precio).toFixed(2)}</td>
<td>
<div class="estado ACTIVO label_text" onclick="add_toping('${lista_items[key].codigo}')">
@@ -111,7 +114,7 @@ function add_toping(cod) {
<div class="topping_container">
<div class="select_topping">
<select>
<option value="Término Crudo">Término Crudo</option>
<option value="Opcion">Término Crudo</option>
<option value="Término Medio">Término Medio</option>
<option value="Término Casi Cocido">Término Casi Cocido</option>
</select>
@@ -140,8 +143,11 @@ function add_topingLista(codItems) {
pos = lista_items.indexOf(element);//posicion del vector
element.toping = topin_obs;
console.log("Agregando Tp: " + topin_obs);
// Parámetros de splice: (índice_inicio, cantidad_a_eliminar, elementos_a_añadir...)
lista_items.splice(pos, 1,element);
}
});
// Parámetros de splice: (índice_inicio, cantidad_a_eliminar, elementos_a_añadir...)
//lista_items.splice(pos, 1);
render_tabla_items(lista_items);
window.dialog.close();
@@ -192,7 +198,7 @@ function enviar_pedidoLista() {
precio: lista_items[key].precio,
descuento: "0", // valor fijo
gp_precio: lista_items[key].grupo_precio,
topings: "Agregado un toping de prueba",
topings: lista_items[key].toping ? lista_items[key].toping : "",
}
itemCart.push(obj_item);
}
@@ -203,7 +209,7 @@ function enviar_pedidoLista() {
"estado": "ACTIVO",
"valor": document.getElementById("total").innerText,
"iva": document.getElementById("iva").innerText,
"plataforma": "WEB-MOVIL",
"plataforma": "WEB-MOVIL RESTAURANT",
"items": itemCart,
"origen": mesa_nom,
};

View File

@@ -96,7 +96,7 @@
</label>
</div>
<div class="user" id="user_avatar">
<img src="../img/usuario2.jpeg" alt="usr">
<img src="../img/usuario-icon.png" alt="usr">
</div>
</div>
<!---******** CONTENIDO PARA RENDERIZAR ********--->