From 4858c12a4cdd4f1c87e878607aed6596d89481e9 Mon Sep 17 00:00:00 2001 From: PABLINUX Date: Thu, 23 Mar 2023 03:48:00 -0500 Subject: [PATCH] render de items en pedidos --- src/controladores/controlador_Items.js | 18 ++++ src/public/css/dash_mesero.css | 73 +++++++++++++++- src/public/js/app_restaurant.js | 19 +++- src/public/js/app_restaurant_tabGen.js | 115 ++++++++++++++++--------- src/rutas/rt_items.js | 1 + src/views/app_restaurant.ejs | 12 +-- 6 files changed, 189 insertions(+), 49 deletions(-) diff --git a/src/controladores/controlador_Items.js b/src/controladores/controlador_Items.js index aefa36d..43eb812 100644 --- a/src/controladores/controlador_Items.js +++ b/src/controladores/controlador_Items.js @@ -241,4 +241,22 @@ controlador.cat_json = (req, res) => { //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; diff --git a/src/public/css/dash_mesero.css b/src/public/css/dash_mesero.css index b905b56..fa88d00 100644 --- a/src/public/css/dash_mesero.css +++ b/src/public/css/dash_mesero.css @@ -53,6 +53,7 @@ .cardBoxDash .card_cat .card_nombre { color: #999; + margin-bottom: 5px; } .cardBoxDash .card_cat .iconBox { @@ -67,8 +68,12 @@ .dash_titulo a { display: none; } +.dash_opciones{ + display: inline; + align-items: baseline +} -.dash_titulo input { +#observacion{ width: 100%; color: #000; } @@ -137,7 +142,7 @@ height: 30px; cursor: pointer; } -.bt_salir{ +#btnMenu_salir{ margin-top: 10px; } .bt_nueva{ @@ -147,6 +152,47 @@ margin: 5px 11px 10px 15px; 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-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; + } } \ No newline at end of file diff --git a/src/public/js/app_restaurant.js b/src/public/js/app_restaurant.js index b2df8d5..b7d5d37 100644 --- a/src/public/js/app_restaurant.js +++ b/src/public/js/app_restaurant.js @@ -44,7 +44,7 @@ async function mostrar_form(nombre_form_aRender){ break; } } - +//metodos de consultas asincronas async function get_json(url) { var data; await fetch(url, { @@ -77,6 +77,23 @@ async function get_html(url) { err => console.log('Solicitud fallida', err) ); // 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) { let contenedor = document.getElementById('contenido'); diff --git a/src/public/js/app_restaurant_tabGen.js b/src/public/js/app_restaurant_tabGen.js index d8e59db..1732ade 100644 --- a/src/public/js/app_restaurant_tabGen.js +++ b/src/public/js/app_restaurant_tabGen.js @@ -1,4 +1,4 @@ -let num_mesa,mesa_nom; +let num_mesa, mesa_nom; async function generaTab_pedidos(json, heder_tab) { var tab = ` @@ -74,12 +74,12 @@ async function generaTab_usuarios(json) { return tab; } async function generaCard_mesas(json) { - var td,std; + var td, std; var thead = "IDMESASOBSERVACIONEstado"; var tab = `
-

Usuarios

+

Selecionar Origen para crear el Pedido

${thead}`; for (let key in json) { @@ -103,15 +103,15 @@ async function generaCard_mesas(json) { //console.log(json); return tab; } -function comprovar_mesa(id,nombre,std){ +function comprovar_mesa(id, nombre, std) { num_mesa = id; mesa_nom = nombre; - if(std=='LIBRE'){ + if (std == 'LIBRE') { mostrar_form('dashboard_mesero'); - }else if(std=='OCUPADA'){ + } else if (std == 'OCUPADA') { alert("Mesa Ocupada"); } - + } async function generaCard_platosMenu(json) { var std = "ACTIVO"; @@ -140,6 +140,7 @@ async function generaCard_platosMenu(json) { } async function dashboard_mesero(json_cat) { + var render_items = '
'; var thead = ""; var card_cat = `
@@ -148,10 +149,8 @@ async function dashboard_mesero(json_cat) {
`; console.log("menu creado"); for (let key in json_cat) { - let fila = `
-
-
${json_cat[key].nom_categoria}
-
+ let fila = `
+
${json_cat[key].nom_categoria}
@@ -161,18 +160,21 @@ async function dashboard_mesero(json_cat) { var panel_pedido = `
- Mesa: ${mesa_nom} Pedidos N# - - -
-
- - - - - - +
+ Mesa: ${mesa_nom} Pedidos N# + + +
+
+ + + + + + +
+
CantidadArticuloPrecio + IVA
${thead}
@@ -190,7 +192,9 @@ async function dashboard_mesero(json_cat) { `; - return `
${card_cat}
${panel_pedido}`; + return `
${card_cat}
+
Menu Disponible
+ ${render_items}${panel_pedido}`; } //funcion para crear boton tipo burbuja flotante @@ -203,31 +207,62 @@ function ir_a(ruta) { switch (ruta) { case "generar_menu": genera_menu(); break; - case "generar_menu": + case "add_pedido": mostrar_form('mesas'); break; } console.log(ruta); } -function verDetalle(std){ +function verDetalle(std) { console.log(std); - if(std){ - document.getElementById('ver_cat').style.display='none'; - document.getElementById('ver_detalle').style.display='block'; + if (std) { + document.getElementById('ver_cat').style.display = 'none'; + document.getElementById('ver_detalle').style.display = 'block'; console.log(std); - }else{ - document.getElementById('ver_cat').style.display='block'; - document.getElementById('ver_detalle').style.display='none'; + } else { + document.getElementById('ver_cat').style.display = 'block'; + document.getElementById('ver_detalle').style.display = 'none'; } - + } var bt_avatar = document.getElementById('user_avatar'); -bt_avatar.addEventListener('click',function(){ - var menu = document.getElementById('menu_userAvatar');// = 'block'; - if(menu.style.display == 'block'){ - menu.style.display='none'; - }else if(menu.style.display == 'none'){ - menu.style.display='block'; - }else{ - menu.style.display='block'; +bt_avatar.addEventListener('click', function () { + var menu = document.getElementById('menu_userAvatar');// = 'block'; + if (menu.style.display == 'block') { + menu.style.display = 'none'; + } else if (menu.style.display == 'none') { + menu.style.display = 'block'; + } else { + 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 = ` +
+
+
${json[key].nombre}
+
+
+
$ ${json[key].precio}
+
+ ${json[key].nombre} +
+
+ +
+ `; + 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"); }); \ No newline at end of file diff --git a/src/rutas/rt_items.js b/src/rutas/rt_items.js index f605314..70aece1 100644 --- a/src/rutas/rt_items.js +++ b/src/rutas/rt_items.js @@ -24,6 +24,7 @@ rutas.get('/cierresCaja/', controladorItems.cierresCaja);//ver productos en modo rutas.post('/json', controladorItems.json);//ver menu en modo json //APP_SIGMA consultas categorias 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 rutas.get('/consultaItemsPrecios/', controladorItems.app_consultaItemsPrecios);//ver productos en modo json/post diff --git a/src/views/app_restaurant.ejs b/src/views/app_restaurant.ejs index 1ad56be..30a9d09 100644 --- a/src/views/app_restaurant.ejs +++ b/src/views/app_restaurant.ejs @@ -109,27 +109,27 @@