Repository navigation
feat(mesas): cada mesa tiene su mesera, y se reparten desde Personal - #35
Merged
Merged
Conversation
Hasta ahora la mesera solo tenia un numero de seccion (1, 2 o 3) y la
traduccion seccion -> mesas estaba quemada en el frontend (1-15, 16-30,
31-50). No se podia dar de alta una mesera con mesas propias, la mesa 51
no le aparecia a nadie, y repartir distinto exigia desplegar.
V8 agrega mesas.id_usuario_asignado y mesas.activa, y copia el reparto
actual a la base: el dia que se despliegue cada mesera ve sus mismas
mesas. Tambien pone UNIQUE en mesas.numero.
Reglas:
- Una mesa tiene UNA mesera. Asignarla a otra se la quita a la anterior.
- abrirCuenta rechaza que una mesera abra una mesa que no es suya.
ADMIN y DEV abren cualquiera.
- /mesas/mias devuelve las mesas asignadas MAS las que tienen una cuenta
abierta por esa mesera, para que pueda cobrar aunque el encargado haya
reasignado la mesa en pleno servicio.
- Dar de baja a una mesera, o quitarle el rol MESERO, deja sus mesas sin
asignar.
- Una mesa con cuenta abierta no se da de baja (baja logica: el historial
de ordenes se conserva).
Rutas nuevas (todas bajo /mesas y /usuarios, ya proxeadas por Caddy):
GET /mesas/mias, GET /mesas/gestion, PUT /mesas/{id}, DELETE /mesas/{id},
PUT /mesas/{id}/activar, PUT /mesas/asignacion, POST /mesas/cubrir-turno,
GET /usuarios/{id}/ventas (hoy, semana y mes; mismo criterio que el corte).
Permisos: crear mesas era posible para cualquier MESERO (el POST heredaba
el permiso de la clase). Ahora toda la gestion es solo ADMIN y DEV.
/mesas/rango se queda para el frontend anterior; se puede borrar cuando
todas las tablets hayan recargado.
…inar El listado de Personal pedia /usuarios, que pagina de 10 en 10, y el frontend solo leia la primera pagina: hoy hay 9 activos, el empleado 11 habria desaparecido de la pantalla sin aviso. Tampoco se veian los dados de baja, asi que el endpoint de reactivar no tenia pantalla. PermisosUsuariosTest vigila que lo nuevo no herede el permiso de clase, que incluye al CAJERO.
POST /mesas/lote {desde, hasta, id_usuario_asignado?}. Todo o nada: si
alguna del rango ya existe no se crea ninguna y el error dice cuales
chocan, para no dejar el rango a medias. Tope de 50 por lote para que
un dedazo (51-650) no cree 600 mesas. Solo ADMIN y DEV.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué resuelve
La mesera solo tenía un número de sección (1, 2 o 3), y el reparto sección → mesas estaba quemado en el frontend (1-15, 16-30, 31-50). Con eso no se podía dar de alta una mesera con mesas propias, la mesa 51 no le aparecía a nadie, y repartir distinto exigía desplegar.
Cambios
mesas.id_usuario_asignado,mesas.activa(baja lógica) y UNIQUE enmesas.numero. Copia el reparto actual, así que el día del deploy cada mesera ve sus mismas mesas.abrirCuentarechaza que una mesera abra una mesa que no es suya (ADMIN/DEV abren cualquiera).GET /mesas/mias: sus mesas más las que tienen una cuenta abierta por ella, para que pueda cobrar aunque la mesa se reasigne en pleno servicio.GET /mesas/gestion,POST /mesas,PUT /mesas/{id},DELETE /mesas/{id},PUT /mesas/{id}/activar,PUT /mesas/asignacion,POST /mesas/cubrir-turno.GET /usuarios/todos(activos y dados de baja, sin paginar) yGET /usuarios/{id}/ventas(hoy, semana y mes; mismo criterio que el corte)./mesas/rangose queda para el frontend viejo. Todas las rutas cuelgan de/mesas*y/usuarios*, que Caddy ya proxea.Pruebas
MesaServiceTest,PermisosMesasTest,PermisosUsuariosTest,VentasEmpleadoServiceTesty 2 casos nuevos enOrdenServiceTest.Deploy
Va primero que RestFoodF
feat/personal-mesas-y-ficha, con el restaurante cerrado. El frontend actual sigue funcionando con este backend. Después de V8,rollback.shya no revierte el backend (Flyway ve V8 aplicada).Agregado después: alta por lote
POST /mesas/lote {desde, hasta, id_usuario_asignado?}crea p. ej. de la 51 a la 65. Todo o nada: si alguna ya existe no se crea ninguna y el error dice cuáles chocan. Tope de 50 por lote. Solo ADMIN/DEV (enPermisosMesasTest). 5 tests nuevos; la suite pasa a 125.