From c0af5c08ae40904d706a2034bd510d45223a4368 Mon Sep 17 00:00:00 2001 From: Brisa Date: Tue, 30 Jun 2026 14:59:19 -0300 Subject: [PATCH] panel admin: gestion de pedidos --- admin/buscar_clientes.php | 232 +++++++++++++++++ admin/cambiar_estado.php | 18 ++ admin/dashboard.php | 332 ++++++++++++++++++++++++ admin/imprimir_ticket.php | 116 +++++++++ admin/obtener_detalle.php | 70 +++++ admin/pedidos.php | 526 ++++++++++++++++++++++++++++++++++++++ admin/procesar_manual.php | 33 +++ admin/sidebar.php | 43 ++++ admin/ver_detalle.php | 126 +++++++++ 9 files changed, 1496 insertions(+) create mode 100644 admin/buscar_clientes.php create mode 100644 admin/cambiar_estado.php create mode 100644 admin/dashboard.php create mode 100644 admin/imprimir_ticket.php create mode 100644 admin/obtener_detalle.php create mode 100644 admin/pedidos.php create mode 100644 admin/procesar_manual.php create mode 100644 admin/sidebar.php create mode 100644 admin/ver_detalle.php diff --git a/admin/buscar_clientes.php b/admin/buscar_clientes.php new file mode 100644 index 0000000..fb5e0a2 --- /dev/null +++ b/admin/buscar_clientes.php @@ -0,0 +1,232 @@ + 0) { + $query_u = "SELECT id_usuario, nombre FROM usuarios WHERE id_usuario = $usuario_id_fijo"; + $res_u = mysqli_query($conexion, $query_u); + $usuario = mysqli_fetch_assoc($res_u); + $coincidencias_usuarios = [$usuario]; +} else { + $query_u = "SELECT id_usuario, nombre FROM usuarios WHERE id_usuario = '$busqueda' OR nombre LIKE '%$busqueda%'"; + $res_u = mysqli_query($conexion, $query_u); + $coincidencias_usuarios = mysqli_fetch_all($res_u, MYSQLI_ASSOC); +} + +// Buscamos el pedido por ID +$query_p = "SELECT id_pedido, id_usuario FROM pedidos WHERE id_pedido = '$busqueda'"; +$res_p = mysqli_query($conexion, $query_p); +$pedido = mysqli_fetch_assoc($res_p); + +$cantidad_usuarios = count($coincidencias_usuarios); + +$mostrar_decision_bicefala = ($cantidad_usuarios === 1 && $pedido && empty($modo)); + +if ($pedido && $cantidad_usuarios === 0 && empty($modo)) { + header("Location: ver_detalle.php?id=" . $pedido['id_pedido']); + exit(); +} + +// Si solo hubo una coincidencia de usuario y no hay conflicto con ID de pedido, lo marcamos para mostrar directo +$usuario_unico = null; +if ($cantidad_usuarios === 1 && !$mostrar_decision_bicefala) { + $usuario_unico = $coincidencias_usuarios[0]; +} +?> + + + + + Resultados de Búsqueda - La Pecosa + + + + + + + +
+ +

Módulo de Búsqueda

+ + Volver al panel + + +
+
+

Coincidencia doble detectada

+

El número "" pertenece a un ID de Pedido y también al ID del usuario .

+ + +
+ + 1 && $usuario_id_fijo === 0): ?> +
+

Se encontraron clientes

+

Seleccioná el cliente correcto para auditar su historial completo de comandas:

+ + +
+ + 0): + $u_actual = $usuario_unico ?? $coincidencias_usuarios[0]; + ?> +
+
+

+

Historial completo de compras en el local

+
+
+ ID Usuario: # +
+
+ +
+ + + + + + + + + + + + + + 0): + while ($p = mysqli_fetch_assoc($pedidos)): + ?> + + + + + + + + + + + + + +
NRO PedidoFechaDetalle de ProductosMonto TotalDirección de EnvíoTeléfonoEstado Actual
# hs + {$d['producto']} (x{$d['cantidad']})"; + endwhile; + ?> + $
Este usuario no registra pedidos históricos en el sistema.
+
+ + +
+ + No se encontraron clientes ni pedidos registrados asociados a la búsqueda: "" +
+ +
+ + \ No newline at end of file diff --git a/admin/cambiar_estado.php b/admin/cambiar_estado.php new file mode 100644 index 0000000..de5215d --- /dev/null +++ b/admin/cambiar_estado.php @@ -0,0 +1,18 @@ +prepare("UPDATE ajustes SET valor = ? WHERE clave = 'estado_manual'"); + $stmt->bind_param("s", $nuevo_estado); + + if ($stmt->execute()) { + // Volver de forma limpia al panel de administración + header("Location: " . $_SERVER['HTTP_REFERER']); + exit; + } else { + echo "Error al actualizar el estado: " . $conexion->error; + } +} \ No newline at end of file diff --git a/admin/dashboard.php b/admin/dashboard.php new file mode 100644 index 0000000..b6eec81 --- /dev/null +++ b/admin/dashboard.php @@ -0,0 +1,332 @@ + + + + + + + + Panel Admin - La Pecosa + + + + + + + + +
+ +
+ + +
+ +
+ + + + + + + +
+ +
+ + + +
+ + + + +
+
+
+
Ventas de hoy
+
$
+
+
+ +
+
+ +
+
+
Pedidos en espera / cocina
+
+
+
+ +
+
+
+ + +
+
+ Top 5 productos más vendidos +
+
+ +
+
+ + +
+
+ Últimos 10 pedidos recibidos +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Nº pedidoClienteProductosTotalEstadoFecha / Hora
# + + Ver detalle + + $ hs
+
+ +
+ + + + + \ No newline at end of file diff --git a/admin/imprimir_ticket.php b/admin/imprimir_ticket.php new file mode 100644 index 0000000..766f2f6 --- /dev/null +++ b/admin/imprimir_ticket.php @@ -0,0 +1,116 @@ + +
+

Error de Archivo

+

El comprobante no existe en el servidor o el nombre del archivo es inválido.

+ +
+ "); +} + +// Obtenemos la extensión para saber si es PDF o Imagen +$extension = strtolower(pathinfo($ruta, PATHINFO_EXTENSION)); +?> + + + + + Imprimir Comprobante - La Pecosa + + + + + +
+
+ Vista de Comprobante +
+
+ + +
+
+ +
+ + + + Comprobante de Pago + +
+ + + \ No newline at end of file diff --git a/admin/obtener_detalle.php b/admin/obtener_detalle.php new file mode 100644 index 0000000..7214f89 --- /dev/null +++ b/admin/obtener_detalle.php @@ -0,0 +1,70 @@ + + +
+

+ Pedido # +

+ +
+

Cliente:

+

Teléfono:

+

Fecha:

+

Entrega:

+

Dirección:

+
+ + + + + + + + + + + + + + + + + + + + + + +
PRODUCTOCANT.SUBTOTAL
x$
TOTAL$
+
\ No newline at end of file diff --git a/admin/pedidos.php b/admin/pedidos.php new file mode 100644 index 0000000..b084b0c --- /dev/null +++ b/admin/pedidos.php @@ -0,0 +1,526 @@ + + + + + + + + Pedidos Activos - La Pecosa + + + + + + + + +
+ + + + +
+ Panel actualizado correctamente. +
+ + + + + + +
+
+

Comandas activas — cocina y despacho

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
N° PedidoFecha / HoraClienteTotalEstado actualVer detalleCambiar estado
+ + No hay pedidos activos en este momento. +
# hs$ +
+ + + + Pago aprobado + +
+ + + +
+ + + + + Ver comprobante + + +
+
+ + Ver detalle + + +
+ + + + +
+
+
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
N° PedidoFecha / HoraClienteTotal cobradoResolución
+ + Todavía no hay pedidos finalizados. +
# hs$ +
+ + + + Pago aprobado + + Pago pendiente + + + + + Ver comprobante + + +
+
+
+
+
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/admin/procesar_manual.php b/admin/procesar_manual.php new file mode 100644 index 0000000..c0245a9 --- /dev/null +++ b/admin/procesar_manual.php @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/admin/sidebar.php b/admin/sidebar.php new file mode 100644 index 0000000..389251f --- /dev/null +++ b/admin/sidebar.php @@ -0,0 +1,43 @@ + + \ No newline at end of file diff --git a/admin/ver_detalle.php b/admin/ver_detalle.php new file mode 100644 index 0000000..b8d4d1b --- /dev/null +++ b/admin/ver_detalle.php @@ -0,0 +1,126 @@ + + + + + + Detalle de Pedido #<?php echo $id_pedido; ?> - La Pecosa + + + + + + + +
+ Volver atrás + +
+

Pedido #

+ +
+

Cliente:

+

Teléfono:

+

Fecha: hs

+

Entrega:

+

Dirección:

+
+ + + + + + + + + + + + + + + + + + + + + + +
ProductoCant.Subtotal
x$
TOTAL$
+
+
+ + \ No newline at end of file