Puestos¶
¿Qué es?¶
El módulo de Puestos administra los puntos físicos donde los empleados registran su asistencia. Un puesto es la ubicación donde el empleado debe estar durante su turno (ej. "Puerta principal Edificio X", "Recepción Torre 2"). Cada puesto está asociado a un proyecto, tiene coordenadas GPS para validar la proximidad, y puede tener auxilios de alimentación y transporte propios.
Vista principal¶
Columnas de la tabla¶
- Nombre — Nombre del puesto de trabajo. Ancho máximo 280 px, truncado.
- Proyecto — Nombre del proyecto al que pertenece. Ancho máximo 240 px, truncado.
- Tipo pago — Badge de color según el tipo de remuneración:
- fijo — Badge azul. Salario fijo por puesto.
- variable — Badge morado. Pago variable según indicadores. Ancho 120 px.
- Dirección — Dirección física del puesto. Texto pequeño (xs), ancho máximo 220 px, truncado.
Filtros¶
- Buscar por nombre o proyecto... — Campo de texto libre.
Ordenación por defecto¶
Ordenada por nombre ascendente.
Acciones disponibles¶
Botón "Nuevo puesto"¶
Visible con permiso positions: create. Abre el modal de creación.
Botón "Importar"¶
Visible con permiso positions: import. Navega a la importación masiva (#/positions-bulk).
Exportar¶
Botón de exportación. Descarga un archivo puestos. Requiere permiso positions: export.
Acciones masivas¶
Al seleccionar uno o más puestos:
- Eliminar — Requiere doble confirmación. Elimina permanentemente el puesto.
- Cerrar selección — Botón X.
Modal de creación / edición¶
Campos del formulario¶
- Nombre — Nombre del puesto (obligatorio).
- Proyecto (
cliente_contract_id) — Autocompletado de proyectos activos (obligatorio). Al enfocar sin texto, carga los primeros resultados. - Tipo de pago (
tipo_pago) — Selector:fijoovariable. - Dirección (
direccion) — Dirección física del puesto. Campo con autocompletado de Google Places (al escribir más de 3 caracteres sugiere direcciones). Al seleccionar una sugerencia, se completan automáticamente Latitud y Longitud. - Código interno (
int_code) — Código o referencia interna de la empresa para este puesto. Texto libre. - Zona interna (
int_zone) — Identificador de zona interna. Texto libre. - Latitud (
latitude) — Coordenada GPS de latitud. Se rellena automáticamente al seleccionar una dirección de Google Places. Editable manualmente. - Longitud (
longitude) — Coordenada GPS de longitud. Se rellena automáticamente. Editable manualmente. - Distancia máxima (metros) (
max_distance_meters) — Radio en metros dentro del cual se considera válida una marcación. Fuera de este radio, el sistema genera una alerta de "Discrepancia de ubicación". Valor entero. - Auxilio de alimentación (
auxilio_alimentacion) — Valor en COP del auxilio de alimentación específico para este puesto. Si es 0, se usa el valor por defecto de la empresa. - Auxilio de transporte (
auxilio_transporte) — Valor en COP del auxilio de transporte para este puesto. Si es 0, se usa el valor de la empresa.
Validaciones¶
- Nombre es obligatorio.
- Proyecto es obligatorio.
Importación masiva de puestos (positions-bulk)¶
La página #/positions-bulk permite crear múltiples puestos a la vez.
Columnas de la hoja¶
| # | Columna | Obligatorio | Notas |
|---|---|---|---|
| 1 | Nombre | Sí | Nombre del puesto |
| 2 | Proyecto | Sí | Nombre del proyecto (debe existir) |
| 3 | Tipo pago | No | fijo o variable |
| 4 | Dirección | No | Dirección física |
| 5 | Distancia máx. | No | Metros (entero) |
| 6 | Auxilio alimentación | No | Valor en COP |
| 7 | Auxilio transporte | No | Valor en COP |
Permisos¶
| Acción | Permiso requerido |
|---|---|
| Ver puestos | positions: view |
| Crear puesto | positions: create |
| Editar puesto | positions: edit |
| Eliminar | positions: delete |
| Exportar | positions: export |
| Importar | positions: import |
Páginas relacionadas¶
- Proyectos — Cada puesto pertenece a un proyecto.
- Asistencia — Los registros de asistencia indican en qué puesto se realizó la marcación.
- Turnos y horarios — Las líneas de programación asignan empleados a puestos específicos.
- Minutas — Las minutas se registran en un puesto.
- Monitor en vivo — Muestra los puestos en el mapa como círculos con etiquetas.
Preguntas frecuentes¶
¿Cuál es la diferencia entre Tipo pago "fijo" y "variable"? Es una clasificación informativa del tipo de contratación para ese puesto. Fijo indica que el empleado tiene un salario fijo sin importar la cantidad de turnos. Variable indica que la remuneración puede variar (por horas, por asistencia, etc.).
¿Por qué se genera una alerta de "Discrepancia de ubicación" en un empleado? Porque el empleado marcó su asistencia desde una posición GPS que supera la distancia máxima configurada en el puesto. Por ejemplo, si el puesto tiene 100 metros de radio y el empleado marcó a 300 metros, se genera la alerta.
¿Es obligatorio poner las coordenadas GPS de un puesto? No es obligatorio, pero sin coordenadas no se puede validar la proximidad y no habrá datos de distancia ni alertas de discrepancia en los registros de asistencia.
¿Los auxilios del puesto reemplazan los de la empresa? Sí. Si un puesto tiene auxilio de alimentación o transporte configurado con un valor mayor a 0, ese valor tiene prioridad sobre el valor general de la empresa. Si están en 0, se usa el valor de la empresa.