Contratos¶
¿Qué es?¶
El módulo de Contratos registra la información contractual y salarial de cada empleado. Cada contrato vincula a un empleado con un tipo de contrato, un salario, fechas de vigencia y una periodicidad de pago. Los contratos son la base para generar los comprobantes de nómina: solo los empleados con contrato activo aparecen en el autocompletado al crear comprobantes.
Vista principal¶
Columnas de la tabla¶
- Empleado — Nombre del empleado. Ancho máximo 240 px, truncado.
- Tipo — Nombre del tipo de contrato (ej. "Término fijo", "Indefinido"). Ancho 160 px.
- Inicio — Fecha de inicio del contrato en formato AAAA-MM-DD. Ancho 110 px, monoespaciado.
- Fin — Fecha de fin del contrato en formato AAAA-MM-DD. Ancho 110 px. Puede estar vacío si es contrato indefinido.
- Salario — Salario base del contrato en pesos colombianos (COP). Formato monoespaciado, alineado a la derecha. Ancho 150 px.
- Vigencia — Badge de color según el estado de vigencia del contrato (ver tabla de estados de vigencia).
- Estado — Badge: Activo (verde) o Inactivo (gris). Indica si el contrato está en uso activo. Ancho 100 px.
Filtros¶
- Buscar por empleado... — Campo de texto libre.
- Vigencia — Selector con todos los estados de vigencia:
Todas,Activo,Borrador,Por vencer,Cerrado,Cancelado. - Estado — Selector:
Activos(por defecto),Inactivos,Todos.
Ordenación por defecto¶
Ordenada por fecha de inicio descendente.
Estados de vigencia¶
| Estado | Código | Badge | Descripción |
|---|---|---|---|
| Borrador | new |
Gris | Contrato creado pero no vigente aún |
| Activo | open |
Verde | Contrato vigente en la fecha actual |
| Por vencer | pending |
Amarillo | La fecha de fin está próxima |
| Cerrado | close |
Rojo | La fecha de fin ya pasó |
| Cancelado | cancel |
Rojo | Contrato anulado manualmente |
Acciones disponibles¶
Botón "Nuevo contrato"¶
Visible con permiso contracts: create. Abre el modal de creación.
Botón "Importar"¶
Visible con permiso contracts: import. Navega a la importación masiva (#/contracts-bulk).
Botón "Catálogos"¶
Abre el panel deslizante lateral de Tipos de contrato:
- Lista de tipos con nombre y botones de acción al pasar el cursor.
- Renombrar (ícono de lápiz) — Activa campo editable en línea. Enter o check guarda; Escape cancela.
- Eliminar (ícono de papelera) — Elimina el tipo. Si hay contratos que usan ese tipo, puede fallar con un mensaje de error del servidor.
- Agregar nuevo tipo — Campo de texto en el pie del panel + botón "+".
Exportar¶
Botón de exportación. Descarga un archivo contratos. Requiere permiso contracts: export.
Acciones masivas¶
Al seleccionar uno o más contratos:
- Cambiar estado — Selector de estado de vigencia + botón Aplicar.
- Eliminar — Doble confirmación. Eliminación permanente.
- Cerrar selección — Botón X.
Modal de creación / edición¶
Campos del formulario¶
- Empleado — Autocompletado de empleados (obligatorio). El sistema busca por nombre.
- Tipo de contrato (
contract_type_id) — Autocompletado del catálogo de tipos de contrato. - Fecha de inicio (
date_start) — Selector de fecha (obligatorio). - Fecha de fin (
date_end) — Selector de fecha (opcional). Dejar vacío para contratos a término indefinido. - Salario (
wage) — Valor numérico en COP (obligatorio, debe ser mayor a 0). No acepta decimales. - Vigencia (
state) — Selector del estado de vigencia:Borrador,Activo,Por vencer,Cerrado,Cancelado. - Término (
term) — Campo de texto libre para condiciones adicionales del contrato (opcional). - Periodicidad de pago (
schedule_pay) — Selector:Mensual(monthly),Quincenal(bi-monthly). Por defecto: Mensual.
Validaciones¶
- Empleado es obligatorio.
- Fecha de inicio es obligatoria.
- Salario es obligatorio y debe ser mayor a 0 ("El salario debe ser mayor a 0").
Importación masiva de contratos (contracts-bulk)¶
La página #/contracts-bulk permite crear múltiples contratos a la vez.
Columnas de la hoja¶
| # | Columna | Obligatorio | Notas |
|---|---|---|---|
| 1 | Empleado | Sí | Nombre del empleado (debe existir) |
| 2 | Tipo | No | Nombre del tipo de contrato |
| 3 | Fecha inicio | Sí | Formato AAAA-MM-DD |
| 4 | Fecha fin | No | Formato AAAA-MM-DD (vacío = indefinido) |
| 5 | Salario | Sí | Valor en COP sin decimales |
| 6 | Periodicidad | No | mensual o quincenal |
Importar desde archivo (con IA)¶
Botón Importar acepta .csv, .xlsx o .xls. La IA mapea columnas automáticamente.
Permisos¶
| Acción | Permiso requerido |
|---|---|
| Ver contratos | contracts: view |
| Crear contrato | contracts: create |
| Editar contrato | contracts: edit |
| Eliminar | contracts: delete |
| Exportar | contracts: export |
| Importar | contracts: import |
Páginas relacionadas¶
- Empleados — Cada contrato pertenece a un empleado. El empleado debe existir antes de crear su contrato.
- Nómina — Al crear comprobantes de pago, solo aparecen empleados con contratos activos en el autocompletado.
- Novedades — Los auxilios de alimentación y transporte configurados en los puestos toman como referencia el contrato del empleado.
Preguntas frecuentes¶
¿Un empleado puede tener múltiples contratos activos al mismo tiempo? El sistema lo permite técnicamente, pero se recomienda tener solo un contrato activo por empleado para evitar confusiones en la nómina.
¿Qué pasa si elimino un tipo de contrato que está en uso? El servidor puede rechazar la operación con un mensaje de error si hay contratos existentes que usan ese tipo. Primero reasigna o elimina esos contratos antes de borrar el tipo.
¿Cuándo cambia automáticamente el estado de vigencia de un contrato? El sistema puede calcular el estado según las fechas (si la fecha de fin ya pasó, muestra "Cerrado"; si está próxima, "Por vencer"). Sin embargo, el campo también se puede cambiar manualmente desde el modal o acciones masivas.
¿El campo "Término" es visible para el empleado? No. Es un campo interno del portal para registrar notas o condiciones del contrato. No se muestra en la app móvil.