Saltar a contenido
v26.3

Control de horario

El control de horario permite a los empleados registrar sus horarios de trabajo mediante un reloj de fichaje — directamente en la caja, sin software adicional. Los horarios de trabajo, las pausas y las horas extra se calculan automáticamente y pueden exportarse como archivo Excel para la contabilidad de nóminas.


Resumen de funciones

Función Descripción
Reloj de fichaje Entrada, Pausa, Fin de pausa, Salida — directamente en el POS
Vista en vivo ¿Qué empleados están fichados en este momento?
Informes de horario Individual por empleado o vista general
Exportación a Excel Libro de trabajo de 2 hojas para la contabilidad de nóminas
Corrección posterior El administrador puede corregir, añadir o eliminar fichajes
Actualización automática Actualización de estado cada 30 segundos

⏱️ Fichar (POS)

Abrir la página de fichaje

En la caja: Menú → Control de horario

La página de fichaje muestra el estado actual y cuatro botones de acción:

POS — Fichaje del control de horario

┌──────────────────────────────────────┐
│                                      │
│    Maria Schmidt                     │
│    ● Eingestempelt seit 08:00        │
│                                      │
│    Arbeitszeit heute: 4 Std. 30 Min. │
│    Pause heute:       0 Std. 45 Min. │
│                                      │
│    ┌──────────┐  ┌──────────┐       │
│    │ Kommen   │  │  Pause   │       │
│    │  (grün)  │  │ (orange) │       │
│    └──────────┘  └──────────┘       │
│    ┌──────────┐  ┌──────────┐       │
│    │ Zurück   │  │  Gehen   │       │
│    │  (blau)  │  │  (rot)   │       │
│    └──────────┘  └──────────┘       │
│                                      │
└──────────────────────────────────────┘

Acciones de fichaje

Botón Color Descripción Disponible cuando
Entrada Verde Inicio del trabajo — comienza el turno No fichado
Pausa Naranja Iniciar pausa Fichado, sin estar en pausa
Volver Azul Terminar la pausa, seguir trabajando En pausa
Salida Rojo Fin del trabajo — terminar el turno Fichado, sin estar en pausa

Máquina de estados

El control de horario funciona como una máquina de estados — solo se permiten transiciones válidas:

                    ┌──────────┐
         ┌─────────│  Kommen  │─────────┐
         │         └──────────┘         │
         ▼                              ▼
  ┌──────────┐                   ┌──────────┐
  │  Pause   │◄─────────────────│  Zurück  │
  └──────────┘                   └──────────┘
         │                              │
         ▼                              ▼
  ┌──────────┐                   ┌──────────┐
  │  Zurück  │                   │  Gehen   │
  └──────────┘                   └──────────┘

Las acciones no válidas se impiden automáticamente. Ejemplo: «Salida» no es posible si el empleado está en pausa — primero hay que pulsar «Volver» y luego «Salida».

Estado actual Acciones permitidas No permitido
No fichado Entrada Pausa, Volver, Salida
Fichado Pausa, Salida Entrada, Volver
En pausa Volver Entrada, Pausa, Salida
Tras la pausa (de vuelta) Pausa, Salida Entrada, Volver

Desarrollo de una jornada laboral típica

08:00  → [Kommen]       Arbeit beginnt
         ● Status: Eingestempelt (grün)

12:00  → [Pause]        Mittagspause
         ● Status: In Pause (orange)

12:45  → [Zurück]       Weiter arbeiten
         ● Status: Eingestempelt (grün)

15:30  → [Pause]        Kurze Kaffeepause
         ● Status: In Pause (orange)

15:45  → [Zurück]       Weiter arbeiten
         ● Status: Eingestempelt (grün)

17:00  → [Gehen]        Feierabend
         ● Status: Nicht eingestempelt

Ergebnis:
  Arbeitszeit: 8 Std. 0 Min. (abzgl. 1 Std. Pause)
  Pausenzeit:  1 Std. 0 Min. (45 + 15 Min.)

Varias pausas en un mismo día

Los empleados pueden hacer tantas pausas como deseen — cada pausa se registra por separado:

Hora Acción Tiempo de trabajo Tiempo de pausa
08:00 Entrada 0:00 0:00
10:00 Pausa 2:00 0:00
10:15 Volver 2:00 0:15
12:00 Pausa 3:45 0:15
12:45 Volver 3:45 1:00
17:00 Salida 8:00 1:00

Vista en vivo (administrador)

¿Quién está trabajando ahora?

Administrador → Control de horario → Pestaña «En vivo»

La vista en vivo muestra en tiempo real qué empleados están fichados:

Estado Nombre Entrada Tiempo de trabajo Pausa
● Trabajando Maria Schmidt 08:00 4:30 0:45
● Pausa Thomas Weber 09:00 2:45
● Trabajando Lisa Müller 07:30 5:00 0:30

Indicador de estado:

Símbolo Color Significado
Verde Trabajando en este momento
Naranja Está en pausa
Gris No fichado

La vista se actualiza automáticamente cada 30 segundos. Una animación pulsante en el distintivo «En vivo» señaliza la actualización en tiempo real.


📊 Informes de horario (administrador)

Administrador → Control de horario → Pestaña «Individual» o «Total»

Administrador — Informe de horario con vista individual y total

Informe individual (detalle)

Muestra los horarios de trabajo diarios de uno o de todos los empleados:

Filtros: - Desde / Hasta: seleccionar período - Empleado: empleado individual o «Todos»

Nombre Fecha Entrada Salida Pausa (min) Tiempo de trabajo (min)
Maria Schmidt 01.03.2026 08:00 17:00 45 495
Maria Schmidt 02.03.2026 09:00 14:00 0 300
Maria Schmidt 03.03.2026 08:00 18:00 45 555

Plan vs. real

Si además está activo el módulo Cuadrante de turnos, aquí aparece la columna «Planificado» con el horario de turno previsto del cuadrante — directamente junto a los horarios reales fichados.

Informe total (resumen)

Muestra las sumas mensuales/del período por empleado:

Empleado Horas de trabajo Horas de pausa Días de trabajo
Maria Schmidt 168,50 16,50 22
Thomas Weber 152,00 15,00 20
Lisa Müller 135,75 13,50 18

Exportación a Excel

Haga clic en «Exportación a Excel» para obtener una tabla detallada:

Hoja 1: «Resumen»

Nombre Horas de trabajo Horas de pausa Días de trabajo
Maria Schmidt 168,50 16,50 22
Thomas Weber 152,00 15,00 20

Hoja 2: «Detalles»

Nombre Fecha Inicio Fin Pausa (min) Tiempo de trabajo (min)
Maria Schmidt 01.03.2026 08:00 17:00 45 495
Maria Schmidt 02.03.2026 09:00 14:00 0 300

El formato Excel (XLSX) puede importarse directamente en los programas habituales de contabilidad de nóminas.


🔧 Corregir horarios de fichaje

Si un empleado olvidó fichar o se registró una hora incorrecta:

Editar fichaje

  1. Administrador → Control de horario
  2. Seleccionar empleado y mes
  3. Hacer clic en el registro de fichaje correspondiente
  4. Ajustar hora, tipo o nota
  5. Guardar — el tiempo de trabajo se recalcula automáticamente

Añadir fichaje

Cuando un empleado olvidó fichar:

  1. En el administrador, añadir manualmente el registro de fichaje que falta
  2. Seleccionar el tipo (Entrada, Pausa, Volver, Salida)
  3. Introducir la hora
  4. Guardar

Eliminar fichaje

Cuando un registro de fichaje es erróneo:

  1. Seleccionar el registro de fichaje
  2. Hacer clic en «Eliminar»
  3. Confirmar — el tiempo de trabajo se recalcula automáticamente

Todas las correcciones quedan registradas — para la trazabilidad.


🧮 Cálculo del tiempo de trabajo

DiKAS calcula el tiempo de trabajo automáticamente según el siguiente algoritmo:

Regla básica

Arbeitszeit = (Gehen - Kommen) - Summe aller Pausen

Ejemplo con dos pausas

Kommen:     08:00
Pause 1:    10:00 - 10:15 (15 Min.)
Pause 2:    12:00 - 12:45 (45 Min.)
Gehen:      17:00

Bruttozeit: 17:00 - 08:00 = 9 Std. 0 Min.
Pausen:     15 + 45 = 60 Min.
Arbeitszeit: 9:00 - 1:00 = 8 Std. 0 Min.

Casos especiales

Situación Comportamiento
Turno pasada la medianoche p. ej. de 22:00 a 06:00 = 8 horas (calculado correctamente)
Pausa no terminada Una pausa abierta no se cuenta (solo después de «Volver»)
Sin salida El tiempo de trabajo se calcula en tiempo real desde «Entrada»
Varios turnos por día Cada turno (Entrada→Salida) se cuenta por separado y se suma
Solo entrada, sin salida El tiempo de trabajo sigue corriendo (visible en la vista en vivo)

Resumen mensual

Al final del mes se suman los valores diarios:

März 2026 — Maria Schmidt:
  22 Arbeitstage
  168 Std. 30 Min. Arbeitszeit
   16 Std. 30 Min. Pausenzeit
    7 Std. 39 Min. Durchschnitt/Tag

Ejemplos prácticos

Restaurante con servicio por turnos

Situación: Restaurante con turno de mañana y de tarde, 8 empleados.

Turno de mañana (Maria):

06:30  Kommen
10:30  Pause (Frühstück)
10:45  Zurück
14:30  Gehen
→ 7 Std. 45 Min. (15 Min. Pause)

Turno de tarde (Thomas):

14:00  Kommen
18:00  Pause
18:30  Zurück
22:30  Gehen
→ 8 Std. 0 Min. (30 Min. Pause)

Fin de mes: Administrador → Control de horario → Exportación a Excel → enviar a la gestoría de nóminas.

Discoteca con turno nocturno

Situación: Club, los empleados trabajan pasada la medianoche.

20:00  Kommen
00:30  Pause
01:00  Zurück
04:00  Gehen
→ 7 Std. 30 Min. (30 Min. Pause)

DiKAS calcula correctamente los turnos pasada la medianoche — los fichajes se ordenan por hora.

Personal de apoyo con turno corto

Situación: Estudiante de apoyo, 3 horas el sábado.

11:00  Kommen
14:00  Gehen
→ 3 Std. 0 Min. (keine Pause)

Olvido de fichar la salida

Situación: Lisa olvidó fichar su salida.

  1. Al día siguiente, el administrador ve en la vista en vivo: Lisa está «fichada» desde ayer a las 08:00
  2. Administrador → Control de horario → Lisa → Añadir fichaje:
  3. Tipo: Salida
  4. Hora: 17:00 (fin de trabajo estimado)
  5. El tiempo de trabajo se recalcula correctamente de forma retroactiva

Detalles técnicos

Estructura de datos

Por empleado y mes existe un documento TimeSheet (p. ej. ts_usr_001_202603):

Campo Descripción
UserId ID del empleado
Year / Month Año y mes
Stamps Lista de todos los registros de fichaje
TotalWorkMinutes Tiempo de trabajo total (mes)
TotalBreakMinutes Tiempo de pausa total (mes)
LastStampType Último tipo de fichaje (para el indicador de estado)

Cada registro de fichaje contiene:

Campo Descripción
Momento Fecha y hora (UTC)
Tipo 0=Entrada, 1=Pausa, 2=Volver, 3=Salida
Nota Comentario opcional

Endpoints de la API

Método Endpoint Descripción
POST /api/v1/time-tracking/stamp Fichar
GET /api/v1/time-tracking/status/{userId} Consultar estado
GET /api/v1/time-tracking/active-workers Empleados activos
GET /api/v1/time-tracking/sheets/{userId}/{year}/{month} Datos del mes
GET /api/v1/time-tracking/report Informe de horario
GET /api/v1/time-tracking/report/excel Exportación a Excel
PUT /api/v1/time-tracking/sheets/{id}/stamps/{index} Editar fichaje
DELETE /api/v1/time-tracking/sheets/{id}/stamps/{index} Eliminar fichaje

Configuración

El control de horario se activa en Administrador → Configuración → Operación.

Ajuste Descripción
Activar control de horario Activar/desactivar el módulo

Tras la activación aparece la opción de menú «Control de horario» en el menú del POS y en el área de administración.


Preguntas frecuentes

¿Puede un empleado trabajar varios turnos el mismo día? Sí. Cada secuencia Entrada→Salida se cuenta como un turno independiente y los tiempos de trabajo se suman.

¿Qué ocurre si hay un corte de electricidad durante el turno? El último fichaje se conserva. El empleado puede fichar su salida tras el reinicio, o el administrador corrige el registro posteriormente.

¿Pueden los empleados consultar sus propios horarios? La página de fichaje muestra al empleado conectado su tiempo de trabajo de hoy y su estado actual. Los informes detallados solo están disponibles en el área de administración.

¿Está disponible el control de horario también en la tableta Android (aplicación MAUI)? Sí. La página de fichaje funciona de forma idéntica en la aplicación Android — también en modo sin conexión.


Siguiente paso

Contabilidad — DATEV, facturas, gestión de reclamaciones