render de items en pedidos

This commit is contained in:
2023-03-23 03:48:00 -05:00
parent 639e1c6bd8
commit 4858c12a4c
6 changed files with 189 additions and 49 deletions

View File

@@ -241,4 +241,22 @@ controlador.cat_json = (req, res) => {
//conn.end(); //conn.end();
}); });
} }
controlador.item_xCat = (req, res) => {
const catg = req.params;
console.log(catg);
req.getConnection((err, conn) => {
conn.query('select * from ver_inventario_precios_app where categoria = ? and grupo_precio = ?', [catg.cat,catg.gpp], (err, rows) => {
rows.map(
dat => {
dat.img = blob_a_b64(dat.img);
}
)
res.json(rows);
console.log(err);
//res.render('clientesV',{ data:rows });
});
});
};
module.exports = controlador; module.exports = controlador;

View File

@@ -53,6 +53,7 @@
.cardBoxDash .card_cat .card_nombre { .cardBoxDash .card_cat .card_nombre {
color: #999; color: #999;
margin-bottom: 5px;
} }
.cardBoxDash .card_cat .iconBox { .cardBoxDash .card_cat .iconBox {
@@ -67,8 +68,12 @@
.dash_titulo a { .dash_titulo a {
display: none; display: none;
} }
.dash_opciones{
display: inline;
align-items: baseline
}
.dash_titulo input { #observacion{
width: 100%; width: 100%;
color: #000; color: #000;
} }
@@ -137,7 +142,7 @@
height: 30px; height: 30px;
cursor: pointer; cursor: pointer;
} }
.bt_salir{ #btnMenu_salir{
margin-top: 10px; margin-top: 10px;
} }
.bt_nueva{ .bt_nueva{
@@ -147,6 +152,47 @@
margin: 5px 11px 10px 15px; margin: 5px 11px 10px 15px;
font-size: 20px; font-size: 20px;
} }
/**** RENDERIZADO DE ITEMS ****/
.content_itemsRender{
position: relative;
width: 100%;
padding: 5px;
display: grid;
grid-template-columns: repeat(3,1fr);
grid-gap: 5px;
}
.content_itemsRender .card{
position: relative;
background: #1f497d;
padding: 14px;
justify-content: space-between;
cursor: pointer;
}
.content_itemsRender .card .card_head{
font-size: 14px;
text-align: center;
}
.content_itemsRender .card .card_body{
display: flex;
}
.content_itemsRender .card .card_body .card_numeros{
font-size: 36px;
width: 110px;
}
.content_itemsRender .card .card_body img{
width: 64px;
height: 64px;
border-radius: 50%;
overflow: hidden;
margin-left: 10px;
}
.content_itemsRender .card .card_footer{
font-size: 8px;
}
/* /*
@@ -227,4 +273,27 @@
grid-gap: 2px; grid-gap: 2px;
grid-template-columns: 23% 40% 15%; grid-template-columns: 23% 40% 15%;
} }
/*RENDER ITEMS X CAT*/
.content_itemsRender{
position: relative;
display: grid;
grid-template-columns: repeat(2,1fr);
}
.content_itemsRender .card{
padding: 5px;
}
.content_itemsRender .card .card_head{
font-size: 12px;
}
.content_itemsRender .card .card_body .card_numeros{
font-size: 22px;
width: 48px;
}
.content_itemsRender .card .card_body img{
width: 64px;
height: 64px;
border-radius: 50%;
overflow: hidden;
margin-left: 10px;
}
} }

View File

@@ -44,7 +44,7 @@ async function mostrar_form(nombre_form_aRender){
break; break;
} }
} }
//metodos de consultas asincronas
async function get_json(url) { async function get_json(url) {
var data; var data;
await fetch(url, { await fetch(url, {
@@ -77,6 +77,23 @@ async function get_html(url) {
err => console.log('Solicitud fallida', err) err => console.log('Solicitud fallida', err)
); // Capturar errores; ); // Capturar errores;
} }
async function post_json(url,params) {
var data;
await fetch(url, {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body:JSON.stringify(params),
})
.then(res => res.json())
.then(res => {
data = res;
return res;
})
.catch(err => console.log('Solicitud fallida', err)); // Capturar errores;
return data;
}
async function render(dat_html) { async function render(dat_html) {
let contenedor = document.getElementById('contenido'); let contenedor = document.getElementById('contenido');

View File

@@ -1,4 +1,4 @@
let num_mesa,mesa_nom; let num_mesa, mesa_nom;
async function generaTab_pedidos(json, heder_tab) { async function generaTab_pedidos(json, heder_tab) {
var tab = ` var tab = `
@@ -74,12 +74,12 @@ async function generaTab_usuarios(json) {
return tab; return tab;
} }
async function generaCard_mesas(json) { async function generaCard_mesas(json) {
var td,std; var td, std;
var thead = "<td>ID</td><td>MESAS</td><td>OBSERVACION</td><td>Estado</td>"; var thead = "<td>ID</td><td>MESAS</td><td>OBSERVACION</td><td>Estado</td>";
var tab = ` var tab = `
<div class="panel_table"> <div class="panel_table">
<div class="panel_header"> <div class="panel_header">
<h2>Usuarios</h2> <h2>Selecionar Origen para crear el Pedido</h2>
</div> </div>
<table><thead><tr>${thead}</tr></thead><tbody>`; <table><thead><tr>${thead}</tr></thead><tbody>`;
for (let key in json) { for (let key in json) {
@@ -103,12 +103,12 @@ async function generaCard_mesas(json) {
//console.log(json); //console.log(json);
return tab; return tab;
} }
function comprovar_mesa(id,nombre,std){ function comprovar_mesa(id, nombre, std) {
num_mesa = id; num_mesa = id;
mesa_nom = nombre; mesa_nom = nombre;
if(std=='LIBRE'){ if (std == 'LIBRE') {
mostrar_form('dashboard_mesero'); mostrar_form('dashboard_mesero');
}else if(std=='OCUPADA'){ } else if (std == 'OCUPADA') {
alert("Mesa Ocupada"); alert("Mesa Ocupada");
} }
@@ -140,6 +140,7 @@ async function generaCard_platosMenu(json) {
} }
async function dashboard_mesero(json_cat) { async function dashboard_mesero(json_cat) {
var render_items = '<div id="container_items" class="content_itemsRender"></div>';
var thead = "<td>Cantidad</td><td>Articulo</td><td>Precio + IVA</td>"; var thead = "<td>Cantidad</td><td>Articulo</td><td>Precio + IVA</td>";
var card_cat = `<div class="dash_panelCategoria" id="ver_cat"> var card_cat = `<div class="dash_panelCategoria" id="ver_cat">
<div class="dash_info_grupoCardBox"> <div class="dash_info_grupoCardBox">
@@ -148,10 +149,8 @@ async function dashboard_mesero(json_cat) {
<div class="dash_grupoCardBox">`; <div class="dash_grupoCardBox">`;
console.log("menu creado"); console.log("menu creado");
for (let key in json_cat) { for (let key in json_cat) {
let fila = `<div class="card_cat"> let fila = `<div class="card_cat btn" onClick="CargaItems('${json_cat[key].nom_categoria}')">
<div class=""> <div>${json_cat[key].nom_categoria}</div>
<div>${json_cat[key].nom_categoria}</div>
</div>
<div class="iconBox"> <div class="iconBox">
<i class="fa fa-cutlery" aria-hidden="true"></i> <i class="fa fa-cutlery" aria-hidden="true"></i>
</div> </div>
@@ -161,18 +160,21 @@ async function dashboard_mesero(json_cat) {
var panel_pedido = ` var panel_pedido = `
<div class="dash_panelDetalle" id="ver_detalle"> <div class="dash_panelDetalle" id="ver_detalle">
<div class="dash_titulo"> <div class="dash_titulo">
<span>Mesa: ${mesa_nom}</span><span> Pedidos N#</span> <div class="">
<a href="#" onclick="verDetalle(false)"><i class="fa fa-eye" aria-hidden="true">Agregar Items</i></a> <span>Mesa: ${mesa_nom}</span><span> Pedidos N#</span>
<input type="text" placeholder="Observaciones" id="observacion"> <a href="#" onclick="verDetalle(false)"><i class="fa fa-eye" aria-hidden="true">Agregar Items</i></a>
</div> <input type="text" placeholder="Observaciones" id="observacion">
<div class=""> </div>
<label for="patio">Servir</label> <div class="dash_opciones">
<input type="radio" id="Servir" name="fav_language" value="Servir" checked> <label for="patio">Servir</label>
<label for="Llevar"> | Llevar</label> <input type="radio" id="Servir" name="fav_language" value="Servir" checked>
<input type="radio" id="Llevar" name="fav_language" value="Llevar"> <label for="Llevar"> | Llevar</label>
<label for="Domicilio"> | Domicilio</label> <input type="radio" id="Llevar" name="fav_language" value="Llevar">
<input type="radio" id="Domicilio" name="fav_language" value="Domicilio"> <label for="Domicilio"> | Domicilio</label>
<input type="radio" id="Domicilio" name="fav_language" value="Domicilio">
</div>
</div> </div>
<div class="card_table"> <div class="card_table">
<table><thead><tr>${thead}</tr></thead><tbody></tbody></table> <table><thead><tr>${thead}</tr></thead><tbody></tbody></table>
</div> </div>
@@ -190,7 +192,9 @@ async function dashboard_mesero(json_cat) {
</div> </div>
</div> </div>
</div>`; </div>`;
return `<div class="dash_container">${card_cat}</div></div>${panel_pedido}</div>`; return `<div class="dash_container">${card_cat}</div>
<div class="dash_info_grupoCardBox">Menu Disponible</div>
${render_items}</div>${panel_pedido}</div>`;
} }
//funcion para crear boton tipo burbuja flotante //funcion para crear boton tipo burbuja flotante
@@ -203,31 +207,62 @@ function ir_a(ruta) {
switch (ruta) { switch (ruta) {
case "generar_menu": genera_menu(); case "generar_menu": genera_menu();
break; break;
case "generar_menu": case "add_pedido": mostrar_form('mesas');
break; break;
} }
console.log(ruta); console.log(ruta);
} }
function verDetalle(std){ function verDetalle(std) {
console.log(std); console.log(std);
if(std){ if (std) {
document.getElementById('ver_cat').style.display='none'; document.getElementById('ver_cat').style.display = 'none';
document.getElementById('ver_detalle').style.display='block'; document.getElementById('ver_detalle').style.display = 'block';
console.log(std); console.log(std);
}else{ } else {
document.getElementById('ver_cat').style.display='block'; document.getElementById('ver_cat').style.display = 'block';
document.getElementById('ver_detalle').style.display='none'; document.getElementById('ver_detalle').style.display = 'none';
} }
} }
var bt_avatar = document.getElementById('user_avatar'); var bt_avatar = document.getElementById('user_avatar');
bt_avatar.addEventListener('click',function(){ bt_avatar.addEventListener('click', function () {
var menu = document.getElementById('menu_userAvatar');// = 'block'; var menu = document.getElementById('menu_userAvatar');// = 'block';
if(menu.style.display == 'block'){ if (menu.style.display == 'block') {
menu.style.display='none'; menu.style.display = 'none';
}else if(menu.style.display == 'none'){ } else if (menu.style.display == 'none') {
menu.style.display='block'; menu.style.display = 'block';
}else{ } else {
menu.style.display='block'; menu.style.display = 'block';
} }
}); });
async function CargaItems(gp_items) {
var card="";
let json = await get_json("/item_xCat/" + gp_items+"&PUBLICO");
console.log(json);
for (let key in json) {
let fila = `
<div class="card">
<div class="card_head">
<div class="card_nombre">${json[key].nombre}</div>
</div>
<div class="card_body">
<div class="card_numeros">$ ${json[key].precio}</div>
<div class="card_iconBox">
<img src="data:image/png;base64,${json[key].img}" alt="${json[key].nombre}" />
</div>
</div>
<div class="card_footer">
<div>${json[key].codigo}</div>
<div>${json[key].descripcion}</div>
</div>
</div>
`;
card = card + fila;
}
let contenedor = document.getElementById('container_items');
contenedor.innerHTML = card;
}
var bt_salir = document.getElementById('btnMenu_salir');
bt_salir.addEventListener('click', function (e) {
console.log("Salir");
});

View File

@@ -24,6 +24,7 @@ rutas.get('/cierresCaja/', controladorItems.cierresCaja);//ver productos en modo
rutas.post('/json', controladorItems.json);//ver menu en modo json rutas.post('/json', controladorItems.json);//ver menu en modo json
//APP_SIGMA consultas categorias //APP_SIGMA consultas categorias
rutas.get('/categorias_json', controladorItems.cat_json);//ver categorias items en modo json rutas.get('/categorias_json', controladorItems.cat_json);//ver categorias items en modo json
rutas.get('/item_xCat/:cat&:gpp', controladorItems.item_xCat);//ver productos x categoria en modo json/post
//APP_SIGMA consultas //APP_SIGMA consultas
rutas.get('/consultaItemsPrecios/', controladorItems.app_consultaItemsPrecios);//ver productos en modo json/post rutas.get('/consultaItemsPrecios/', controladorItems.app_consultaItemsPrecios);//ver productos en modo json/post

View File

@@ -109,27 +109,27 @@
<div class="menu_avatar" id="menu_userAvatar"> <div class="menu_avatar" id="menu_userAvatar">
<ul> <ul>
<li> <li>
<div class="menu_Avatar bt_nueva"> <div class="menu_Avatar bt_nueva" onclick="mostrar_form('mesas')">
<span class="icon"><i class="fa fa-plus"></i></span> <span class="icon"><i class="fa fa-plus"></i></span>
<span class="title"> Nueva Orden</span> <span class="title">Nueva Orden</span>
</div> </div>
</li> </li>
<li> <li>
<div class="menu_Avatar"> <div class="menu_Avatar">
<span class="icon"><i class="fa fa-cog" aria-hidden="true"></i></span> <span class="icon"><i class="fa fa-cog" aria-hidden="true"></i></span>
<span class="title"> Configuracion</span> <span class="title">Configuracion</span>
</div> </div>
</li> </li>
<li> <li>
<div class="menu_Avatar"> <div class="menu_Avatar">
<span class="icon"><i class="fa fa-lock" aria-hidden="true"></i></span> <span class="icon"><i class="fa fa-lock" aria-hidden="true"></i></span>
<span class="title"> Contraseña</span> <span class="title">Contraseña</span>
</div> </div>
</li> </li>
<li> <li>
<div class="menu_Avatar bt_salir"> <div class="menu_Avatar" id="btnMenu_salir">
<span class="icon"><i class="fa fa-sign-out" aria-hidden="true"></i></span> <span class="icon"><i class="fa fa-sign-out" aria-hidden="true"></i></span>
<span class="title"> Cerrar Sesion</span> <span class="title">Cerrar Sesion</span>
</div> </div>
</li> </li>
</ul> </ul>