86 – CANCELAR TICKET GENERADO DEL CLIENTE en el sistema con BD y GitHub (👨💻PHP y MYSQL💻)
Duración: 8 minDescripción
🎓 Lección 86: Cancelar Ticket Generado del Cliente (PHP & MySQL)
Esta lección aborda la implementación de la funcionalidad "Cancelar Ticket", una opción de contingencia vital para revertir un registro en caso de que un cliente se retire inmediatamente después de generar el ticket. El objetivo es inactivar el ticket en la base de datos y liberar el cubículo que se había marcado como ocupado.
⚙️ Implementación del Botón de Cancelación
El botón "Cancelar Ticket" dentro del modal se transforma en un enlace (<a href>) para iniciar la acción de cancelación:
- Redirección y Parámetro: El enlace dirige a un nuevo controlador: tickets/controller_cancelar_ticket.php.
- Envío del ID: Se envía el ID del ticket (ID) a través de la URL para identificar el registro a cancelar [04:46].
🔄 Lógica del Controlador controller_cancelar_ticket.php
El controlador tiene la responsabilidad de revertir los cambios que se realizaron al momento del registro (que afectaron a tres tablas: tickets, clientes y mapeos).
- Recepción del ID: El controlador recibe el ID del ticket por el método GET [06:03].
- Inactivación del Ticket (En lugar de Borrado): En lugar de usar la sentencia DELETE FROM, el sistema opta por la inactivación lógica para mantener un historial. Se ejecuta un UPDATE sobre la tabla tickets para cambiar el estado:
- Campo: estado se actualiza a 0 (Inactivo/Cancelado).
- Registro: Se guarda la fecha_hora_eliminacion (fecha de cancelación) [06:53].
- Redirección: Tras la ejecución, el usuario es redirigido a la página principal (principal.php) [07:39].
⚠️ Problema Identificado (Próxima Corrección)
Al finalizar la lección, se demuestra que el ticket se cancela correctamente (el campo estado en la tabla tickets cambia a 0), pero el cubículo afectado en la vista principal sigue marcado como "Ocupado" [08:23].
Esto se debe a que el controlador solo actualizó la tabla tickets, pero no actualizó la tabla mapeos para cambiar el estado del espacio de vuelta a "Libre".
💡 Próximos Pasos
La siguiente lección deberá complementar la lógica de cancelación con un segundo UPDATE para liberar el cubículo en la tabla mapeos.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️