VALIDACIÓN GLOBAL · revisión 3.19.1-ge3

Sustituye la validación anterior. Ver VALIDACION_CORRECCIONES_GE3.txt para el conjunto.
Superadmin consulta ventas de todos los locales; cada negocio conserva su alcance.

OK: Instalación limpia y SQLite íntegro
OK: Reapertura y migraciones conservan las ventas existentes
OK: API rechaza acceso sin sesión
OK: Página redirige al login sin sesión
OK: Servicio integrado: sales
OK: Servicio integrado: finance
OK: Servicio integrado: inventory
OK: Servicio integrado: payments
OK: Servicio integrado: brain
OK: Servicio integrado: chains
OK: Ventas cerradas, exclusión de pedidos impagos y límite final de fechas
OK: Devoluciones, costos y gastos por período
OK: Pronóstico original usa consumo y stock reales
OK: Pagos por confirmación y monedas separadas
OK: Pendientes vigentes sin tokens ni datos personales
OK: Red PRO del dueño consolida únicamente sus dos sucursales
OK: Browser desktop/mobile, branch filter, demo switching, no overflow or JavaScript errors
OK: Interfaz real en escritorio y móvil, filtros, cambio de demo y sin errores JavaScript
OK: Filtro por sucursal propia
OK: Rechazo de alcance ajeno: branch_id
OK: Rechazo de alcance ajeno: restaurant_id
OK: Rechazo de alcance ajeno: tenant_id
OK: Rechazo de alcance ajeno: chain_id
OK: Validación de entrada: {'from': '2020-02-30'}
OK: Validación de entrada: {'from': '2018-01-01'}
OK: Validación de entrada: {'from': '2020-02-01'}
OK: Validación de entrada: {'branch_id': '1 OR 1=1'}
OK: Validación de entrada: {'chain_id[]': '1'}
OK: Panel de solo lectura
OK: Ruta desconocida rechazada
OK: Alcance de sucursal se aplica también a la cadena
OK: Usuario de sucursal no puede cambiar a otra
OK: Permisos limitados no reciben métricas privadas
OK: Cuenta corporativa antigua no administra la red PRO del negocio
OK: Superadmin recibe ventas globales consolidadas
OK: Todas las ventas de locales, devoluciones y monedas separadas
OK: Detalle global excluye pedidos impagos y ventas fuera del período
OK: Filtro global de local y sucursal
OK: Filtro rechaza sucursal de otro local
OK: Propietario no consulta ventas de otros negocios
OK: Métricas globales protegidas para usuarios sin atribución
OK: Superadmin no consulta cadenas operativas de clientes
OK: Red de vendedores une nombre, venta, cobro confirmado y comisión sin duplicar prospectos
OK: Detalle vincula vendedor, cliente y paquete real
OK: Registro de pago de comisión exige referencia
OK: Comisión aprobada puede registrar su pago
OK: Dashboard comercial actualiza saldo y referencia del pago
OK: Comisión pagada conserva historial y no se reabre
OK: Vendedor solo consulta su propia cartera
OK: Negocio no accede a vendedores de la plataforma
OK: PRO reconoce cadena nacional y ciudades
OK: Superadmin no crea cadenas de los negocios
OK: Dueño PRO crea su local sin aprobación del Superadmin
OK: Dueño PRO no modifica sucursal de otro negocio
OK: Demo de plataforma excluye negocios reales
OK: Demo no puede abrir una cadena de negocios reales
OK: Demo Superadmin usa base independiente sin negocios reales
OK: Demo comercial incluye vendedores, ventas y tres estados de comisión
OK: Ingreso automático demo: superadmin
OK: Ingreso automático demo: platform_admin
OK: Ingreso automático demo: platform_sales
OK: Ingreso automático demo: platform_support
OK: Ingreso automático demo: platform_billing
OK: Ingreso automático demo: platform_analyst
OK: Ingreso automático demo: commission_seller
OK: Ingreso automático demo: multiempresa
OK: Ingreso automático demo: franchise_admin
OK: Ingreso automático demo: food_court_admin
OK: Ingreso automático demo: owner
OK: Ingreso automático demo: pro
OK: Ingreso automático demo: admin
OK: Ingreso automático demo: manager
OK: Ingreso automático demo: cashier
OK: Ingreso automático demo: waiter
OK: Ingreso automático demo: kitchen
OK: Ingreso automático demo: inventory
OK: Ingreso automático demo: delivery
OK: Ingreso automático demo: food_court
OK: Ingreso automático demo: food_court_tacos
OK: Ingreso automático demo: food_court_sushi
OK: Ingreso automático demo: franchise
OK: Ingreso automático demo: franchise_north
OK: Ingreso automático demo: franchise_south
OK: Cambio de perfil reutiliza Demo Total original
OK: Demo owner usa exclusivamente su negocio de ejemplo
OK: Superadmin real administra el catálogo completo de demos
OK: Superadmin agrega perfil demo público
OK: Nuevo demo aparece automáticamente en el selector público
OK: Superadmin puede ver la misma clave demo sin regenerarla
OK: Correo y clave demo abren exclusivamente una sesión de demostración
OK: Visitante demo no puede leer el catálogo privado ni las claves
OK: Visitante demo no obtiene claves administrativas
OK: Superadmin edita y oculta el perfil demo
OK: Demo oculto desaparece del selector público
OK: Demo oculto no permite ingreso automático público
OK: Demo privado conserva ingreso con su clave
OK: Desactivar un demo revoca su sesión en el siguiente acceso
OK: Superadmin regenera la clave demo
OK: La clave demo anterior deja de funcionar
OK: La nueva clave demo funciona
OK: Superadmin borra el perfil demo del catálogo
OK: El perfil borrado no reaparece al ejecutar las migraciones
OK: La clave de un perfil borrado no permite ingresar
OK: CRUD demo no crea usuarios en la base real
OK: Nuevo demo corporativo recibe la organización de ejemplo correspondiente
OK: Respeta desactivación de IA del negocio
OK: Fallo parcial visible sin convertir errores en ceros
OK: Paquete distinto de PRO no permite crear sucursales
OK: Módulos respetan el plan activo
OK: Suscripción vencida no se elude desde el panel global
OK: Integridad final de la base de prueba
OK: Consultas globales no modifican ventas
OK: Servidor sin errores fatales ni advertencias PHP

112 verificaciones superadas. Datos y credenciales temporales eliminados.
