Aislamiento avanzado de cajeros y reenvío de cortes
Pulido sobre la base multi-sucursal de V-3.2.0100/0101. No se modifica caja, ventas, RLS, planes ni el flujo actual de email — sólo se agrega valor. Profile → Reenviar último corte por email - Nuevo botón “Reenviar último corte por email” bajo la sección de reportes de corte. - Busca el último corte cerrado del owner y reenvía el mismo reporte profesional al correo principal y al CC configurado. - No reabre la caja, no modifica la sesión ni los totales: sólo reenvía. - Útil para validar la configuración de Resend y para reauditoría del contador. - Toast de éxito o error con mensaje claro y eventos en consola: cash_closure_email_resent / cash_closure_email_resent_failed. Aislamiento de cajeros en /pos - Si el cajero tiene una sucursal asignada en cashier_assignments, el POS sólo carga esa sucursal y oculta el selector — imposible vender en otra por error. - Si el cajero tiene acceso a varias sucursales del mismo owner, el selector aparece pero únicamente con las sucursales permitidas. - El owner sigue viendo todas sus sucursales locales permitidas por su plan + add-ons, sin cambios. Seguridad / compatibilidad - No se altera StoreContext, RLS, cash_sessions ni el cálculo del corte. - No rompe POS actual, multi-sucursal, ventas, filtros ni responsive. - Versión: V-3.2.0102.
Aspectos destacados
- Botón Reenviar último corte por email en /profile
- Reenvía al correo principal y al CC configurado
- No reabre caja ni modifica la sesión
- Cajero con una sucursal asignada entra automático y sin selector
- Cajero con varias sucursales sólo ve las permitidas
- Eventos cash_closure_email_resent / _failed en consola