# Registro automático desde marcas

> **Quién lo configura:** Administrador.
> **Antes de empezar:** el proyecto necesita *Registrar progreso desde marcas* encendido. Ver *Configuración del proyecto*.
> **Tiempo estimado:** cero. De eso se trata.

## La idea

En vez de que alguien llene un formulario por cada persona y cada día, el sistema crea los registros solo: **cuando alguien marca su salida, se genera el progreso**.

María llega a la obra a las 7:00 y marca entrada. Almuerza de 12:00 a 13:00 y marca las dos cosas. Se va a las 16:00 y marca salida. En ese momento, sin que nadie haga nada, aparece un registro de 8 horas en el proyecto, en amarillo, listo para aprobar.

<p class="callout info">El registro automático <strong>no aprueba nada</strong>. Crea el registro en estado Pendiente, igual que el manual. Alguien tiene que revisarlo y aprobarlo.</p>

## Cómo sabe el sistema a qué proyecto van las horas

Hay dos caminos, y tu empresa puede usar los dos a la vez.

### Por ubicación (quiosco)

Si la persona marcó en un **quiosco** y esa ubicación está ligada a un proyecto, el sistema lo resuelve solo. La persona no elige nada: marca donde está, y las horas caen en el proyecto de esa obra.

<p class="callout success">Es el camino más cómodo para trabajo en sitio. Se pone un quiosco en cada obra y el problema se resuelve solo.</p>

### Por selección del colaborador (autoservicio)

Si no hay ubicación de por medio, el sistema usa **el proyecto que la persona eligió al marcar entrada** desde su app.

En esa lista solo le aparecen los proyectos donde está asignada como recurso activo y que tengan la opción encendida.

<p class="callout warning">Si la persona <strong>no eligió proyecto</strong> al marcar entrada, no se genera ningún registro. No hay forma de asignarlo después de manera automática: hay que registrar ese trabajo a mano.</p>

## Cuándo se dispara

Solo cuando se cumplen todas estas condiciones:

1. La marca es de **salida**.
2. Es una marca de naturaleza **laboral** (no de almuerzo ni de permiso).
3. Existe una **marca de entrada** correspondiente.
4. El proyecto tiene **Registrar progreso desde marcas** encendido.
5. La persona es **recurso** de ese proyecto.

<p class="callout info">💡 Si falta cualquiera de las cinco, simplemente no se crea nada. No aparece ningún error, ni para la persona ni para vos. El registro no existe y punto.</p>

## Cómo se calculan las horas

El sistema toma el tiempo entre la marca de entrada y la de salida, y le **descuenta el almuerzo**.

<p class="callout danger">Acá la lógica es <strong>al revés</strong> que en el registro manual. En el manual, el interruptor "Almuerzo pagado" <strong>suma</strong> una hora. En el automático, el almuerzo <strong>se descuenta</strong> del tiempo total.<br><br>No son contradictorios: en el manual vos escribís las horas trabajadas y el sistema agrega el almuerzo si se paga; en el automático el sistema tiene el tiempo completo de permanencia y le quita el almuerzo.</p>

Cuánto descuenta depende del horario de la persona:

**Si el horario tiene pausa de almuerzo** y hay marcas de almuerzo ese día, descuenta **una hora fija**.

**Si el horario es continuo** y hay marcas de almuerzo, descuenta **el tiempo real** que duró — pero solo si duró más de 45 minutos. Una pausa más corta no se descuenta.

**Si no hay marcas de almuerzo**, no descuenta nada.

<p class="callout warning">Si la gente no marca su almuerzo, el sistema no tiene cómo saber que existió y va a registrar el día completo como trabajado. Si el almuerzo no se paga en tu empresa, <strong>marcar el almuerzo no es opcional</strong>.</p>

Si después del descuento quedan cero horas o menos, no se registra nada.

## Qué queda en el registro

El registro automático nace con estos valores fijos:

| Dato | Valor |
|---|---|
| **Fecha** | La de la marca de **entrada** |
| **Comentario** | "Registro desde autoservicio" |
| **Día completo** | Apagado |
| **Almuerzo pagado** | Apagado |
| **Estado** | Pendiente |

<p class="callout info">💡 Que la fecha sea la de <strong>entrada</strong> resuelve los turnos que cruzan medianoche. Alguien que entra el lunes a las 22:00 y sale el martes a las 6:00 genera un registro del <strong>lunes</strong>, con las 8 horas completas. No se parte en dos días.</p>

La **actividad** se toma de la que la persona eligió al marcar entrada, pero solo si esa actividad pertenece a ese proyecto. Si no, el registro queda sin actividad.

## Las horas extra funcionan igual

Si el proyecto está configurado con *Registrar como extras*, el registro automático también se parte en dos cuando la persona se pasa de su jornada semanal. Mismo cálculo que en el manual.

## Lo que puede sorprenderte

### Volver a marcar la salida borra el registro anterior

<p class="callout danger">Si por alguna razón se vuelve a procesar la salida de esa persona ese día, el sistema <strong>borra el registro pendiente</strong> que había generado antes y crea uno nuevo.<br><br>Si vos habías editado ese registro a mano —corregido las horas, agregado un comentario, puesto una actividad— <strong>ese trabajo se pierde</strong>.</p>

Los registros ya **aprobados o rechazados** no se tocan: solo desaparecen los pendientes.

<p class="callout info">💡 La lección práctica: si vas a corregir a mano un registro generado por marcas, <strong>aprobalo primero</strong>. Un registro aprobado ya no se lo lleva nadie.</p>

### No hay aviso de nada

Ni la persona ni vos reciben notificación de que se creó un registro. La forma de verlos es entrar al calendario del proyecto.

### Si el proyecto se configura después, no se recuperan las marcas viejas

Encender *Registrar progreso desde marcas* aplica **hacia adelante**. Las marcas que ya ocurrieron no generan registros retroactivos. Ese trabajo hay que cargarlo a mano.

## Cómo probar que funciona

Antes de confiarle la operación a esto, hacé una prueba:

1. Encendé la opción en un proyecto de prueba y asigná a una persona.
2. Pedile que marque entrada eligiendo ese proyecto (o que marque en el quiosco de la ubicación ligada).
3. Que marque almuerzo, si corresponde.
4. Que marque salida.
5. Entrá al calendario del proyecto.

<p class="callout success"><strong>✅ Si aparece el bloque amarillo con las horas correctas</strong>, la cadena funciona.</p>

<p class="callout danger"><strong>❌ Si no aparece nada</strong>, repasá las cinco condiciones de arriba en orden. Las dos que más fallan son que el proyecto no tenga la opción encendida, y que la persona no esté asignada como recurso activo.</p>