# Monitoreo en red

## Paso a paso

Así se pone a funcionar la primera vez. El detalle está en las secciones numeradas.

### Ver la caja desde tu celular o laptop

1. En la computadora de la caja, abre **`iniciar_sistema_red.bat`** (no `iniciar_sistema.bat`) y deja la ventana negra abierta.
2. En la ventana negra busca la línea **"Desde otro equipo de la tienda (p. ej. el administrador) entra a:"** y anota la dirección que aparece debajo (por ejemplo `http://192.168.1.81:3000`).
3. Solo la primera vez: si Windows pregunta por **Node.js**, marca **Redes privadas** y pulsa **Permitir acceso**. Revisa también que el Wi‑Fi de la tienda esté como **Red privada** (sección 2).
4. Conecta tu celular o laptop **al mismo Wi‑Fi de la tienda**. Con datos móviles no funciona.
5. En el navegador escribe la dirección del paso 2 y entra con **tu propio usuario** de administrador.
6. Abre **Inicio**: en **"Ventas en vivo de hoy"** verás cada venta en cuanto la cobre la caja.
7. Guarda la dirección como favorito y pide que la caja tenga una IP fija (sección 3).

## 1. ¿Qué es el Monitoreo en Red?

El sistema lo pueden usar **dos personas a la vez**: el **cajero** vende en la computadora de la tienda y el **administrador** revisa las ventas **en vivo** desde su laptop, otra PC o su celular. Los dos equipos deben estar conectados a la **misma red (Wi‑Fi o cable) de la tienda**.

La computadora de la caja es el "servidor": ahí se guarda la base de datos, ahí está conectada la báscula y ahí se imprimen los tickets. El otro equipo solo abre la página en el navegador.

**Quién puede usarlo:** el panel de ventas en vivo es solo para **administrador**. Cualquier empleado puede entrar desde otro equipo de la red, pero cada uno con su propio usuario (sección 5).

## 2. Arrancar la caja en modo red

En la computadora de la caja, en lugar de `iniciar_sistema.bat`, abre **`iniciar_sistema_red.bat`**.

En la ventana negra aparecerá algo así:

```
🖥️  Desde otro equipo de la tienda (p. ej. el administrador) entra a:
     http://192.168.1.20:3000
```

Esa es la dirección que el administrador debe escribir en su navegador. El número de este ejemplo (`192.168.1.20`) es solo ilustrativo: usa **el que aparezca en tu ventana negra**. Si escribes otro, el navegador mostrará `ERR_ADDRESS_UNREACHABLE`.

> Con `iniciar_sistema.bat` (el de siempre), el sistema **solo** se puede abrir desde la misma computadora de la caja. Usa el de red únicamente si alguien va a monitorear desde otro equipo.

### 2.1 Primera vez: permitir la conexión en el firewall de Windows

La primera vez que se usa el modo red, Windows puede preguntar si permite que **Node.js** se comunique en la red:

- Marca **Redes privadas** y pulsa **Permitir acceso**.
- No marques "Redes públicas".

Si se rechazó por error, o se permitió en "Pública": entra a *Panel de control → Sistema y seguridad → Firewall de Windows Defender → Permitir una aplicación…*, pulsa **Cambiar la configuración** y, en cada renglón de **Node.js JavaScript Runtime**, marca "Privada" y desmarca "Pública".

La red de la tienda debe estar marcada como **privada**. Eso no se cambia en el Panel de control sino en *Configuración (Windows + I) → Red e Internet → Wi‑Fi → (nombre de la red) → Tipo de perfil de red: Red privada*.

## 3. Recomendado: IP fija para la caja

El número `192.168.x.x` lo asigna el módem y **puede cambiar** al reiniciarlo. Para no tener que buscar la dirección cada vez, reserva una IP fija para la computadora de la caja en el módem (la opción suele llamarse "Reserva DHCP" o "IP estática"), o pídeselo a tu técnico. Guarda la dirección como favorito en el navegador del administrador.

## 4. Qué ve el administrador

En **Inicio** aparece el panel **"Ventas en vivo de hoy"**. Cada venta y devolución que cobra la caja aparece en unos segundos, con hora, folio, cajero, método de pago, total y ganancia. No hay que recargar la página.

En **Reportes**, el historial de ventas también se actualiza solo cuando la caja cobra algo nuevo, sin perder el filtro que estés usando.

Si el administrador **cambia un precio** (o el nombre, la categoría, etc.) en Inventario, la caja lo ve en menos de 30 segundos sin recargar. Lo que el cliente ya tiene en el carrito conserva el precio con que se agregó.

Editar un producto **mientras la caja lo vende** es seguro: la pantalla de edición no toca la existencia, así que **nunca se pierde lo vendido**. La existencia solo cambia por ventas, devoluciones, [Compras](./compras.md), **Agregar inventario** o **Ajuste de inventario** (ver el [manual de Inventario](./inventario.md)).

## 5. Una sola sesión por persona

Cada empleado puede estar conectado en **un solo equipo a la vez**. Si alguien entra con su nombre en otra computadora, la sesión anterior se cierra y esa pantalla muestra: *"Tu sesión se abrió en otra computadora. Vuelve a entrar si quieres seguir aquí."*

Por eso el cajero y el administrador deben usar **usuarios distintos**.

Si el administrador **desactiva** a un empleado o le cambia el rol, el cambio se aplica en ese mismo momento, aunque el empleado esté conectado (ver el [manual de Empleados](./empleados.md)).

## 6. Restaurar un respaldo con la caja abierta

Antes de restaurar un respaldo, el sistema avisa si hay alguien más conectado (normalmente la caja). **Asegúrate de que no estén cobrando**: durante unos segundos la caja mostrará *"⏳ El administrador está restaurando datos. Espera unos segundos; la pantalla se actualizará sola."* y después se actualizará sola. Ver el [manual de Respaldos](./respaldos.md).

## 7. Seguridad

- El sistema va por la red **sin cifrar** (HTTP). Úsalo **solo en la red de la tienda**: nunca en un Wi‑Fi público ni abriendo puertos del módem hacia internet.
- Si los clientes también usan el Wi‑Fi de la tienda, crea en el módem una **red de invitados** separada para ellos.
- Los PIN siguen protegidos: 5 intentos fallidos bloquean al empleado unos minutos.
- Si reinicias la computadora de la caja o cierras la ventana negra, **todos** tienen que volver a iniciar sesión.

## 8. Preguntas frecuentes

**El navegador dice `ERR_ADDRESS_UNREACHABLE`, ¿qué hago?**
La dirección no corresponde a ningún equipo de la red. Revisa que escribiste exactamente la que aparece en la ventana negra de la caja (no la del ejemplo) y que la caja se abrió con `iniciar_sistema_red.bat`.

**La página no carga en mi celular, pero en la caja sí funciona.**
Revisa que el celular esté en el mismo Wi‑Fi de la tienda (no con datos móviles) y que Node.js esté permitido en el firewall para redes privadas (sección 2.1).

**Ayer funcionaba y hoy ya no abre.**
Lo más probable es que el módem le dio otra dirección a la caja. Vuelve a leer la dirección en la ventana negra y, para que no vuelva a pasar, reserva una IP fija (sección 3).

**Me salió "Tu sesión se abrió en otra computadora".**
Alguien entró con tu mismo usuario en otro equipo. Cada persona debe usar su propio usuario; vuelve a entrar si quieres seguir en este equipo.

**¿Puedo ver la caja desde mi casa?**
No. El sistema solo funciona dentro de la red de la tienda, y abrirlo hacia internet no es seguro porque la conexión no va cifrada.
