Los recorridos reales de quien lleva la nómina y el control de asistencia en Odoo: quién hace qué, qué hace el sistema solo, y en qué momento pasa cada cosa.
Los colores de los diagramas no son decoración: cada uno dice quién da el paso.
Este capítulo es el mapa. No repite lo que ya explican los demás — cada pieza tiene su propio capítulo, enlazado desde aquí — sino que muestra cómo encajan entre sí: qué pasa una sola vez, qué corre solo todos los días, qué tiene que revisar una persona antes de cerrar el mes, y qué sale de la nómina hacia afuera. El ciclo tiene cuatro tiempos, y hay que leerlos como tiempos, no como pantallas sueltas.
flowchart TD
subgraph T1["① Una vez, al empezar"]
C1["El Contador configura:
tipos de jornada y horarios,
estructura salarial completa,
reglas de recargo,
feriados del año,
dispositivos aprobados,
tolerancias y el interruptor
de descuento"]:::caj
end
subgraph T2["② Cada día, sin que nadie lo pida"]
M1["La persona marca
en el lector o el quiosco"]:::caj
M2["Nace el registro
del lector"]:::sis
M3["La tarea de conciliación
corre cada 15 minutos"]:::sis
M4["Registro de asistencia,
horas extra y faltas
se calculan solos"]:::neu
M1 --> M2 --> M3 --> M4
end
subgraph T3["③ Antes de cerrar el mes"]
R1["El Contador revisa la
Bandeja de Conciliación:
registros «Pendiente» con Motivo"]:::caj
R2["Revisa las asistencias
todavía abiertas"]:::caj
R3["Revisa los atrasos
del Resumen Mensual"]:::caj
R4{"Faltas por calificar,
una por una"}:::caj
R5["Justificada"]:::ok
R6["Injustificada"]:::no
R7{"¿El interruptor de
descuento está encendido?"}:::sis
R8["Nace apagado:
el sistema solo AVISA,
nadie descuenta solo"]:::avi
R9["El Contador aplica
el descuento a mano"]:::caj
R1 --> R2 --> R3 --> R4
R4 -->|"con sustento"| R5
R4 -->|"sin sustento"| R6 --> R7
R7 -->|"apagado (así nace)"| R8
R7 -->|"encendido a propósito"| R9
end
subgraph T4["④ Al cerrar el mes"]
P1["El Contador abre
el periodo de nómina"]:::caj
P2{"¿Tiene fecha de inicio
de contrato cargada?"}:::caj
P3["Queda FUERA del rol,
sin que nadie avise"]:::no
P4["Asistente: Empleados,
Time, Asistencias"]:::caj
P5["Etapa 4: el sistema
genera un recibo
por empleado"]:::sis
P6["Revisar, Validar,
asociar el pago"]:::caj
P7["Recibo «Pagado»"]:::ok
P8["Planilla del IESS
y Formulario 107"]:::caj
P9["Archivo de pago al banco"]:::neu
P1 --> P2
P2 -->|"no"| P3
P2 -->|"sí"| P4 --> P5 --> P6 --> P7
P7 --> P8
P7 --> P9
end
C1 --> M1
M4 --> R1
R5 --> P1
R8 --> P1
R9 --> P1
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
Lo que dispara este tiempo es una decisión de montaje, no una fecha ni un evento del sistema: alguien se sienta a definir el esqueleto que después va a usar cada rol, cada marca y cada descuento. Ahí quedan los tipos de jornada y los horarios de cada empleado, la estructura salarial completa —beneficios, reglas, categorías de reglas— y, del lado de asistencia, los feriados del año, los dispositivos aprobados para marcar y los ajustes de tolerancia y de descuento. Todo esto se detalla en la sección 3 para nómina y en la sección 21 para asistencia; los dispositivos, aparte, en la sección 20. Se toca al montar el sistema, al abrir un horario nuevo o al cambiar una regla — no cada mes.
Este tiempo lo dispara la propia gente al marcar, ya sea en el lector biométrico o en el quiosco (la sección 14 y la sección 15): de ahí nace un registro del lector. Y lo dispara también el reloj: la tarea de conciliación corre cada 15 minutos, sin que nadie la llame, y va emparejando entradas con salidas para cerrar jornadas — el detalle de cómo empareja y qué dice cuando no puede está en la sección 16. De ese mismo engranaje salen, solas, las horas extra calculadas y las faltas detectadas (la sección 19 y la sección 18). Nadie interviene en este tiempo salvo que algo salga mal — un registro que no encuentra pareja, una hora mal marcada.
Este es el tiempo que nadie puede saltarse, y el que dispara siempre una persona, nunca una fecha: el Contador tiene que sentarse a revisar y decidir. Revisa la Bandeja de Conciliación, registro por registro «Pendiente», leyendo el Motivo de cada uno (la sección 16); revisa qué asistencias quedaron abiertas y qué atrasos aparecen en el Resumen Mensual (la sección 17); y califica, una por una, las faltas pendientes como justificadas o injustificadas (la sección 18) — no hay ninguna regla que las califique sola. Una ficha sin fecha de inicio de contrato es la precondición más silenciosa de todo el ciclo: deja a la persona fuera del rol del mes sin que nada lo anuncie (la sección 4), y por eso también aparece en el diagrama de este capítulo, no solo en el suyo.
Y el punto que resume este tiempo entero es el interruptor de descuento: nace apagado, así que un atraso o una falta injustificada, por sí solos, no le quitan nada a nadie — el sistema se limita a avisar. Aplicar el descuento es un paso aparte que solo lo hace una persona, a mano, después de revisar el caso (la sección 21). Ese es el resumen de todo este capítulo: el sistema avisa, la persona decide.
Lo dispara el Contador, abriendo el periodo de nómina (la sección 5). El asistente pasa por sus etapas —Empleados, Time, Asistencias— y al pulsar Continuar el sistema genera un recibo por empleado; de ahí en adelante cada recibo se lee, se revisa y se calcula en detalle en la sección 6, se valida y se paga. Un anticipo entregado antes de cerrar el mes ya viene descontado solo en ese recibo (la sección 8), y una vez pagados los recibos, los reportes del lote completo —cuánto se pagó, en qué se fue lo que no es sueldo base, qué cambios de contrato quedaron anotados— están en la sección 7. De ahí salen las obligaciones hacia afuera: validar la planilla del IESS y completar el Formulario 107 (la sección 9).
El pago propiamente dicho es el último paso, y sale del propio lote: el archivo con la lista que se lleva al banco se genera con el botón «Pagar», que sólo aparece cuando el lote está cerrado (la sección 13).
Cuatro procesos no caben en el mes y tienen su propio calendario. Los décimos se pagan acumulados a quien no los mensualiza, cada uno en su fecha (la sección 10). Las utilidades se reparten hasta el 15 de abril sobre el resultado del ejercicio anterior (la sección 11). La liquidación de haberes no tiene fecha fija: se corre cuando alguien se va (la sección 12). Y el Formulario 107 cierra el año fiscal de cada trabajador.
Esto es lo que ningún capítulo suelto puede mostrar por sí solo: el rol no calcula las horas de la nada, las toma de los registros de asistencia que dejó el tiempo ②. Si esos registros no están conciliados y revisados cuando se cierra el rol, el rol se calcula igual — pero sobre datos incompletos.
flowchart TD
B{"Ficha del empleado:
¿«Basado en la asistencia»
está encendido?"}:::sis
C["El rol paga el horario fijo:
no depende de lo que
se marcó ese mes"]:::neu
D["El rol necesita
las horas reales
de asistencia"]:::sis
E["Registro del lector"]:::neu
F["La conciliación corre
cada 15 minutos"]:::sis
G["Registro de asistencia"]:::neu
H["Resumen Mensual:
horas y atrasos
ya calculados"]:::neu
I{"¿El mes quedó conciliado
y revisado ANTES de
generar los recibos?"}:::caj
J["Etapa Asistencias del asistente:
horas ya revisadas"]:::caj
K1["Etapa 4: el sistema genera
el recibo con datos completos"]:::sis
L["«Días trabajados»
cuadra con el mes"]:::ok
M["Sigue habiendo Pendientes,
atrasos o faltas sin calificar"]:::no
K2["El sistema IGUAL genera
el recibo, con las horas
que haya en ese momento"]:::sis
N["«Días trabajados»
NO cuadra con el mes"]:::no
O["Hay que volver a Borrador:
un recibo Validado
no se recalcula solo"]:::avi
B -->|"no"| C
B -->|"sí"| D --> E --> F --> G --> H --> I
I -->|"sí"| J --> K1 --> L
I -->|"no"| M --> K2 --> N --> O
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El interruptor «Basado en la asistencia» de la ficha del empleado (la sección 4) decide si esa persona depende de este enganche o no: apagado, el rol paga el horario fijo sin mirar lo que se marcó. Encendido, el rol sí depende de que la asistencia esté al día. Y aunque la asistencia no esté revisada, el sistema no detiene el cierre del rol para esperarla: genera el recibo con lo que tenga a mano, y es en la pestaña «Días trabajados» del rol individual donde se nota que el mes no cuadra (la sección 6) — ya con el recibo generado, no antes. Por eso el tiempo ③ de este capítulo no es un trámite de relleno: es la única oportunidad real de que el rol se calcule sobre datos completos.
El módulo de Nómina reúne todo lo que tiene que ver con pagar a un empleado: su ficha laboral, sus permisos, el rol del mes y los trámites frente al IESS. Se entra por Nómina, en la barra superior, y desde ahí siete menús se reparten el trabajo: cuatro para la operación de todos los meses, y tres para lo que se arma una sola vez o casi no se toca.
Tablero abre con las alertas pendientes, no con un resumen — es lo primero que conviene mirar cada vez que se entra. Empleados guarda la ficha de cada persona (la sección 4) y, dentro del mismo menú, los Ajustes salariales — los montos recurrentes que se suman en cada rol, ver la sección 5. Permisos no abre una lista: abre directo un calendario de vacaciones. Recibos de nómina es donde vive el trabajo del mes — Pagar quincena, Recibos de nómina y Periodos de nómina —, y Reportes junta las salidas ya calculadas: recibos de nómina, días laborables, otras entradas, la pista de auditoría y el Formulario 107. Trámites IESS trae por ahora un solo punto, validar la planilla del IESS. Y Configuración es el taller: jornadas, horarios y la estructura salarial completa — se detalla en la sección 3.
El día a día — dar de alta un empleado y revisarlo (la sección 4), cerrar el rol del mes (la sección 5), sacar un reporte o validar la planilla del IESS — lo lleva el Contador. Configuración es distinta: ahí se define el esqueleto que después usa cada rol — tipos de jornada, horarios, la estructura salarial completa — y se visita poco: al montar el sistema o al cambiar una regla, no cada mes.
flowchart TD
A["El Contador entra a Nómina"]:::caj
B["El sistema calcula solo
las alertas del Tablero"]:::sis
R1{"¿Hay alguna alerta
activa (cuenta bancaria,
periodos superpuestos,
prestaciones)?"}:::caj
N["Ignorarla y seguir
de largo"]:::no
RIESGO["Un pago sin cuenta a
dónde salir, o un periodo
duplicado que llega hasta
el recibo generado"]:::no
RES["Resolverla o dejarla
anotada antes de seguir"]:::caj
C{"¿Qué hay que hacer
hoy en Nómina?"}:::caj
D["Dar de alta o revisar una ficha,
cerrar el rol del mes,
sacar un reporte,
validar la planilla del IESS"]:::caj
E["Configurar jornadas, horarios
o la estructura salarial"]:::caj
F["Lo hace el Contador,
cada mes"]:::ok
G["Se toca casi nunca:
solo al montar el sistema
o al cambiar una regla"]:::neu
A --> B --> R1
R1 -->|"sí"| N --> RIESGO
R1 -->|"sí"| RES --> C
R1 -->|"no"| C
C -->|"trabajo del mes"| D --> F
C -->|"montar o ajustar el sistema"| E --> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El acceso no se reparte pantalla por pantalla: se reparte con seis perfiles, y cada menú está atado a uno. Quien no tiene el perfil no ve el menú.
En asistencia hay cuatro. Asistencia: Empleado (autoservicio) es el más bajo: ve lo suyo y pide sus horas extra. Asistencia: Supervisor es quien trabaja a diario con el control de asistencia — califica faltas, abre la bandeja de conciliación y ve los registros del lector. Asistencia: Administrador añade lo que se configura una vez: los dispositivos autorizados y los feriados. Asistencia: Gerente es el de consulta amplia.
En nómina hay dos, y son los nativos de Odoo. El usuario de nómina lleva el trabajo del mes. El administrador de nómina añade lo que toca la configuración salarial.
Ruta: Nómina → Configuración. Acá vive todo lo que un rol del mes da por sabido pero nadie arma cada mes: qué jornadas existen, qué horario tiene cada empleado y, sobre todo, la estructura salarial que calcula cada recibo. Se toca al montar el sistema, al abrir un horario nuevo o al cambiar una regla — no al cerrar un rol.
Tipos de jornada y Horarios de trabajo son la base: cada empleado trae en su ficha un horario asignado — por ejemplo «Tecnosmart 40h», el más común entre los empleados dados de alta (ver la sección 4) — y de ese horario sale cuántas horas laborables tiene esa persona en el mes. Cuentas por departamento/empleado define a qué cuenta contable va el gasto de nómina según quién cobre.
Es el bloque más largo, y el que casi nunca toca el Contador directamente: Beneficios, Recargo, Tipos de estructura, Estructuras, Reglas, Parámetros de regla y Categorías de reglas son las piezas del motor de cálculo que, mes a mes, convierten un salario básico en el neto que sale en cada recibo. Beneficios es, además, adonde apunta la alerta del Tablero «Configura tus prestaciones» (la sección 2): hoy no hay ninguna montada, y eso tiene una consecuencia directa en el rol del mes, explicada en la sección 5.
Ajustes trae la configuración general del módulo, y Tablero → Advertencias es donde se decide qué avisos aparecen al abrir Nómina — el mismo Tablero que se describe en la sección 2.
Ruta: Configuración → Ajustes. La sección Nómina trae seis cosas. Dos plazos de aviso: cuántos días antes avisar de que vence un contrato, y cuántos de que vence un permiso de trabajo. Dos fechas de arranque: la de reinicio del acumulado anual y la del primer período de nómina, que es la que marca desde cuándo el sistema se hace cargo. Cómo se le hacen llegar los recibos a la gente. Y una fecha de cierre, por debajo de la cual ya no se toca nada.
Debajo está la sección Contabilidad, con un solo interruptor que conviene entender antes de tocarlo, y la sección Vacaciones, con los permisos diferidos.
Ruta: Nómina → Empleados → Empleados. Es el punto de partida de todo lo demás: sin una ficha completa, un empleado no entra bien a un rol ni marca sus horas correctamente. Cada ficha reúne el cargo, el departamento, la fecha de ingreso, el sueldo y el contrato de una persona.
Ahí vive el Resumen del contrato — tipo de empleado, fecha del contrato, tipo de salario, el salario mismo, el costo para el empleador, la categoría del pago («Ecuador — mensual») y el código sectorial del IESS — y, al lado, el Horario: las horas laborables que trae asignadas (el horario que se configura en la sección 3), las horas diarias cuando es tiempo parcial, y un interruptor, «Basado en la asistencia», que por su propio nombre decide si las horas que se pagan salen del horario fijo o de lo que la persona marcó de verdad — se retoma en la sección 5.
Es aparte de la pestaña Nómina y trae tres bloques: el Panel de asistencia, con el interruptor «Marca entrada y salida» que activa o no el control de esa persona; las Credenciales para marcar (NIP, ID de credencial) que usa el lector; y la Biometría (opt-in, v1.1) — rostro y huella —, con su tabla de Consentimientos biométricos (LOPDP) aparte, porque son datos que la persona tiene que autorizar expresamente, no algo que se activa por defecto.
En resumen, así es el camino de una ficha nueva hasta que entra bien a un rol:
flowchart TD
A["Crear la ficha en
Nómina → Empleados"]:::caj
B["Completar la pestaña Nómina:
contrato, salario, horario"]:::caj
C{"¿Tiene fecha de inicio
de contrato?"}:::caj
E["Queda FUERA de la nómina,
sin que nadie avise"]:::no
D2{"¿Tiene Horario
asignado?"}:::caj
E2["Sin horario no hay días que
repartir: no hay atrasos
ni faltas que calcular"]:::no
D["Entra bien al rol del mes"]:::ok
REF["El rol del mes"]:::ref
F["Completar Asistencia EC:
credenciales para marcar"]:::caj
SW{"«Marca entrada
y salida»
¿encendido?"}:::caj
SWno["APAGADO —así nace—:
sale del panel de asistencia,
cobra su jornada por horario"]:::ok
SWsi["ENCENDIDO: la tarea
espera que pase
por el lector cada día"]:::caj
SWerr["Si en la práctica NO marca,
la tarea le crea UNA FALTA
cada día laborable"]:::no
G{"¿Tiene Cuenta bancaria
cargada?"}:::caj
H["El pago no tiene
a dónde salir"]:::avi
A --> B --> C
C -->|"no"| E
C -->|"sí"| D2
D2 -->|"no"| E2
D2 -->|"sí"| D
D -.->|"pasa a"| REF
D --> F --> SW
SW -->|"apagado"| SWno
SW -->|"encendido"| SWsi --> SWerr
D --> G
G -->|"no"| H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Ruta: Nómina → Recibos de nómina → Periodos de nómina. Un periodo agrupa a todos los empleados que se pagan juntos en un rango de fechas, y avanza por cuatro etapas — Empleados, Time (así, sin traducir, tal como sale en pantalla), Asistencias y Recibos de nómina — hasta quedar «Listo».
flowchart TD
T["El Contador decide abrir
el periodo: no hay fecha
automática que lo dispare"]:::caj
A["Abrir el periodo de nómina"]:::caj
B["Etapa 1 · Empleados:
revisar horario, fecha de ingreso
y salario de cada quien"]:::caj
Bq{"¿Falta alguien que
debería estar?"}:::caj
Bno["Revisar su ficha: fecha de
contrato, estructura salarial
u horario — ver el caso
«un empleado no aparece»"]:::no
C["Etapa 2 · Time:
revisar vacaciones y permisos
que caen en el período"]:::caj
D["Etapa 3 · Asistencias:
revisar horas trabajadas
de cada empleado"]:::caj
Dq{"¿El mes quedó conciliado
y sin Pendientes antes
de seguir?"}:::caj
Dno["Seguir de todas formas:
el asistente NO espera
a que se revise"]:::avi
E["Pulsar Continuar"]:::caj
F["Etapa 4: el sistema genera
un recibo por empleado"]:::sis
G["Periodo queda «Listo»
—es la ETAPA, no que
ya se pagó—"]:::neu
H["Recibo en «Borrador»"]:::neu
Hq{"¿Los días trabajados
cuadran con el mes?"}:::caj
Hno["Volver a Borrador,
corregir la causa en la
ficha o la asistencia,
y Calcular otra vez"]:::avi
I["Revisar y pulsar Validar"]:::caj
J["Recibo «Hecho»:
ya no se recalcula solo"]:::neu
K["Asociar el pago"]:::caj
L["Recibo «Pagado»"]:::ok
REF1["Reportes del lote
y archivo de pago
al banco"]:::ref
REF2["Planilla del IESS
y Formulario 107"]:::ref
T --> A --> B --> Bq
Bq -->|"sí"| Bno
Bq -->|"no, todos están"| C
Bno -.-> C
C --> D --> Dq
Dq -->|"no"| Dno
Dq -->|"sí"| E
Dno --> E
E --> F --> G
F --> H --> Hq
Hq -->|"no"| Hno --> H
Hq -->|"sí"| I --> J --> K --> L
L -.->|"pasa a"| REF1
L -.->|"pasa a"| REF2
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Las etapas Time y Asistencias son la última oportunidad de revisar qué permisos y qué horas van a entrar al cálculo: una vez generados, los recibos nacen con esos números ya fijados. Y que el periodo aparezca como «Listo» describe la etapa del proceso — no que ya se le pagó a alguien: eso se revisa recibo por recibo, como muestra el propio diagrama.
Al entrar al periodo, la primera etapa lista a los empleados incluidos, con el horario que trae cada uno desde su ficha (la sección 4), la fecha en que entró a trabajar y el salario con el que se va a calcular. No todos comparten el mismo horario: hay al menos una persona con jornada parcial («Tecnosmart parcial 6h») entre los demás, de tiempo completo.
El segundo paso del asistente se llama «Time», así, sin traducir — es el nombre que trae la pantalla, y el que aparece al pasar el cursor por encima es «Gestionar el tiempo». Muestra un calendario con las vacaciones y los permisos de los empleados incluidos que caen dentro del rango de fechas que se está pagando.
El tercer paso, «Asistencias», muestra otro calendario, esta vez con las horas trabajadas de cada empleado en el período, y un botón Continuar para avanzar a la última etapa. El contador de horas de cada fila sale mezclando los dos idiomas, del estilo «3h 40min / 176h (172h 20min left)» — las horas y minutos en español, y «left» sin traducir.
Pararse en estas dos etapas antes de pulsar «Continuar» tiene un propósito concreto: son la última oportunidad de revisar qué permisos y qué horas van a entrar al cálculo del rol, antes de que la etapa siguiente genere los recibos con esos números ya fijados.
La última etapa genera un recibo por persona, con el detalle de días trabajados, salario neto, sueldo básico, ley insular, horas extra y fondo de reserva — y arriba, el total del periodo: la suma del bruto y del neto de todos los recibos del periodo. Cada recibo trae su propio estado en la columna de la derecha, y hay un botón Validar en la parte superior de la pantalla.
Ruta: Nómina → Permisos, que abre directo un calendario mensual — no hay que entrar a nada más. Cada fila es un empleado con su acumulado de horas de vacaciones para el mes, a la derecha: 176 horas es lo normal, y la persona con jornada parcial de la sección anterior aparece con 132.
Ruta: Permisos. Un permiso nuevo pide el empleado, el tipo, las fechas y —lo que importa para el rol— el estado del recibo de nómina, que es lo que decide si ese permiso llega o no al cálculo del mes.
Arriba a la derecha está su recorrido: Por aprobar → Aprobado, con botones para devolverlo a aprobación o rechazarlo.
Ruta: Nómina → Empleados → Ajustes salariales. La propia pantalla lo explica: «Un ajuste salarial es un monto recurrente definido en el empleado y usado en todos los recibos de nómina de un periodo. Por ejemplo, Recuperación de dinero, Pensión alimenticia, Evaluación salarial, etc.». Hoy esa lista está completamente vacía.
El rol individual es el recibo de nómina de UN empleado en UN mes: cuánto trabajó, qué le entró aparte del sueldo, cómo se calculó su salario y cuánto le queda neto. Es la pantalla a la que vas cuando alguien pregunta «¿por qué me salió esto en mi rol?» — no el reporte agregado del lote entero, que va en la sección 7.
Ruta: Recibos de nómina → Recibos de nómina, y de esa lista se abre el recibo de un empleado en particular. El mismo recibo también se abre desde el rol del mes completo, tocando la fila de ese empleado.
Arriba del recibo hay tres pasos: Borrador → Validado → Pagado. Nace en Borrador, el botón Calcular rellena las cifras, Validar lo deja firme, y pasa a Pagado cuando se le asocia el pago. Mientras está en Borrador, cualquier cifra que muestre puede seguir cambiando — no lo trates como definitivo hasta que esté Validado.
La primera pestaña reparte el mes en líneas: cuántos días entraron por asistencia normal, cuántos por día festivo, y así con cada tipo que haya tenido ese empleado en el período. Cada línea trae sus días, sus horas y el importe que representa — la suma de esas líneas es la que alimenta el sueldo del cálculo final.
Si un empleado faltó sin permiso registrado, o si un permiso no quedó bien cargado antes de calcular el rol, esta es la pestaña donde se nota: el número de días no va a cuadrar con el mes completo. Conviene revisarla ANTES de validar, porque una vez validado el recibo ya no se recalcula solo — hay que volver a Borrador para tocarlo.
Aquí caen las novedades del mes que no son el sueldo base: un anticipo que se le pagó a este empleado, un préstamo que se le está descontando, comisiones, o cualquier otro concepto que la regla salarial de la empresa tenga configurado. Si un empleado no tiene ninguna novedad ese mes, la pestaña simplemente sale vacía — no es un error.
Es la pestaña que de verdad importa: la que arma el neto. Lista el sueldo, las provisiones de décimo tercero y décimo cuarto prorrateadas dentro del mes (cuando la empresa las paga así), el bruto que resulta de sumarlas, los descuentos —empezando por el aporte personal al IESS— y termina en el neto a recibir. Cada línea es una regla salarial aplicada en orden: no se puede saltar una fila para entender el resultado, hay que leerlas de arriba hacia abajo.
El aporte personal al IESS sale siempre en negativo, porque es un descuento sobre el ingreso: el sistema no lo resta aparte, lo presenta ya como la línea que se le quita al empleado. Y se calcula sobre el sueldo, no sobre el bruto: 9,45% de $800,00 da exactamente $75,60 — si lo buscas sobre el bruto de $906,83 no te va a cuadrar. El neto a recibir es la última línea y es, literalmente, la suma de todas las de arriba.
flowchart TD
A["Recibo nace en «Borrador»"]:::neu
B["Pulsar Calcular"]:::caj
C["Sueldo"]:::neu
D["+ Décimo tercero
prorrateado del mes"]:::sis
E["+ Décimo cuarto
prorrateado del mes"]:::sis
F["= Bruto"]:::neu
Q{"¿Sobre qué se calcula
el aporte personal IESS?"}:::sis
Qno["✗ NO sobre el Bruto
($906,83) — esa cifra
no entra en esta cuenta"]:::no
G["Sobre el SUELDO ($800,00):
9,45% = -$75,60"]:::ok
H["= Neto a recibir
(Bruto − aporte IESS)"]:::neu
Iq{"¿El recibo ya
está correcto?"}:::caj
Ino["Sigue en «Borrador»:
cualquier cifra puede
seguir cambiando"]:::avi
I["Revisar y pulsar Validar"]:::caj
J["Recibo «Validado»:
ya no se recalcula solo"]:::ok
K["Asociar el pago"]:::caj
L["Recibo «Pagado»"]:::ok
REF["Reportes del lote
y trámites al IESS"]:::ref
A --> B --> C --> F
D --> F
E --> F
C --> Q
F --> Q
Q -.-> Qno
Q --> G --> H --> Iq
Iq -->|"no"| Ino --> B
Iq -->|"sí"| I --> J --> K --> L
L -.->|"pasa a"| REF
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
La cuarta pestaña trae datos de contexto del recibo que no entran en el cálculo. Son seis: el título del recibo, una casilla «Sin días trabajados», una nota libre, la fecha de pago, la fecha contable —que es la del último día del período, no la del pago— y el diario de salarios al que irá el asiento.
Es la pestaña a la que se acude para confirmar CONTRA QUÉ se calculó el rol y adónde va contablemente, no para revisar cifras.
Mientras el rol individual (la sección 6) muestra un empleado a la vez, los reportes cruzan a TODO el lote: cuánto se pagó en total, en qué se fue el dinero que no es sueldo base, y qué cambios de contrato quedaron anotados. Ruta: Reportes, con cinco pantallas — Recibos de nómina, Días laborables, Otras entradas, Pista de auditoría y Formulario 107. Esta sección cubre las primeras cuatro; el Formulario 107 tiene su propia sección porque además es un trámite, no solo un reporte — ver la sección 9.
Una vez sin el filtro, se puede agrupar por rol de nómina, por empleado o por regla salarial usando el botón «Medidas» y las cabeceras de la tabla dinámica, igual que en cualquier reporte de este tipo en Odoo. El lote completo de agosto 2026, medido de verdad, suma el bruto y el neto de todos sus recibos — cifras que solo se ven filtrando por ese rol en particular, no en el total acumulado del año.
Reparte, en la misma lógica de tabla dinámica, cuánto del pago corresponde a asistencia normal y cuánto a días festivos — la misma división que ya viste por empleado en la sección 6, aquí sumada para el lote.
Es el reporte que junta lo que no es sueldo base: anticipos, préstamos, comisiones y cualquier otro concepto que entre por la pestaña «Entradas salariales» del rol individual. Es la vista rápida para responder «¿cuánto se ha entregado en anticipos este mes?» sin abrir recibo por recibo.
Es el historial de cambios sobre los datos del empleado que afectan la nómina: cambio de zona horaria, de tipo de contrato, de estructura salarial o de salario. Cada línea dice quién hizo el cambio, cuándo, y el valor de antes y el de después.
Este reporte sirve para responder «¿cuándo le subieron el sueldo a este empleado?» o «¿desde cuándo tiene este tipo de contrato?» sin tener que ir a buscarlo en su ficha. Se filtra por empleado desde la barra de búsqueda, igual que los demás reportes de este módulo.
Un anticipo es un pago que se le entrega a un empleado ANTES de que se cierre el rol del mes — la quincena, un adelanto por una emergencia, o cualquier monto suelto que haya que descontarle después. El sistema no lo trata como un rol aparte: lo registra como un recibo fuera de ciclo y lo descuenta solo, completo, del rol de fin de mes de ese mismo empleado.
Ruta: Recibos de nómina → Pagar quincena. Se abre desde el rol del mes en curso — el mismo que ves armado en la sección 5— y trae un asistente pequeño con cuatro campos.
Empleado es a quién se le entrega el anticipo — uno a la vez, no se reparte a todo el lote desde aquí. Fecha de pago es la fecha en la que de verdad se entregó el dinero, no necesariamente hoy. Monto a pagar es el valor completo del anticipo, en dólares. Y Nota es un campo libre para dejar por escrito el motivo — útil para cuando alguien pregunte después por qué salió ese descuento en su rol de fin de mes.
Al confirmar con el botón Pagar quincena, el sistema crea un recibo fuera de ciclo por ese monto para ese empleado. Ese recibo queda con su propia fecha de pago, aparte del rol mensual — y es justamente el que después se ve reflejado en el reporte «Otras entradas» bajo el concepto «Anticipo de sueldo» (ver la sección 7).
El anticipo no se le vuelve a preguntar a nadie cuándo se descuenta: el propio asistente lo deja escrito —se descuenta solo, completo, en el rol de fin de mes del mismo empleado. No hay opción, desde este asistente, de repartir el descuento en varias quincenas o meses; si el monto es grande y hace falta prorratearlo, es una decisión que hay que tomar y ejecutar aparte, el sistema no la ofrece aquí.
flowchart TD
T["El empleado necesita
un adelanto ANTES
de que cierre el mes"]:::caj
A["El Contador abre
Pagar quincena desde
el rol del mes en curso"]:::caj
B["Llenar Empleado, Fecha de pago,
Monto a pagar y Nota"]:::caj
C["Pulsar Pagar quincena"]:::caj
D["El sistema crea un
recibo fuera de ciclo"]:::sis
E["Aparece en el reporte
Otras entradas"]:::neu
REFrep["Los reportes
de nómina"]:::ref
F["El sistema lo descuenta
solo, completo, en el rol de
fin de mes del mismo empleado"]:::sis
G["Rol de fin de mes: calcular,
validar y pagar con el
descuento ya incluido"]:::caj
REFrol["El rol del mes"]:::ref
Mq{"¿Hace falta que el mismo
descuento se repita
el mes siguiente?"}:::caj
Mno["«Ajustes salariales» está
VACÍO en esta instalación:
nada lo repite solo"]:::no
Mrep["Hay que volver a crear
el anticipo a mano,
mes por mes"]:::avi
T --> A --> B --> C --> D --> E -.->|"pasa a"| REFrep
D --> F --> G -.->|"pasa a"| REFrol
G --> Mq
Mq -->|"sí"| Mno --> Mrep
Mq -->|"no, era único"| G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
«Pagar quincena» no reemplaza el rol mensual ni lo adelanta: sigue haciendo falta calcular, validar y pagar el rol de fin de mes con normalidad, con el descuento del anticipo ya incluido ahí. Tampoco es el lugar para registrar un préstamo de largo plazo con cuotas — ese concepto, si existe, entra por la pestaña «Entradas salariales» del rol individual, no por este asistente.
Estos son los dos trámites que salen de la nómina hacia afuera: la planilla que valida los aportes reportados al IESS contra lo que el sistema calculó, y el Formulario 107 que resume el ejercicio anual para cada empleado. Los dos dependen de que el lote de nómina ya esté armado — no se puede validar ni completar sobre un mes que todavía no tiene recibos.
flowchart TD
A["El rol del mes ya
está pagado"]:::ref
B["Validar planilla del IESS"]:::caj
C["Elegir el Lote de nómina
a comparar"]:::caj
D["Entregar la planilla:
CSV o texto pegado"]:::caj
E["Pulsar Validar"]:::caj
F["El sistema compara lo
calculado contra la planilla"]:::sis
Fq{"¿Cuadra lo calculado
contra la planilla
del IESS?"}:::sis
Fno["NO cuadra: revisar
diferencia por diferencia
—camino no probado
todavía con planilla real—"]:::no
Fok["Cuadrado: nada
más que hacer aquí"]:::ok
G["Formulario 107"]:::caj
H["Abrir el registro
del ejercicio (por año)"]:::caj
I["Revisar Empleados elegibles"]:::caj
Iq{"¿El número de
elegibles parece bajo?"}:::caj
Ino["Sólo entra quien tiene un rol
VALIDADO o pagado del año:
buscar roles sin cerrar"]:::avi
J["Pulsar Completar"]:::caj
K["El sistema arma el formulario
con esos empleados"]:::sis
L["Sin la app Documentos, no le
aparece en el portal del empleado"]:::avi
M["Entregar al SRI"]:::ok
A --> B --> C --> D --> E --> F --> Fq
Fq -->|"no"| Fno
Fq -->|"sí"| Fok
A --> G --> H --> I --> Iq
Iq -->|"sí"| Ino --> J
Iq -->|"no, parece razonable"| J
J --> K --> L --> M
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Ruta: Trámites IESS → Validar planilla del IESS. Abre un asistente que compara lo que el IESS tiene registrado contra lo que calculó el rol de nómina elegido.
cedula;sueldo_aportado;aporte_personal;aporte_patronal;prestamos.Primero se elige el Lote de nómina contra el que se va a comparar — el rol del mes que corresponda. Después, se entrega la planilla del IESS por cualquiera de los dos caminos: el archivo CSV tal como lo entrega el IESS, o el texto pegado directamente, cédula por cédula, en el orden exacto que muestra el propio campo: cédula, sueldo aportado, aporte personal, aporte patronal y préstamos, separados por punto y coma. El botón Validar ejecuta la comparación.
Uno: el lote tiene que estar cerrado. Contra un lote a medio calcular se niega a comparar, y lo dice con esas palabras. Es correcto: comparar contra números que todavía pueden cambiar no prueba nada.
Dos: no pegues la fila de títulos. El propio recuadro muestra los nombres de las columnas como ejemplo de formato, y es natural copiarlos junto con los datos. Si se pegan, el asistente revienta: intenta convertir la palabra del título en un número. Van sólo las filas de datos.
Tres, y es lo importante: una cédula que no exista en el sistema desaparece sin dejar rastro. Se probó a propósito con una planilla que traía a alguien que no está dado de alta, y el resultado no la mencionó de ninguna forma: ni fila, ni aviso, ni conteo. La diferencia de valores sí la detecta bien y la muestra con su importe.
Ruta: Reportes → Formulario 107. Es un registro por ejercicio fiscal —uno por año, no uno por mes— que junta la información que exige ese formulario para cada empleado elegible de la empresa.
Al abrir el registro del ejercicio, la ficha trae la Descripción, el campo Year, y un contador de Empleados elegibles arriba a la derecha. El botón Completar es el que arma el formulario con esos empleados.
El contador de Empleados elegibles casi nunca coincide con el total de gente de la empresa, y el motivo es el criterio del certificado: sólo entra quien tiene al menos un rol validado o pagado dentro de ese ejercicio. Los borradores no cuentan.
De ahí salen las dos causas que hay que descartar, en este orden. Quien no cobró nada ese año no recibe certificado, y eso es correcto: no hay retención que certificar. Pero quien sí cobró y tiene sus roles en borrador también queda fuera, y eso no es correcto: es un rol sin cerrar.
Sobre la publicación en el portal: si un empleado no tiene instalada la aplicación Documentos, su Formulario 107 no le va a aparecer en el portal aunque el trámite se complete — eso es un aviso del propio sistema, escrito en la ficha, no una suposición de este manual.
El décimo tercero y el décimo cuarto se pueden cobrar de dos maneras, y la ley deja que cada trabajador elija. O se reparten mes a mes dentro del rol —eso es «mensualizar»—, o se guardan y se pagan de golpe en su fecha. El sistema no adivina cuál toca: lo decide un solo interruptor en la ficha del empleado, y de ese interruptor cuelga todo lo demás.
En la ficha del empleado, pestaña Nómina, justo debajo del sueldo, está la casilla Mensualiza beneficios. Marcada, la persona cobra sus décimos repartidos en cada rol. Desmarcada, no los ve en el rol: se le acumulan y se le pagan cuando llegue la fecha.
Que sea un solo interruptor no es un detalle de diseño, es lo que impide pagar dos veces. Las dos reglas que pagan el décimo tercero son espejo la una de la otra: la del rol mensual sólo actúa cuando la casilla está marcada, y la del lote acumulado sólo actúa cuando está desmarcada. Nunca pueden estar activas a la vez para la misma persona, porque las dos leen la misma casilla y se preguntan lo contrario.
Ruta: Configuración → Estructuras salariales. Ahí están las seis formas de armar un recibo que trae la instalación ecuatoriana. La mayoría de los meses sólo se usa la primera.
El Rol de pagos mensual es el de todos los meses. La Liquidación de haberes (finiquito) es la de quien se va. La Participación de utilidades es la de abril. Décimo tercero acumulado y Décimo cuarto acumulado son las de este capítulo. Y Quincena (pago fuera de ciclo) es la que usa por detrás el asistente de anticipos que se explica en la sección 8.
Dos reglas, nada más. Eso es lo que la hace fácil de auditar: quien reciba este recibo verá una sola línea con el monto y el líquido igual a esa línea. Comparado con las cuarenta y un reglas del rol mensual, aquí no hay dónde esconder un error.
Se arma como cualquier lote: Recibos de nómina → Lotes, un lote nuevo, se elige la estructura «Décimo tercero acumulado» (o la del cuarto), se generan los recibos, se calculan, se validan y se pagan. La diferencia con el rol del mes no está en los botones, está en quiénes aparecen: sólo salen con monto las personas que tienen la casilla desmarcada.
flowchart TD
T["Llega la fecha del décimo
—diciembre el tercero,
agosto o marzo el cuarto—"]:::caj
Q{"¿Este trabajador tiene
marcada la casilla
Mensualiza beneficios?"}:::caj
Msi["SÍ está marcada"]:::neu
Mno["NO está marcada"]:::neu
R1["Ya viene cobrando su
décimo en cada rol mensual,
repartido en doceavos"]:::sis
R2["Se le fue acumulando:
hay que pagárselo ahora"]:::sis
Y["No entra en el lote
del décimo acumulado"]:::ok
A["El Contador arma un lote
con la estructura
Décimo tercero acumulado"]:::caj
B["Generar los recibos
del lote"]:::caj
C["El sistema calcula
el rubro acumulado"]:::sis
D{"¿El monto que salió
cuadra con lo que la empresa
tenía provisionado?"}:::caj
Dno["No cuadra"]:::no
Drev["Revisar la ficha:
casilla, sueldo y fecha
de ingreso de esa persona"]:::avi
E["Validar el lote"]:::caj
F["Pagar y entregar
el recibo"]:::caj
REFrol["El rol del mes"]:::ref
REFrec["Leer un rol individual"]:::ref
T --> Q
Q -->|"sí"| Msi --> R1 --> Y
R1 -.->|"se ve en"| REFrol
Q -->|"no"| Mno --> R2 --> A --> B --> C --> D
D -->|"no"| Dno --> Drev --> C
D -->|"sí"| E --> F
F -.->|"se lee como"| REFrec
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#025C40,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
No hay ninguna pantalla que muestre cuánto lleva acumulado cada persona a mitad de año. El monto sólo aparece cuando se corre el lote y se calculan los recibos. Quien quiera saber en julio cuánto debe la empresa por décimos tiene que armar un lote de prueba y mirar el resultado, o sacar la cifra por fuera del sistema.
Es una ausencia, no un error de configuración: la información existe —el cálculo la produce cuando se le pide— pero no hay dónde consultarla sin correr el proceso. Está reportada como hueco del producto.
Cada año, hasta el 15 de abril, la empresa reparte entre sus trabajadores el 15 % de la utilidad líquida del ejercicio anterior. No se reparte en partes iguales: la ley lo divide en dos bolsas con reglas distintas, y de ahí sale que dos personas con el mismo sueldo cobren cantidades diferentes. Este capítulo explica de dónde sale cada número.
De ese 15 %, diez puntos se reparten entre todos los trabajadores en proporción al tiempo trabajado durante el ejercicio. Los cinco puntos restantes se reparten en proporción a las cargas familiares, ponderadas también por el tiempo trabajado.
Quien no tiene cargas familiares no cobra de la segunda bolsa. Eso no es un descuento ni un castigo: esa bolsa es, por ley, de quien tiene cargas. Conviene tenerlo dicho de antemano, porque es la pregunta que llega todos los abriles.
Es la diferencia más importante entre las utilidades y todo lo demás de la nómina. El sueldo de una persona no depende de lo que cobren los otros; su parte de las utilidades sí. Si alguien entró en junio, su medio año hace que suba la parte de todos los demás.
Por eso el monto a repartir y el ejercicio se teclean en el lote, una sola vez, y cada recibo lee de ahí lo que le toca. Un recibo de utilidades suelto, creado fuera de un lote, no tiene con qué calcularse: el sistema lo dice en voz alta en vez de poner cero. Un cero silencioso aquí sería un trabajador que se queda sin cobrar.
Ruta: Recibos de nómina → Lotes → Nuevo, y se elige la estructura Participación de utilidades. Al elegirla, en ese mismo cuadro de creación, aparecen dos campos que no salen en un lote de rol mensual:
Ejercicio es el año cuyo resultado se reparte, no el año en que se paga. Las utilidades de un ejercicio se pagan hasta el 15 de abril del año siguiente, así que en abril se teclea siempre el año anterior.
Utilidad a repartir (15 %) es la cifra en dólares que se va a entregar. No sale de Odoo: sale de la declaración de renta de la empresa. Aquí se teclea el resultado, ya calculado por contabilidad.
Es el tropiezo más común, y tiene una explicación sencilla: los dos campos aparecen en el cuadro de creación, y el lote, una vez creado, ya no muestra ese cuadro. Se ve como una tarjeta con los pasos del proceso. Quien creó el lote sin teclear la cifra no la encuentra por ninguna parte, y el reparto sale en cero para todos sin que nada lo explique.
Para eso está el botón Utilidad a repartir en el menú de la tarjeta del lote. Abre un cuadro con los dos campos y permite corregirlos cuantas veces haga falta antes de validar. El botón sólo aparece en los lotes de utilidades: en uno de rol mensual esos campos no significan nada.
De los roles mensuales ya validados del ejercicio, con el mismo criterio de días de afiliación que usa el décimo cuarto. No de las fechas del contrato. La diferencia importa: un contrato vigente todo el año, pero con tres meses de permiso sin sueldo, no trabajó el año entero, y las utilidades se reparten por lo trabajado.
De ahí se sigue la condición que más problemas da en la práctica: si los roles del ejercicio no están validados, el reparto sale en cero. No hay error, no hay aviso: hay ceros. Antes de correr las utilidades hay que comprobar que los doce roles del año anterior están cerrados.
Las cargas familiares, en cambio, se cuentan al momento de repartir, no mes a mes. Es el criterio del formulario del Ministerio del Trabajo: cuenta quién tiene cargas vigentes hoy, no quién las tuvo en marzo del año pasado.
flowchart TD
T["Se cierra el ejercicio y
contabilidad calcula el 15 %
de la utilidad líquida"]:::caj
P{"¿Los roles mensuales
del ejercicio están
TODOS validados?"}:::caj
Pno["Alguno quedó en borrador"]:::no
Pfix["Cerrar ese rol antes
de seguir: si no, ese mes
no cuenta para nadie"]:::avi
REFrol["El rol del mes"]:::ref
C{"¿Las cargas familiares
de la gente están
al día en las fichas?"}:::caj
Cno["Hay fichas sin actualizar"]:::no
Cfix["Actualizarlas: se cuentan
como estén HOY, no como
estaban el año pasado"]:::avi
REFfic["La ficha del empleado"]:::ref
A["Crear un lote con la estructura
Participación de utilidades"]:::caj
B["Teclear el Ejercicio y la
Utilidad a repartir. Si el lote ya
existe: botón Utilidad a repartir"]:::caj
D["Generar los recibos
del lote"]:::caj
E["El sistema reparte
10 % por tiempo trabajado"]:::sis
F["y 5 % por cargas
familiares ponderadas"]:::sis
G{"¿La suma de todos los
recibos da exactamente
la cifra tecleada?"}:::caj
Gno["No da"]:::no
Grev["¿Falta la cifra a repartir,
o hay roles del ejercicio
sin validar?"]:::avi
H["Validar el lote"]:::caj
I["Pagar antes del
15 de abril"]:::ok
J["Declarar el reparto
ante el Ministerio
del Trabajo"]:::caj
T --> P
P -->|"no"| Pno --> Pfix -.->|"vuelve a"| REFrol
Pfix --> P
P -->|"sí"| C
C -->|"no"| Cno --> Cfix -.->|"vuelve a"| REFfic
Cfix --> C
C -->|"sí"| A --> B --> D
D --> E
D --> F
E --> G
F --> G
G -->|"no"| Gno --> Grev --> D
G -->|"sí"| H --> I --> J
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#025C40,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Hay una sola comprobación que vale, y es aritmética: la suma de lo que reciben todos tiene que dar exactamente la cifra que se tecleó. Si da menos, alguien quedó fuera del reparto — y quien queda fuera casi siempre es alguien cuyos roles del ejercicio no están validados, o alguien que ingresó ese año y aún no tiene ningún rol cerrado.
La segunda comprobación es por persona: quien más tiempo trabajó tiene que cobrar más de la primera bolsa, y quien más cargas tiene, más de la segunda. Si dos personas con el mismo tiempo y las mismas cargas cobran distinto, algo está mal en los días de afiliación de una de ellas.
Cuando alguien deja la empresa hay que calcularle lo que se le debe y hacerle firmar el acta de finiquito. Ese cálculo no es un rol mensual con otro nombre: cambia lo que se paga, cambia lo que se descuenta, y hay dos rubros que dependen enteramente del motivo por el que la persona se va. Equivocarse en el motivo cuesta dinero en las dos direcciones.
En la ficha del empleado hacen falta fecha de salida y motivo de salida. Si falta cualquiera de los dos, el sistema se niega a calcular y lo dice. Eso es deliberado: un finiquito calculado «con lo que hay» produce un número que alguien firma, y luego no hay vuelta atrás.
La fecha de ingreso también tiene que estar, porque de ella salen los años de servicio.
Dos de los cinco rubros del finiquito no se pagan siempre:
El desahucio (art. 185 del Código del Trabajo) es el 25 % de la última remuneración por cada año de servicio, proporcional a la fracción: quien trabajó tres años y medio cobra por tres años y medio, no por tres ni por cuatro.
La indemnización por despido intempestivo (art. 188) son tres meses de remuneración hasta los tres años de servicio. Pasados los tres, un mes por año, con tope de veinticinco. Y aquí la fracción de año cuenta como año completo — es justamente lo que protege a quien es despedido a los tres años y un mes.
Cada motivo de salida trae marcado cuál de los dos paga. Una renuncia no paga indemnización por despido; un despido intempestivo sí. Pagarlos siempre le regalaría una indemnización a la empresa en cada renuncia; no pagarlos nunca dejaría a la persona despedida sin lo suyo.
El desplegable de motivos mezcla dos orígenes. Están los del Código del Trabajo —renuncia, desahucio, despido intempestivo, visto bueno, fin de plazo, mutuo acuerdo, muerte, jubilación— y están cuatro que Odoo trae de fábrica para cualquier país, con nombres parecidos: «Despedido», «Renunció», «Jubilado», «Fallecido».
Los cuatro genéricos no dicen si corresponde desahucio o indemnización, porque esa distinción es ecuatoriana y ellos no la tienen. Elegir el «Despedido» genérico pensando en un despido intempestivo dejaba a esa persona sin la indemnización del artículo 188, y el recibo salía con aspecto correcto.
Fíjate en el orden del desplegable: los cuatro que no valen salen arriba y los correctos quedan debajo, con nombres casi iguales. «Despedido» y «Despido intempestivo» no son lo mismo aunque lo parezcan — el segundo es el que paga.
Hoy el sistema no lo permite: si el motivo no es del país, se niega a calcular y lo dice. Quien necesite un motivo propio puede crearlo, pero tiene que ponerle el país Ecuador y marcar qué paga.
El sueldo de los días trabajados es la remuneración pendiente del último mes: quien sale el día 20 cobra veinte días. Es el único rubro del finiquito que sí es aportable al IESS, y por eso lleva su aporte personal descontado justo debajo.
El décimo tercero y el décimo cuarto proporcionales son lo que se le acumuló y no alcanzó a cobrar. Sólo tienen monto para quien no mensualiza sus beneficios, por lo que se explica en la sección 10.
Las vacaciones no gozadas salen del saldo de ausencias del propio sistema, no de una cuenta llevada aparte: los días que el plan de acumulación dice que le quedan, valorados a treintavos de la remuneración.
Y luego el desahucio y la indemnización, si el motivo los paga. Ninguno de los cuatro últimos es aportable al IESS ni materia gravada de renta en su parte indemnizatoria.
Los mismos conceptos que se le venían descontando en el rol: consumos en el almacén, alimentación, servicio médico, exequial, extensión de seguro de salud, uniformes y cualquier otra cuenta por cobrar. El finiquito es la última oportunidad de cobrarlos, así que conviene revisarlos uno por uno antes de validar.
Se arma como un lote: Recibos de nómina → Lotes → Nuevo, se elige la estructura Liquidación de haberes (finiquito), se pone el período del mes de salida y se generan los recibos. Cada recibo sale marcado como nómina fuera de ciclo, que es lo correcto: no forma parte del rol mensual.
Es lo primero que pasa cuando se prueba por primera vez, y el sistema no explica por qué: se recorren los pasos del asistente, se marca a la persona, y al final la lista de recibos sale vacía.
El motivo está en cómo el generador elige a quién le toca recibo: se queda sólo con las personas cuyo tipo de estructura coincide con el tipo de la estructura del lote. A quien no coincide lo descarta sin decir nada — no hay error, no hay aviso, simplemente no aparece.
Así que cuando el lote sale vacío, lo que hay que mirar es el tipo de estructura en la pestaña de nómina de esa persona, y compararlo con el de la estructura de liquidación de haberes. Tienen que ser el mismo.
El mes de salida tiene dos formas de pagarse: en el rol mensual, o dentro del finiquito. El peligro es hacerlo por las dos, y no se nota hasta que alguien cuadra el banco.
El sistema lo impide sin preguntar nada: antes de pagar los días trabajados comprueba si ya existe un recibo validado que le haya abonado sueldo a esa persona por esos mismos días. Si lo hay, el rubro sale en cero. La pregunta que se hace no es «¿de qué estructura era aquel recibo?» sino «¿alguien ya le pagó sueldo por este tramo?», que es la que de verdad importa.
flowchart TD
T["Alguien deja
la empresa"]:::caj
F{"¿La ficha tiene fecha de
salida, motivo de salida
y fecha de ingreso?"}:::caj
Fno["Falta alguno"]:::no
Ffix["El sistema se niega a
calcular y dice cuál falta"]:::avi
REFfic["La ficha del empleado"]:::ref
L["Crear un lote con la
estructura Liquidación
de haberes (finiquito)"]:::caj
G["Generar y calcular
los recibos"]:::caj
S{"¿El rol del mes de salida
YA le pagó el sueldo
de esos días?"}:::sis
Ssi["El sueldo pendiente
sale en cero: no se
paga dos veces"]:::ok
Sno["Se le pagan los días
que alcanzó a trabajar,
con su aporte al IESS"]:::sis
Mg{"¿El motivo es del Código
del Trabajo ecuatoriano?"}:::sis
Mgno["Es uno de los genéricos
de Odoo: se niega a calcular
y lo dice"]:::no
Mgfix["Elegir un motivo del país,
o ponerle el país Ecuador
y marcar qué paga"]:::avi
M{"¿Qué dice el MOTIVO
de la salida?"}:::sis
Mren["Renuncia"]:::neu
Mdes["Despido
intempestivo"]:::neu
Mvb["Visto bueno"]:::neu
R1["Sin indemnización
por despido"]:::sis
R2["Con desahucio e
indemnización"]:::sis
R3["Según lo que marque
ese motivo"]:::sis
P["Décimos proporcionales
y vacaciones no gozadas"]:::sis
D["Restar lo que debía:
almacén, alimentación,
uniformes, otras cuentas"]:::caj
Q{"¿El líquido cuadra con lo
que la empresa calculó
por su cuenta?"}:::caj
Qno["No cuadra"]:::no
Qrev["Revisar años de servicio,
motivo y saldo de vacaciones"]:::avi
V["Validar y pagar"]:::caj
A["Firmar el acta de finiquito
ante el Ministerio
del Trabajo"]:::ok
T --> F
F -->|"no"| Fno --> Ffix -.->|"se corrige en"| REFfic
Ffix --> F
F -->|"sí"| L --> G --> S
S -->|"sí"| Ssi --> Mg
S -->|"no"| Sno --> Mg
Mg -->|"no"| Mgno --> Mgfix --> Mg
Mg -->|"sí"| M
M -->|"renuncia"| Mren --> R1
M -->|"despido"| Mdes --> R2
M -->|"visto bueno"| Mvb --> R3
R1 --> P
R2 --> P
R3 --> P
P --> D --> Q
Q -->|"no"| Qno --> Qrev --> G
Q -->|"sí"| V --> A
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#025C40,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Hay dos criterios legítimos para decir qué es la «última remuneración», y la empresa elige el suyo en Configuración → Ajustes → Nómina. No hay uno correcto para todas.
El sueldo del contrato es lo que sale por omisión. Es el criterio que se aplica en la práctica y el que la empresa justifica ante el inspector con un solo documento.
El promedio de lo percibido es lo que manda el artículo 95 cuando el trabajador cobra en dinero, de forma habitual, algo más que su sueldo: comisiones, sobretiempo todos los meses, destajo. En esas empresas el sueldo base deja fuera parte de lo que la ley considera remuneración, y el finiquito sale corto.
Al elegir el promedio aparece un segundo campo, los meses que entran en él. Doce recoge un año completo y no deja fuera la estacionalidad de las comisiones.
Validar el rol no paga a nadie. El dinero sale cuando alguien lleva la lista al banco, y esa lista se genera desde el propio lote. Este capítulo explica dónde está el botón, qué hace falta tener listo antes de pulsarlo, y —lo más importante— qué comprobar en el archivo antes de subirlo.
Ruta: Recibos de nómina → Lotes, se abre el lote del mes, y el botón es Pagar. La pregunta que llega siempre es por qué no se ve: el botón sólo existe cuando el lote está cerrado. Mientras el lote esté en borrador o abierto no hay nada que pagar, y el sistema no ofrece el botón. Primero se valida el lote, después se paga.
El botón abre un asistente pequeño con tres decisiones.
Modo es la primera y la que más cambia. Hay tres.
Banco Pichincha (pago a cuenta) genera el archivo en el diseño exacto que acepta el portal del banco, listo para subir. Es el que se usa para pagar de verdad.
CSV genera una lista genérica de pagos. Sirve como respaldo o para revisar, pero no es el formato de ningún banco: no se sube tal cual a la banca en línea.
Manualmente no genera nada. Se usa cuando el pago se hace por fuera del banco —en efectivo, o con transferencias sueltas hechas a mano— y sólo sirve para marcar los recibos como pagados.
Fecha de pago es el día bancario en que se quiere que el banco liquide el lote. No es la fecha de hoy necesariamente: es la que se le pide al banco.
Incluir no pagados permite meter en el mismo archivo recibos validados de otros lotes que quedaron sin pagar. Es útil para arrastrar un recibo que se quedó atrás, y es peligroso por lo mismo: hay que mirar la lista que queda seleccionada antes de generar.
Al elegir el modo del Pichincha aparece además Concepto para el banco. Es lo que la persona ve escrito en su estado de cuenta. El sistema propone el mes del período de los recibos —no el mes en que se paga, así que un rol de agosto pagado en septiembre dice agosto— y se puede reescribir antes de generar.
El archivo se arma recorriendo las cuentas bancarias registradas en la ficha de cada empleado. Una persona sin cuenta registrada no produce ninguna fila.
Hasta que se corrigió, ese caso pasaba en silencio: el archivo se generaba, se subía al banco, se pagaba a todos los demás, y esa persona se enteraba de que no había cobrado el día de pago. Ahora el sistema se niega a generar el archivo y nombra a quién le falta la cuenta. Quien de verdad cobre por fuera del banco se paga con el modo «Manualmente», que no genera archivo y por tanto no puede dejar a nadie fuera.
flowchart TD
T["El rol del mes está
calculado y revisado"]:::caj
V["Validar el lote"]:::caj
REFrol["El rol del mes"]:::ref
B{"¿Aparece el botón
Pagar en el lote?"}:::caj
Bno["No aparece"]:::no
Bfix["El lote no está cerrado:
validarlo primero"]:::avi
M{"¿Cómo se le paga
a esta gente?"}:::caj
Mman["Por fuera del banco
—efectivo o transferencias
hechas a mano—"]:::neu
Mcsv["Con el archivo
del Banco Pichincha"]:::neu
Man["Modo Manualmente:
no genera archivo,
sólo marca como pagados"]:::sis
C["Elegir el modo del banco,
fecha de pago, concepto,
y revisar los recibos incluidos"]:::caj
G["Pulsar Generar"]:::caj
Q{"¿A alguien le falta cuenta,
cédula, tipo de cuenta o
institución financiera?"}:::sis
Qsi["El sistema se niega
y dice los nombres"]:::no
Qfix["Completar lo que falta
en la ficha de esa persona
o en la de su cuenta"]:::avi
REFfic["La ficha del empleado"]:::ref
D["Se descarga el archivo"]:::ok
R{"¿La suma del archivo cuadra
con el total del lote?"}:::caj
Rno["No cuadra"]:::no
Rrev["Alguien quedó fuera:
revisar cuentas y
recibos incluidos"]:::avi
S["Subir el archivo al banco
y marcar los recibos
como pagados"]:::ok
T --> V -.->|"viene de"| REFrol
V --> B
B -->|"no"| Bno --> Bfix --> V
B -->|"sí"| M
M -->|"por fuera"| Mman --> Man
M -->|"por el banco"| Mcsv --> C --> G --> Q
Q -->|"sí"| Qsi --> Qfix -.->|"se corrige en"| REFfic
Qfix --> G
Q -->|"no"| D --> R
R -->|"no"| Rno --> Rrev --> G
R -->|"sí"| S
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#025C40,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Una fila por cuenta bancaria con importe, y ocho columnas: secuencia, fecha de pago, fecha del reporte, período pagado, nombre del titular de la cuenta, número de cuenta, código del banco e importe.
El titular que sale es el de la cuenta, no el del empleado. Suelen coincidir, pero cuando no —una cuenta a nombre del cónyuge, por ejemplo— lo que el banco recibe es el nombre del titular. Vale la pena mirarlo la primera vez que se paga a alguien nuevo.
Si a una misma cuenta le corresponden varios recibos, el archivo los agrupa en una sola fila con la suma. Por eso el número de filas del archivo no tiene por qué coincidir con el número de recibos del lote, y comprobar por cantidad de filas lleva a error. La comprobación que sí vale es la de importes: la suma del archivo tiene que dar el total del lote.
El archivo del banco se rechaza entero si una sola fila viene mal, así que el sistema comprueba antes y nombra a quién le falta qué. Son cuatro cosas, y todas se arreglan en la ficha de la persona o en la de su cuenta:
La cédula o el RUC de quien cobra —que no siempre es el empleado: cuando parte del sueldo va a un tercero, el banco valida el documento del titular de esa cuenta—. El número de cuenta. Si la cuenta es de ahorros o corriente. Y la institución financiera con su código, que se configura en Contabilidad, en Instituciones financieras.
El archivo del banco lleva los importes en centavos y sin punto decimal. Seiscientos veinticinco dólares con cuarenta y nueve se escriben como 62549, no como 625.49. Es el error más caro posible en este paso: escribirlo con punto le acredita a la persona seis dólares en lugar de seiscientos veinticinco.
El sistema lo hace solo y no hay dónde equivocarse desde la pantalla. Importa saberlo por si alguna vez alguien abre el archivo, ve números que parecen absurdos y quiere «corregirlos» a mano antes de subirlo. Están bien así.
Por el mismo motivo el archivo va todo en formato texto: los ceros a la izquierda de una cuenta o de un código de banco son parte del dato. Abrirlo y guardarlo con una hoja de cálculo puede convertir 0010 en 10, y entonces el banco no reconoce la institución.
Antes de que exista un registro de asistencia tiene que existir el registro del lector que lo origina. El sistema lo mueve por tres pasos, uno detrás de otro: el aparato entrega un evento del lector, de ese evento nace un registro del lector, y la conciliación empareja esos registros para armar los registros de asistencia. Los tres se ven desde Asistencias → Registros del lector, con un submenú para cada paso: Eventos del lector, Todos los registros y Bandeja de Conciliación — esta última se detalla en la sección 16.
flowchart TD
A["La persona marca
en el lector"]:::caj
B["El aparato entrega
un evento del lector,
«Recibido»"]:::sis
Rq{"¿El código con el que
se identificó corresponde
a un empleado?"}:::sis
Rno["El evento se queda
«Recibido», sin registro
del lector: alguien tiene
que revisarlo a mano"]:::no
C["Nace el registro
del lector, en «Pendiente»"]:::neu
D["Cada 15 minutos la tarea
de conciliación empareja
entrada y salida, sola"]:::sis
Dq{"¿Encontró su pareja
de entrada/salida?"}:::sis
Dpend["Sigue «Pendiente»:
espera al próximo ciclo,
cada 15 minutos"]:::avi
E["Registro de asistencia"]:::ok
REF["Resumen Mensual"]:::ref
A --> B --> Rq
Rq -->|"no"| Rno
Rq -->|"sí"| C --> D --> Dq
Dq -->|"no todavía"| Dpend -.-> D
Dq -->|"sí"| E -.->|"pasa a"| REF
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Un evento del lector es lo que entrega el aparato tal como lo registró: el momento, el código con el que se identificó y el lector que lo tomó. De ahí nace un registro del lector, y es ese registro el que la conciliación intenta emparejar con otro para cerrar una jornada. Un evento del lector puede quedar en estado «Recibido» —sin procesar— o pasar a «Procesado», con su registro del lector ya vinculado.
Cada registro del lector pasa por uno de cuatro estados: Pendiente —todavía sin emparejar con otro—, Conciliado —ya forma parte de un registro de asistencia—, Rechazado —alguien lo descartó— o Duplicado —el sistema detectó que repite un registro ya guardado.
Este capítulo es opcional: describe una segunda vía para generar registros del lector, no la principal. El camino normal es el lector biométrico —la persona pone el dedo o la cara en el aparato y de ahí nace el evento que nombra la sección 14—, y ese sigue siendo el que hay que mirar primero. El quiosco es una pantalla en una tableta o un computador donde la persona se identifica a mano o con una credencial, y sirve para los casos en que no hay un lector biométrico instalado, para cubrir un puesto sin aparato, o como respaldo si el aparato falla. Se llega por Asistencias → Modo quiosco, y no es una ficha más del sistema — abre la pantalla propiamente dicha, con su propia dirección web.
flowchart TD
A["La persona marca
en el lector biométrico"]:::caj
B["La persona se identifica
en el quiosco"]:::caj
Rq{"¿El dispositivo del
quiosco está Aprobado
en Dispositivos Autorizados?"}:::caj
Rno["BLOQUEO: el quiosco
RECHAZA cualquier
intento de marcar ahí"]:::no
C["Registro del lector"]:::neu
D["La conciliación lo empareja
igual, sin importar el origen"]:::sis
REF["La bandeja
de conciliación"]:::ref
A --> C
B --> Rq
Rq -->|"no"| Rno
Rq -->|"sí"| C
C --> D -.->|"pasa a"| REF
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Arriba, en grande, la fecha y la hora; en la esquina, el logotipo de la empresa. Debajo, dos formas de identificarse: «Escanee su identificación», con un lector de código de barras dibujado en el centro, y, en la esquina inferior izquierda, «Identifícate de forma manual», para quien no trae su credencial a mano.
El quiosco tiene una segunda vista, con una tarjeta por empleado marcada «Ausente» o «En línea» según si tiene una jornada abierta en ese momento, y un filtro por departamento arriba. Esa vista no tiene captura en este manual, y no debe tenerla: muestra el nombre y la foto de cada persona, y eso no se documenta con datos reales.
En Asistencias → Configuración → Ajustes se define cómo se identifica quien marca en el quiosco: por código de barras, por credencial de radiofrecuencia (RFID), o por selección manual de la lista de empleados. Ahí mismo está la dirección web del quiosco, con un botón para generar una dirección nueva.
Conciliar es emparejar dos registros del lector —uno de entrada y uno de salida— para cerrar una jornada y convertirla en un registro de asistencia. La bandeja es donde se ve ese trabajo, hecho o pendiente: Asistencias → Registros del lector → Bandeja de Conciliación. No hace falta pedirla: el camino del registro del lector 14 termina siempre aquí, y el propio sistema corre la conciliación solo.
flowchart TD
A["Registro del lector
nace «Pendiente»,
revisado cada 15 minutos"]:::neu
B{"¿Encuentra su pareja
de entrada/salida?"}:::sis
C["«Conciliado»:
ya es un registro
de asistencia"]:::ok
D["«Duplicado»:
repite un registro
ya guardado"]:::no
E["«Rechazado»
por una persona"]:::caj
F["Motivo: «Entrada sin salida
(asistencia abierta)»"]:::neu
G["No es error: se cierra
sola al llegar la salida"]:::ok
H["Motivo: la salida es
anterior a la entrada"]:::avi
I["Alguien corrige
la hora en la ficha"]:::caj
J["La próxima conciliación
las empareja"]:::sis
REF["Resumen Mensual:
horas y atrasos"]:::ref
A --> B
B -->|Sí| C
B -->|Repetido| D
A --> E
C --> F --> G
C --> H --> I --> J
G -.->|"pasa a"| REF
J -.->|"pasa a"| REF
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Las columnas, tal como salen: Referencia, Registro, Cédula/RUC, Empleado, Cargo, Horario, Tipo, Origen, Estado, Dispositivo y Motivo. Esa última columna es la que ahorra trabajo: explica en una frase por qué un registro del lector sigue pendiente o qué pasó al conciliarlo, sin tener que entrar a la ficha.
Al abrir uno, dos bloques cuentan su historia. Registro del lector trae el empleado, el momento, el tipo —entrada o salida—, el origen —automático desde un lector o registro manual— y el motivo. Origen y anti-fraude trae el dispositivo, su UUID, la dirección IP, y tres interruptores de solo lectura: si el dispositivo estaba autorizado, si la IP estaba autorizada y si el registro cayó dentro de la geocerca. Un bloque de biometría y otro de sincronización quedan casi siempre en blanco cuando el registro se generó a mano.
Dos textos que sí se vieron en la columna Motivo:
«Entrada sin salida (asistencia abierta).» — el registro ya se concilió, generó un registro de asistencia, pero esa asistencia todavía no tiene su salida. No es un error: es el estado normal de alguien que todavía está en su jornada.
Nadie tiene que pedirla. El sistema la ejecuta automáticamente cada 15 minutos, así que entre la entrada y la salida de una jornada normal corre unas 36 veces. Por eso una asistencia puede verse «abierta» un rato después de la entrada y aparecer cerrada más tarde sin que nadie haya tocado nada — lo único que hizo falta fue que llegara el registro de salida y que pasara el siguiente ciclo.
Una vez que la conciliación cierra una jornada (la sección 16), esa jornada tiene que verse en algún lado con sus horas y su atraso ya calculados. Eso es el Resumen Mensual, con dos pantallas: el Panel de Asistencia, por empleado y por jornada, y el Detalle por Día, una fila por cada día trabajado.
Ruta: Resumen Mensual → Panel de Asistencia. Arriba, un filtro por empleado y por rango de fechas; a la derecha, cuatro botones: Re-Generar Resumen, Generar Automáticos, Comprobar E/S y, aparte y en rojo, Eliminar Resumen. Por su nombre, ese último borra lo ya calculado —no los registros del lector de origen—, pero el color rojo avisa que hay que confirmarlo con cuidado antes de tocarlo.
Las columnas se agrupan por jornada —primera y segunda— y cada una trae Inicio, Entró, Salió, Fin, Atraso y Horas; al final, los totales del día. Si el rango elegido todavía no tiene nada calculado, la pantalla lo dice sin rodeos: «No hay resumen en este rango, pulsa Re-Generar».
Ruta: Resumen Mensual → Detalle por Día. Es la vista fila por fila: una fila por cada día de cada empleado del mes elegido. El atraso se ve en minutos —puede traer distintos valores medidos según cuánto se haya atrasado cada quien— bajo la cabecera «Atraso total (min)», y trae además una columna «Total Atraso» que lo repite en formato legible, como «1h 37min». Igual que en la bandeja de conciliación, esta pantalla también trae su propia columna Motivo.
flowchart TD
A["Hora marcada
(registro del lector)"]:::neu
B["Se compara contra
el horario del empleado"]:::sis
C["Se aplica la tolerancia
de atraso configurada"]:::sis
D{"¿Pasa del umbral
configurado?"}:::sis
E["Atraso en minutos,
Resumen Mensual"]:::neu
F["Se reclasifica como falta
«Atraso mayor al umbral»"]:::avi
G["El sistema solo AVISA"]:::avi
H["El descuento lo aplica
una persona, calificando"]:::caj
REF["El rol del mes:
horas y descuentos
ya aplicados"]:::ref
A --> B --> C --> D
D -->|No| E
D -->|Sí| F --> G --> H
E -.->|"pasa a"| REF
H -.->|"pasa a"| REF
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Ruta: Reportes → Asistencias. Es un pivote —horas trabajadas, horas regulares y horas extra, por empleado y por mes—, exportable a una hoja de cálculo para llevarlo a donde haga falta.
Ruta: Reportes → Libro de permisos. Agrupa por mes y compara, para cada empleado, las horas esperadas contra las trabajadas, los permisos aprobados y la diferencia que queda entre unas y otras.
Una falta es un día laborable sin ningún registro del lector que lo cubra. El sistema la detecta sola, pero no decide nada por su cuenta: la falta es un reporte y, por sí sola, no descuenta nada — descontar es un paso aparte que solo lo hace una persona, calificando.
Ruta: Asistencias → Faltas por calificar y Asistencias → Todas las Faltas. El primero es la bandeja de trabajo: solo lo pendiente. El segundo es el histórico completo, con un filtro de «Pendientes de calificar» disponible cuando hace falta acotarlo. En el momento de este recorrido las dos listas estaban vacías — no había ninguna falta registrada ni pendiente de calificar.
Una falta nace con uno de dos motivos: «No marcó en un día laborable» —no hubo ningún registro del lector ese día— o «Atraso mayor al umbral configurado» —el registro del lector sí llegó, pero con un atraso que pasó el límite fijado (ver la sección 17 para dónde se ve ese atraso en minutos). Su estado avanza siempre en el mismo orden: Pendiente → Justificada o Pendiente → Injustificada, sin marcha atrás automática.
flowchart TD
A1["No marcó en
un día laborable"]:::sis
A2["Atraso mayor
al umbral configurado"]:::sis
B["La tarea detecta
la falta, sola"]:::sis
C["Falta en «Pendiente»,
en la bandeja de
Faltas por calificar"]:::neu
Cq{"¿Alguien la
revisa?"}:::caj
Cno["Sigue esperando:
NUNCA se califica sola,
sin límite de tiempo"]:::avi
D{"Una persona
califica"}:::caj
E["«Justificada»"]:::ok
F["«Injustificada»"]:::no
REF["El descuento, aparte,
en el rol del mes"]:::ref
A1 --> B
A2 --> B
B --> C --> Cq
Cq -->|"todavía no"| Cno -.-> Cq
Cq -->|"sí"| D
D --> E
D --> F -.->|"pasa a"| REF
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
El sistema detecta la falta y la deja lista para revisión, pero decidir si fue justificada o no lo hace siempre una persona, mirando el caso. No hay ninguna regla que la califique sola. Y aunque se confirme como injustificada, la falta sigue siendo un reporte: el descuento que eventualmente se aplique es un paso aparte, fuera de esta ficha.
Una hora extra no nace de una decisión: nace de un registro del lector que rebasó la jornada. El sistema la calcula sola comparando la asistencia contra el horario del empleado, y con el ajuste actual queda validada en el mismo paso en que queda trabajada — no hay una cola de horas esperando que alguien las apruebe una por una. Aparte, y sin relación directa con ese cálculo, existe la Pre-autorización de Extras: un permiso que se pide ANTES de trabajar la hora, no una aprobación de la hora ya marcada.
flowchart TD
subgraph PRE["Pre-autorización: el permiso previo"]
P1["Borrador"]:::neu
P2["Solicitado"]:::sis
P3["Aprobado"]:::ok
P1 --> P2 --> P3
end
subgraph EXT["Hora extra ya trabajada"]
H1["Registro del lector
rebasa la jornada"]:::sis
H2["Se calcula
la hora extra"]:::sis
H3{"Validación de horas extra,
¿automática?"}:::sis
H4["Queda «validada»
en el mismo paso"]:::ok
H5["Espera la aprobación
del gerente, en «Por
aprobar» de Gestión"]:::caj
H6{"¿El gerente aprueba
o rechaza?"}:::caj
H7["RECHAZADA:
no se paga"]:::no
REF["El rol del mes:
se paga con
su recargo"]:::ref
H1 --> H2 --> H3
H3 -->|Encendida| H4
H3 -->|Apagada| H5 --> H6
H6 -->|"aprueba"| H4
H6 -->|"rechaza"| H7
H4 -.->|"pasa a"| REF
end
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Ruta: Asistencias → Gestión. Trae una fila por cada hora extra calculada en el mes, con las columnas Empleado, Entrada, Salida, Tiempo trabajado, Horas extra trabajadas y Horas extra validadas. En todas las filas la columna «trabajadas» coincide con la columna «validadas», al centavo — no hay ninguna diferencia entre las dos. Cada fila trae un botón Rechazar.
La razón está en Configuración → Ajustes → Opciones de horas extra → Validación de horas extra, con dos caminos posibles: «Aprobadas en automático» o «Aprobado por el gerente». Hoy está en el primero (ver la sección 21 para el resto de ese bloque de ajustes). Mientras se quede en automático, toda hora extra calculada se valida en el acto y la única acción posible sobre ella es rechazarla después, nunca aprobarla — ya nació aprobada.
Ruta: Configuración → Conjuntos de reglas de horas extra. Hay dos conjuntos. El del sistema sale en pantalla como «Default Ruleset» — así, en inglés, tal como lo vas a encontrar en la lista — y el propio de la empresa, «Recargos Ecuador (LOPDP/CT)», aplicado a los empleados que corresponda. Este segundo trae tres reglas: Suplementaria +50%, basada en cantidad de horas; Extraordinaria +100%, en cualquier día no laborable; y Nocturna +25%, en cualquier día laborable.
Ruta: Asistencias → Pre-autorizaciones de Extras. La lista está vacía. Esta ficha no aprueba una hora ya trabajada — pide permiso para trabajarla, antes de marcarla. Trae una barra de estado Borrador → Solicitado → Aprobado y tres botones: Solicitar, Aprobar y Rechazar. Sus campos son Empleado, Fecha autorizada, Tipo de recargo, Horas máximas y Motivo, más una tabla con las horas extra que esa pre-autorización cubre. El Tipo de recargo se elige entre los mismos tres de la sección anterior: Suplementaria (50%), Extraordinaria (100%) y Nocturna (25%).
Las dos piezas de esta sección conviven pero no se pisan: el conjunto de reglas decide a cuánto se paga cada hora extra ya trabajada, y la pre-autorización es el permiso previo que alguien puede pedir para trabajar esas horas. Que hoy la lista de pre-autorizaciones esté vacía no bloquea el cálculo de horas extra — ese cálculo corre solo, contra el conjunto de reglas, con o sin pre-autorización de por medio.
No cualquier aparato puede marcar por un empleado. El kiosco de asistencia solo acepta registros del lector desde los dispositivos que están aprobados en Dispositivos Autorizados — así se evita que alguien marque desde su casa, o desde un celular cualquiera, y el registro se cuente como si viniera de la tienda.
flowchart TD
T["Alguien intenta marcar
desde este dispositivo"]:::caj
A["Dispositivo nuevo:
nadie lo ha emparejado"]:::neu
B["«Pendiente de
aprobación»"]:::neu
Rap{"¿Alguien entra a la
ficha y pulsa Aprobar?"}:::caj
C["«Aprobado»"]:::ok
E["Puede marcar
en el quiosco"]:::ok
Rrev{"¿Alguien lo revoca
después —se perdió,
cambió de dueño—?"}:::caj
D["«Revocado»"]:::no
F["No puede marcar:
el quiosco RECHAZA
el registro"]:::no
T --> A --> B --> Rap
Rap -->|"todavía no"| F
Rap -->|"sí"| C --> Rrev
Rrev -->|"no"| E
Rrev -->|"sí"| D --> F
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Ruta: Asistencias → Dispositivos Autorizados. La lista está vacía, con el mensaje «Empareja tu primer dispositivo». Debajo, la pantalla explica el motivo de la lista: el kiosco solo acepta registros del lector de los dispositivos aprobados aquí — es la protección que el propio mensaje nombra «Que nadie marque desde su casa».
Cada dispositivo se identifica por su Tipo —hoy el único disponible es Kiosco web—, su UUID, un Código de emparejamiento y, opcionalmente, las IPs permitidas para ese dispositivo en particular. Su estado avanza en una barra de tres pasos: Pendiente de aprobación → Aprobado → Revocado, con dos botones arriba: Aprobar y Revocar. La ficha también muestra el último registro que llegó de ese dispositivo y cuántos registros ha traído en total.
Estos ajustes no se tocan mes a mes: se fijan una vez, al implantar el módulo, y de ahí en adelante quedan corriendo solos. Están en Configuración → Ajustes → Asistencias EC, en dos pestañas: Ajustes generales y Asistencia Ecuador. Aparte, en Configuración → Feriados y Configuración → Consentimientos Biométricos, hay dos listas que también son parte de esta misma configuración de fondo.
Seis interruptores: Registro de salida automático, Gestión de ausencias, Asistencias desde el backend, Rastreo de dispositivo y ubicación, Tomar foto al marcar entrada y el modo del quiosco. De los seis, hoy solo está encendido «Asistencias desde el backend» — el que permite registrar entrada y salida desde el propio Odoo, sin pasar por el kiosco.
Tres bloques. En Atrasos, salidas y faltas: tolerancia de atraso de 10 minutos, tolerancia de salida anticipada de 0, y umbral de atraso que se vuelve falta en 0 — es decir, un atraso nunca se reclasifica solo como falta (ver la sección 18 y la sección 17 para cómo se usan estos números). En Que nadie marque desde su casa: la Geocerca apagada y sin lista de IPs permitidas. En Fotos: política «Inteligente (solo en fallo o duda)» y purga a los 30 días. Y en Biometría (huella y reconocimiento facial): apagada.
Ruta: Configuración → Feriados. Los feriados del año, todos de tipo «Nacional», con 2026 y 2027 ya cargados completos, cada uno con su columna «Activa recargo» marcada. Vale decirlo porque no es evidente: los feriados de un año nuevo se cargan por pantalla, entrando aquí y creando el registro, sin que haga falta ningún despliegue de código.
Ruta: Configuración → Consentimientos Biométricos. La lista está vacía, lo cual es coherente con que la Biometría esté apagada en Asistencia Ecuador: la propia pantalla de ajustes advierte que, con la biometría apagada, no se captura ni se almacena ningún dato biométrico — por eso aquí no hay ningún consentimiento que registrar todavía.
Tres reportes viven en Asistencias → Reportes: Asistencias, Libro de permisos y Análisis de horas extra. Los tres miran los mismos datos que ya se explicaron en las secciones anteriores —jornadas conciliadas, horas extra calculadas, permisos aprobados—, pero agrupados por empleado y por mes, para leerlos de un vistazo en lugar de fila por fila.
Ruta: Asistencias → Reportes → Asistencias. Es una tabla dinámica (pivote) con horas trabajadas, regulares y extra, cruzadas por empleado y por mes, y con filtros de «Empleados activos» y «Últimos 3 meses» puestos por omisión. Se puede exportar a hoja de cálculo con el botón correspondiente.
Ruta: Asistencias → Reportes → Libro de permisos. Compara, mes por mes, cuatro cifras: Horas esperadas según el horario, Horas trabajadas según la asistencia, Permisos aprobados y la Diferencia que queda entre lo esperado y la suma de lo trabajado más los permisos.
Ruta: Asistencias → Reportes → Análisis de horas extra. Muestra las horas adicionales del mes, empleado por empleado y día por día.
En la ficha del empleado hay un interruptor que decide todo esto de un golpe. Nace apagado, y hay una razón precisa para que sea así.
Hay personas —un gerente, alguien que trabaja fuera del local, un cargo de confianza— a las que no se les exige marcar entrada y salida: se les paga directamente su jornada según el horario que tienen asignado. Eso se controla con un interruptor en la pestaña Asistencia EC de la ficha del empleado (sección 4): «Marca entrada y salida». Ese interruptor nace apagado.
flowchart LR
EMP(["El empleado"]):::act
NOM(["Quien lleva la nómina"]):::act
UC["Alguien que no marca
y cobra su jornada"]:::uc
EMP --> UC
NOM --> UC
UC -.->|se apoya en| S1["La ficha del empleado"]:::ref
UC -.->|se apoya en| S2["Las faltas y cómo
se califican"]:::ref
UC -.->|se apoya en| S3["Lo que se configura una
vez en Asistencia"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
A["«Marca entrada y
salida» APAGADO"]:::ok
B["Sale del panel
de asistencia"]:::ok
C["Nunca genera
faltas ni atrasos"]:::ok
D["En el rol aparece con las
horas de su horario
ya prellenadas"]:::ok
E["Se le paga su
jornada directamente"]:::ok
A --> B
A --> C
A --> D --> E
classDef ok fill:#037F58,stroke:#026345,color:#fff
flowchart TD
F["«Marca entrada y
salida» ENCENDIDO,
por error"]:::no
G["La persona sigue sin
pasar por el lector"]:::no
H["La tarea de detección
lo trata como cualquier
otro empleado"]:::sis
I["Le crea una falta
CADA día laborable"]:::no
J{"¿El descuento de
faltas está encendido?"}:::sis
K["Riesgo real: podría
perder el sueldo"]:::no
L["Las faltas quedan
pendientes, sin descontar"]:::avi
F --> G --> H --> I --> J
J -->|Sí| K
J -->|No| L
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
Al crear la ficha de alguien que no va a marcar reloj, se confirma que «Marca entrada y salida» se quede apagado — es lo que trae por defecto, así que en la mayoría de los casos no hay que tocar nada. Esa persona desaparece del panel de asistencia, del resumen mensual y de cualquier bandeja de faltas o atrasos: en el rol del mes entra directo con las horas de su horario ya prellenadas, sin pasar por ningún registro del lector.
Con el interruptor encendido, en cambio, el sistema sí espera que esa persona marque como cualquier otro empleado, y la controla igual: atrasos, faltas, todo lo demás de este manual le aplica normal.
Ningún registro del lector llegó esos días, y eso genera faltas para todos los que trabajaron. No son culpa de nadie, y no se pueden dejar como injustificadas.
El lector de un local se daña —o se queda sin electricidad, o pierde la conexión— y durante uno o varios días no llega ningún registro. Nadie marcó, aunque todos hayan trabajado con normalidad. La tarea que detecta faltas (sección 18) no sabe que el lector estuvo dañado: solo ve días laborables sin ningún registro que los cubra, y crea una falta por cada uno, con el motivo «No marcó en un día laborable».
flowchart LR
TEC(["Servicio técnico"]):::act
SUP(["El supervisor"]):::act
NOM(["Quien lleva la nómina"]):::act
UC["El lector
estuvo dañado"]:::uc
TEC --> UC
SUP --> UC
UC --> NOM
UC -.->|se apoya en| S1["Los dispositivos desde
los que se marca"]:::ref
UC -.->|se apoya en| S2["Las faltas y cómo
se califican"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
A["El lector no envía
ningún registro esos días"]:::sis
B["La tarea de detección
ve días laborables sin
ningún registro que los cubra"]:::sis
C["Crea una falta por cada día,
motivo «No marcó en un
día laborable»"]:::neu
D["Faltas quedan en
«Pendiente»"]:::neu
E["Quien lleva la nómina revisa
cada una en Faltas por calificar"]:::caj
F["«Justificar», con la nota
de lo que pasó con el lector"]:::ok
G["NO calificarla como
injustificada"]:::no
A --> B --> C --> D --> E
E --> F
E -.->|nunca| G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Se entra a Asistencias → Faltas por calificar y se busca cada falta que caiga en los días que el lector estuvo dañado. Se abre la ficha y se pulsa Justificar, dejando en el campo de notas lo que pasó —«lector sin electricidad del 3 al 4 de septiembre», por ejemplo—. Ese texto es el que queda como rastro de por qué esas faltas no cuentan en contra de nadie.
Mientras un recibo no esté pagado, se puede volver a calcular. La corrección que sirve de verdad no es tocar el número: es arreglar la causa —la ficha, el horario, el registro del lector que faltó— y RECIÉN DESPUÉS recalcular.
flowchart LR
CON(["El Contador"]):::act
UC["El rol ya estaba hecho
y hay que corregirlo"]:::uc
CON --> UC
UC -.->|se apoya en| S1["Leer un rol individual"]:::ref
UC -.->|se apoya en| S2["El rol del mes"]:::ref
UC -.->|se apoya en| S3["La ficha del empleado"]:::ref
UC -.->|se apoya en| S4["Cómo llegan
las marcas"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Un recibo de nómina pasa por tres estados: Borrador → Hecho → Pagado (sección 6). El Contador revisa el recibo de un empleado y encuentra un número que no cuadra —un día que no debía descontarse, un horario que no era el correcto, un registro del lector que faltó y dejó una falta donde no la hubo—. Mientras ese recibo no esté Pagado, todavía se puede corregir.
flowchart TD
A["Se encuentra un número
que no cuadra en el recibo"]:::caj
B{"¿El recibo ya
está Pagado?"}:::sis
C["BLOQUEO: un recibo pagado
no se recalcula por aquí"]:::no
D["Identificar la CAUSA:
ficha, horario o registro
del lector que faltó"]:::caj
E["Corregir la causa en su
propio lugar —la ficha, el
horario, la asistencia—"]:::caj
F["Volver el recibo a Borrador
si ya estaba Hecho"]:::caj
G["Pulsar Calcular otra vez"]:::caj
H["Revisar el recibo
ya recalculado"]:::caj
I["Validar y, luego,
asociar el pago"]:::ok
A --> B
B -->|"sí"| C
B -->|"no"| D --> E --> F --> G --> H --> I
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Un recibo en Borrador se puede recalcular las veces que haga falta; en cuanto pasa a Hecho, ya no se recalcula solo — hay que volver a Borrador para tocarlo, y el neto que muestre hasta entonces no es definitivo (sección 6). Pero volver el recibo a Borrador y pulsar «Calcular» sin haber corregido nada no arregla el número: solo lo vuelve a calcular con los mismos datos torcidos.
Lo que corresponde es corregir la causa donde vive de verdad —la fecha de inicio o el horario en la ficha del empleado (sección 4), o el registro del lector que faltó en la asistencia (sección 14)— y solo DESPUÉS volver al recibo y recalcular. En ese orden: primero la causa, después el número.
Si el recibo ya pasó a Pagado, esa puerta se cierra: no se recalcula por aquí. Corregirlo a esa altura es una decisión distinta, aparte del flujo normal de un rol del mes, y no algo que este caso resuelva con un botón.
Una ficha nueva entra bien al rol del mes con una sola condición dura: que el contrato tenga cargada la fecha de inicio. Sin esa fecha, la persona no entra al rol — y el sistema no dice por qué.
flowchart LR
CON(["El Contador"]):::act
UC["Entra un empleado
a mitad de mes"]:::uc
CON --> UC
UC -.->|se apoya en| S1["La ficha del empleado"]:::ref
UC -.->|se apoya en| S2["El rol del mes"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Un empleado nuevo entra por la ficha (sección 4), no por el rol del mes: el rol solo incluye a quien ya tiene ficha completa cuando se arma. El Contador crea el registro con su cargo, su departamento y, en la pestaña Nómina, el resumen del contrato —tipo de empleado, tipo de salario, el salario mismo— y el horario que le corresponde.
Dentro de ese mismo resumen del contrato hay un dato que no salta a la vista y que decide si la persona entra o no al rol: la fecha de inicio de contrato. Si esa fecha queda en blanco, la ficha se ve completa a simple vista —tiene cargo, tiene horario, tiene salario— y aun así la persona queda fuera del rol del mes, sin ningún aviso en pantalla que lo señale.
flowchart TD
A["Crear la ficha del
empleado nuevo"]:::caj
B["Completar cargo, horario
y datos del contrato"]:::caj
C{"¿Tiene fecha de
inicio de contrato?"}:::caj
D["Entra al rol del mes
con los días que le
corresponden"]:::ok
E["Queda FUERA del rol,
sin ningún aviso"]:::no
A --> B --> C
C -->|"sí"| D
C -->|"no"| E
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Con la fecha de inicio cargada, la persona entra a la etapa Empleados del periodo de nómina (sección 5) igual que cualquier otro empleado del lote: con su horario, su fecha de ingreso y su salario. El cálculo del recibo reparte el mes según esa fecha —no hace falta prorratear nada a mano ni crear un rol aparte para quien entró a mitad de mes.
La hora extra se calcula sola, comparando la asistencia contra el horario. La preautorización es aparte: un permiso que se pide antes de trabajarla, no una aprobación de la hora ya marcada.
Un empleado tiene que quedarse a trabajar un sábado, día no laborable en su horario. Antes de que llegue ese sábado, alguien —el supervisor, junto con el empleado— arma una Pre-autorización de Extras (sección 19): empleado, fecha autorizada, tipo de recargo y horas máximas. Esa ficha avanza de Borrador a Solicitado y de ahí a Aprobado, antes de que el sábado llegue.
flowchart LR
EMP(["El empleado"]):::act
SUP(["El supervisor"]):::act
NOM(["Quien lleva la nómina"]):::act
UC["Horas extra
de un sábado"]:::uc
EMP --> UC
SUP --> UC
UC --> NOM
UC -.->|se apoya en| S1["Las horas extra y
su preautorización"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
subgraph PRE["Antes del sábado"]
A["Se arma la Pre-autorización:
empleado, fecha, tipo
de recargo, horas máximas"]:::caj
B["Borrador → Solicitado"]:::caj
C["Aprobado"]:::ok
A --> B --> C
end
subgraph SAB["El sábado ya trabajado"]
D["El empleado marca
entrada y salida"]:::caj
E["El registro rebasa
el horario: es día
no laborable"]:::sis
F["Se calcula como
Extraordinaria +100%"]:::sis
G{"Validación de horas
extra, ¿automática?"}:::sis
H["Queda «validada»
en el mismo paso"]:::ok
I["Espera la aprobación
del gerente"]:::caj
D --> E --> F --> G
G -->|Encendida| H
G -->|Apagada| I
end
C -.->|"respalda, no reemplaza,
el cálculo"| F
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
El sábado el empleado marca su entrada y su salida como cualquier día; el registro del lector se concilia igual que siempre. Como el sábado es día no laborable para ese horario, las horas trabajadas caen bajo la regla Extraordinaria +100% del conjunto de reglas de la empresa (sección 19) — distinta de la Suplementaria +50% (por cantidad de horas en un día laborable) o la Nocturna +25%. Esas horas aparecen en Asistencias → Gestión, y según cómo esté configurada la validación (sección 21), quedan validadas en el mismo paso o esperando que el gerente las apruebe.
Existe una pantalla para comparar lo que el sistema calculó contra la planilla que entrega el IESS. Se probó con diferencias sembradas a propósito, y el resultado es a medias: las diferencias de importe las detecta y las muestra bien; las de persona no. Conviene saber exactamente hasta dónde llega antes de apoyarse en ella.
flowchart LR
CON(["El Contador"]):::act
IESS(["El IESS"]):::act
UC["La planilla del IESS
no cuadra"]:::uc
CON --> UC
IESS -.->|entrega la planilla| UC
UC -.->|se apoya en| S1["La planilla del IESS
y el Formulario 107"]:::ref
UC -.->|se apoya en| S2["El rol del mes"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
El IESS le devuelve al Contador su propia planilla de aportes, y hace falta comprobar que coincide con lo que el rol del mes (sección 5) calculó para cada empleado. Para eso existe «Validar planilla del IESS» (sección 9), que compara los dos lados.
flowchart TD
A["El Contador recibe la
planilla del IESS"]:::caj
B["Abre Validar planilla
del IESS"]:::caj
C["Elige el Lote de
nómina a comparar"]:::caj
D{"¿Cómo entrega
la planilla?"}:::caj
E["Sube el archivo CSV
tal como lo da el IESS"]:::caj
F["Pega el texto, cédula
por cédula, en el
formato pedido"]:::caj
G["Pulsa Validar"]:::caj
H["El sistema compara lo
calculado contra la planilla"]:::sis
A --> B --> C --> D
D -->|"CSV"| E --> G
D -->|"texto pegado"| F --> G
G --> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
El asistente pide primero el Lote de nómina contra el que se va a comparar — el rol del mes que corresponda. Después, la planilla se entrega por cualquiera de dos caminos: subiendo el archivo CSV tal como lo entrega el IESS, o pegando el texto directamente, cédula por cédula, con el formato que la propia pantalla muestra como ayuda:
cedula;sueldo_aportado;aporte_personal;aporte_patronal;prestamos
Con cualquiera de los dos caminos, el botón Validar ejecuta la comparación entre lo que trae la planilla y lo que calculó el rol elegido.
Sirve para tener, en un solo lugar, la comparación entre lo que la empresa calculó y lo que el IESS tiene registrado — en vez de cotejar cédula por cédula a mano. Pero como el camino de «sí hay diferencias» todavía no se vio en pantalla, no se puede prometer aquí qué tan claro deja el resultado ni cómo se corrige después una diferencia encontrada. Eso queda para revisar la primera vez que se use en serio.
El sistema mide el atraso, lo compara contra un umbral y hasta lo puede reclasificar como falta. Lo único que no hace es descontar por su cuenta: eso lo decide siempre una persona.
Un empleado empieza a marcar su entrada varios minutos después de la hora de su horario. Cada registro del lector, al conciliarse, calcula el atraso comparando la hora marcada contra el horario asignado y aplicando la tolerancia configurada. Ese atraso se ve, en minutos, en el Detalle por Día del Resumen Mensual (sección 17), y también en formato «horas y minutos» en la columna «Total Atraso».
flowchart LR
EMP(["El empleado"]):::act
SUP(["El supervisor"]):::act
NOM(["Quien lleva la nómina"]):::act
UC["Llegó tarde
varias veces"]:::uc
EMP --> UC
SUP --> UC
UC --> NOM
UC -.->|se apoya en| S1["Los atrasos y el
resumen del mes"]:::ref
UC -.->|se apoya en| S2["Las faltas y cómo
se califican"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
A["Hora marcada,
registro del lector"]:::sis
B["Se compara contra
el horario del empleado"]:::sis
C["Se aplica la tolerancia
de atraso configurada"]:::sis
D{"¿El atraso pasa del
umbral configurado?"}:::sis
E["Queda como atraso
en minutos, sin más"]:::neu
F["Se reclasifica como falta
«Atraso mayor al umbral»"]:::avi
G["El sistema solo AVISA:
no descuenta nada solo"]:::avi
H["Quien lleva la nómina revisa
el patrón y decide"]:::caj
I["Descuenta, calificando
a mano"]:::ok
J["Deja pasar, sin descuento"]:::ok
A --> B --> C --> D
D -->|No| E
D -->|Sí| F --> G --> H
H --> I
H --> J
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
Se revisa el patrón en el Detalle por Día: cuántos días llegó tarde en el mes y cuántos minutos en cada uno. Mientras el atraso se quede por debajo del umbral configurado, se queda como un número en esa pantalla, sin convertirse en nada más. En cuanto un atraso pasa ese umbral, deja de ser solo un dato del resumen: se reclasifica como falta, con el motivo «Atraso mayor al umbral configurado», y aparece en Faltas por calificar (sección 18) para que alguien la revise igual que cualquier otra falta.
El quiosco solo acepta registros del lector de los dispositivos que están aprobados. Desde uno que no lo está, no hay manera de marcar: es un bloqueo, no un aviso.
Un dispositivo nuevo —un celular, una tableta, un lector recién instalado en otro local— intenta usarse para marcar en el quiosco de asistencia, pero nadie lo ha registrado todavía en Dispositivos Autorizados (sección 20). El quiosco rechaza cualquier intento de marcar desde ahí, sin excepción: esa es exactamente la protección que existe para que nadie marque desde su casa o desde un aparato cualquiera y el registro se cuente como si viniera del local.
flowchart LR
EMP(["El empleado"]):::act
SUP(["El supervisor"]):::act
NOM(["Quien lleva la nómina"]):::act
UC["Marcó desde un dispositivo
sin aprobar"]:::uc
EMP --> UC
SUP --> UC
UC --> NOM
UC -.->|se apoya en| S1["Los dispositivos desde
los que se marca"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
A["Dispositivo nuevo,
nadie lo ha registrado"]:::neu
B{"¿Está en Dispositivos
Autorizados?"}:::sis
C["«Pendiente de
aprobación» o
no existe todavía"]:::neu
D["El quiosco RECHAZA
cualquier registro
desde ahí"]:::no
E["Quien lleva la nómina crea
o abre la ficha del dispositivo"]:::caj
F["Pulsa «Aprobar»"]:::caj
G["Estado pasa a
«Aprobado»"]:::ok
H["Ya puede marcar
en el quiosco"]:::ok
A --> B
B -->|No| C --> D --> E --> F --> G --> H
B -->|Ya aprobado| H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Se entra a Asistencias → Dispositivos Autorizados y se busca el dispositivo por su UUID o su código de emparejamiento. Si no existe todavía, se empareja como dispositivo nuevo — nace en «Pendiente de aprobación»—; si ya existe pero sigue pendiente, se abre su ficha y se pulsa Aprobar. Recién ahí, con el estado en «Aprobado», el quiosco empieza a aceptar registros de ese aparato.
Es el caso más frecuente de todos. No es un error del sistema ni del lector: es el estado normal de una jornada mientras la salida todavía no llega.
Un empleado marca su entrada por la mañana y, a la salida, se le olvida pasar por el lector —sale corriendo, el lector no responde, lo que sea. Esa entrada sí se concilió (sección 16) y generó un registro de asistencia, pero ese registro queda abierto: el motivo en la ficha dice, literal, «Entrada sin salida (asistencia abierta)». No hay ninguna alarma que salte sola, y no tiene por qué: así se ve cualquier jornada que sigue en curso.
flowchart LR
EMP(["El empleado"]):::act
SUP(["El supervisor"]):::act
NOM(["Quien lleva la nómina"]):::act
UC["Olvidó marcar
la salida"]:::uc
EMP --> UC
SUP --> UC
UC --> NOM
UC -.->|se apoya en| S1["La bandeja de conciliación"]:::ref
UC -.->|se apoya en| S2["Los atrasos y el resumen del mes"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
En la Bandeja de Conciliación (sección 16) el registro de entrada aparece «Conciliado», con el campo «Asistencia generada» apuntando a esa jornada, y el Motivo explicando que falta la salida. Si la salida llega más tarde —el empleado vuelve a marcar, aunque sea con retraso, o alguien la registra manualmente— la próxima vuelta de la conciliación (corre cada 15 minutos) empareja las dos y la jornada se cierra sola, sin que nadie tenga que intervenir.
El problema real aparece cuando esa salida nunca llega. Ahí sí hace falta que alguien actúe: entrar al registro del lector o a la ficha de asistencia y poner la hora de salida que corresponde, a mano. En cuanto esa hora queda registrada, la siguiente conciliación la toma y cierra el día.
Un anticipo se entrega aparte del rol del mes, con «Pagar quincena», y se descuenta solo — pero solo UNA vez. Si el mismo descuento tiene que repetirse el mes siguiente, hay que volver a crearlo: nada lo repite por cuenta propia.
flowchart LR
CON(["El Contador"]):::act
EMP(["El empleado"]):::act
UC["Se le adelantó
dinero"]:::uc
EMP --> UC
CON --> UC
UC -.->|se apoya en| S1["Anticipos y
Pagar quincena"]:::ref
UC -.->|se apoya en| S2["Los reportes
de nómina"]:::ref
UC -.->|se apoya en| S3["El rol del mes"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Un empleado necesita un adelanto —una quincena, un imprevisto, cualquier monto suelto que haya que descontarle después— y el rol del mes todavía no se cierra. El Contador no espera al cierre: entrega el dinero con el asistente «Pagar quincena» (sección 8), que se abre desde el rol del mes en curso.
flowchart TD
A["El empleado necesita
un adelanto"]:::caj
B["El Contador abre
Pagar quincena"]:::caj
C["Llena Empleado, Fecha de pago,
Monto a pagar y Nota"]:::caj
D["El sistema crea un
recibo fuera de ciclo"]:::sis
E["Aparece en el reporte
Otras entradas, junto a
otras cuentas por cobrar"]:::neu
F["El sistema lo descuenta
solo, completo, en el rol
de fin de mes de ese empleado"]:::sis
G["Rol de fin de mes: el
descuento ya viene
incluido al calcular"]:::ok
A --> B --> C --> D --> E
D --> F --> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ok fill:#037F58,stroke:#026345,color:#fff
El asistente pide cuatro datos: a quién (un empleado a la vez), la fecha en que de verdad se entregó el dinero, el monto completo del anticipo, y una nota libre con el motivo — útil cuando alguien pregunte después por qué salió ese descuento. Al confirmar, el sistema crea un recibo fuera de ciclo con su propia fecha de pago, aparte del rol mensual.
Ese recibo es el mismo que después se ve en el reporte «Otras entradas» (sección 7), bajo el concepto «Anticipo de sueldo» — junto a «Otras cuentas por cobrar», que es donde caen los demás conceptos que no son sueldo base. Y es el mismo monto que el rol de fin de mes (sección 5) va a descontar solo, completo, del sueldo de ese empleado.
El Formulario 107 es el certificado de retenciones del ejercicio fiscal, uno por año. Lo que sorprende la primera vez es que el sistema reconoce a menos empleados de los que tiene la empresa, y hay que saber por qué antes de entregarlo: sólo entra quien tiene al menos un rol validado o pagado dentro de ese ejercicio.
flowchart LR
CON(["El Contador"]):::act
SRI(["El SRI"]):::act
UC["Toca entregar el
formulario 107"]:::uc
CON --> UC
UC -.->|se entrega a| SRI
UC -.->|se apoya en| S1["La planilla del IESS
y el Formulario 107"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Llega la fecha de entregar al SRI el certificado de retenciones del ejercicio, y el Contador abre Reportes → Formulario 107 (sección 9). Es un registro por ejercicio fiscal —uno por año, no uno por mes— que reúne la información que exige el formulario para cada empleado elegible de la empresa.
flowchart TD
A["Llega la fecha de
entregar el 107 al SRI"]:::caj
B["Abrir el registro del
ejercicio, por año"]:::caj
C["Revisar el contador
Empleados elegibles"]:::caj
D{"¿El número de
elegibles parece bajo?"}:::sis
E["REVISAR ANTES de
entregar: hueco sin
averiguar todavía"]:::avi
F["Pulsar Completar"]:::caj
G["El sistema arma el
formulario con esos
empleados"]:::sis
H["Entregar al SRI"]:::ok
A --> B --> C --> D
D -->|"sí"| E --> F
D -->|"no, parece razonable"| F
F --> G --> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
Al abrir el registro del ejercicio, la ficha trae la Descripción, el campo Year —así, en inglés, tal como sale en pantalla— y arriba a la derecha un contador: Empleados elegibles. Ese contador dice cuántos empleados de la empresa cumplen el criterio para que el formulario los incluya. El botón Completar arma el formulario con esos empleados.
Sobre la publicación en el portal: el propio sistema avisa, escrito en la ficha, que los archivos no se van a publicar en el portal del empleado si ese empleado no tiene instalada la aplicación Documentos — no es una suposición de este manual, es un aviso que trae la pantalla.
Cuando alguien falta en el rol del mes, casi nunca es un error del sistema: es un dato que falta en la ficha. Revisando las causas en el orden correcto se resuelve en minutos, sin tener que adivinar.
flowchart LR
CON(["El Contador"]):::act
UC["Un empleado no
aparece en el rol"]:::uc
CON --> UC
UC -.->|se apoya en| S1["La ficha del empleado"]:::ref
UC -.->|se apoya en| S2["El rol del mes"]:::ref
UC -.->|se apoya en| S3["Lo que se configura
una vez"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
El Contador arma el periodo de nómina (sección 5) y, en la etapa Empleados, nota que falta alguien que debería estar. Antes de sospechar de un error del sistema, conviene repasar la ficha de esa persona (sección 4) en este orden — de la causa más frecuente a la menos frecuente.
flowchart TD
A["Un empleado no aparece
en la etapa Empleados"]:::caj
B{"¿Tiene fecha de inicio
de contrato?"}:::sis
C["ESTA es la causa más
frecuente — ver caso:
entra a mitad de mes"]:::no
D{"¿El contrato ya
terminó?"}:::sis
E["El contrato vencido
lo saca del rol"]:::no
F{"¿Tiene estructura
salarial asignada?"}:::sis
G["Sin estructura salarial
no hay con qué calcular"]:::no
H{"¿Tiene horario
asignado?"}:::sis
I["Sin horario no hay
días que repartir"]:::no
J["Ficha completa: revisar
con calma antes de suponer
un error del sistema"]:::avi
A --> B
B -->|"no"| C
B -->|"sí"| D
D -->|"sí"| E
D -->|"no"| F
F -->|"no"| G
F -->|"sí"| H
H -->|"no"| I
H -->|"sí"| J
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
1. Falta la fecha de inicio de contrato. Es la causa más frecuente, y la más difícil de notar a simple vista porque el resto de la ficha puede verse completo. Se detalla en sección 26: sin esa fecha, la persona queda fuera del rol sin ningún aviso.
2. El contrato ya terminó. Un contrato con fecha de fin anterior al periodo que se está armando no entra al rol de ese mes — tiene sentido si la persona ya no trabaja ahí, pero conviene confirmarlo: a veces la fecha de fin quedó mal cargada por error, no porque la persona haya salido de verdad.
3. No tiene estructura salarial. La estructura salarial es la que trae las reglas con las que se calcula el recibo — se arma en Configuración (sección 3). Sin ella asignada en el contrato, el sistema no tiene con qué calcular, y la persona no entra.
4. No tiene horario asignado. El horario es lo que reparte el mes en días trabajables. Sin uno asignado en la pestaña Nómina de la ficha, no hay días que repartir.
Todo se revisa en el mismo lugar: la pestaña Nómina de la ficha del empleado (sección 4). Ahí están, uno al lado del otro, el resumen del contrato —con su fecha de inicio y su fecha de fin, si la tiene— y el horario asignado. La estructura salarial vive dentro de ese mismo resumen del contrato. Revisando esos cuatro datos en el orden de arriba se encuentra la causa sin tener que abrir el rol una y otra vez para «ver si ya aparece».