# Base de Conocimiento - Tablero Talento Humano Agrota

Este documento describe la estructura de datos **verificada directamente en Power BI** para el tablero de **Talento Humano**.

> ⚠️ Solo se incluyen tablas y columnas confirmadas con `EVALUATE TOPN(1, NombreTabla)` vía API REST de Power BI.

---

## Tablas Confirmadas

### `Empleados` — Información maestra del personal

| Columna | Tipo | Descripción |
| :--- | :--- | :--- |
| `CodigoEmpleado` | Texto | Clave primaria |
| `Empleado` | Texto | Nombre completo |
| `Empresa` | Texto | Empresa a la que pertenece |
| `Departamento` | Texto | Área funcional |
| `Canal` | Texto | Canal de negocio |
| `Division` | Texto | División organizacional |
| `Zona` | Texto | Zona geográfica |
| `Jefe Inmediato` | Texto | Nombre del jefe |
| `Cargo` | Texto | Cargo del empleado |
| `Gerente` | Texto | Gerente responsable |
| `Estado` | Texto | "Activo" / "Inactivo" |
| `Antigüedad` | Entero | Años de antigüedad |
| `Codigo Division` | Entero | Código numérico de división |
| `CodigoJefe Inmediato` | Entero | Código del jefe |
| `CodigoCargo` | Entero | Código del cargo |
| `CodigoZona` | Texto | Código de zona |
| `IngresoAvisoIess` | Fecha | Fecha ingreso (dd/MM/yyyy) |
| `antiguedadcorrecta` | Decimal | Antigüedad calculada exacta |

---

### `RolDePagos` — Nómina de pagos

| Columna | Tipo | Descripción |
| :--- | :--- | :--- |
| `CodigoEmpleado` | Texto | FK → Empleados |
| `FechaGeneracionRol` | Fecha | Fecha de generación del rol |
| `FechaRolCobrado` | Fecha | Fecha en que se cobró |
| `SueldoNominal` | Decimal | Sueldo base |
| `Comision` | Decimal | Comisión |
| `ValorHoraExtra` | Decimal | Horas extras |
| `ValorHoraExtraordinaria` | Decimal | Horas extraordinarias |
| `BonoFijo` | Decimal | Bono fijo |
| `BonoVariable` | Decimal | Bono variable |
| `BonoAlimentacion` | Decimal | Bono de alimentación |
| `ValorDecimoIII` | Decimal | Décimo tercer sueldo |
| `ValorDecimoIV` | Decimal | Décimo cuarto sueldo |
| `FondosReserva` | Decimal | Fondos de reserva |
| `IESSEmpleado` | Decimal | Aporte IESS empleado |
| `Atrasos` | Decimal | Descuentos por atraso |
| `Rubros` | Decimal | Otros rubros |
| `Prestamos` | Decimal | Préstamos empresa |
| `viaticos` | Decimal | Viáticos |
| `Gastos` | Decimal | Gastos |
| `Anticipos` | Decimal | Anticipos de sueldo |
| `MultasEmpleado` | Decimal | Multas |
| `PrestamosIESS` | Decimal | Préstamos IESS |
| `ValorJornadaNocturna` | Decimal | Jornada nocturna |
| `IESSPatronoEmpleado` | Decimal | Aporte IESS patronal |
| `CodigosUnificados` | Texto | Clave alternativa unificada |

---

### `TipoEmpleado` — Catálogo de tipos de empleado

| Columna | Tipo | Descripción |
| :--- | :--- | :--- |
| `codigotipoempleado` | Texto | Clave del tipo |
| `nombreTipoEmpleado` | Texto | Descripción del tipo |

---

### `Ventas` — Transacciones comerciales vinculadas al personal

| Columna | Tipo | Descripción |
| :--- | :--- | :--- |
| `CodigoFactura` | Texto | Identificador de factura |
| `FechaFactura` | Fecha | Fecha de la venta |
| `Cantidad` | Decimal | Unidades vendidas |
| `PrecioVenta` | Decimal | Precio de venta unitario |
| `Costo` | Decimal | Costo del producto |
| `CodigoProducto` | Texto | FK → Productos |
| `CodigoLinea` | Texto | Línea de producto |
| `CodigoCategoria` | Texto | Categoría de producto |
| `CodigoEmpleado` | Texto | FK → Empleados (vendedor) |
| `CodigoCliente` | Texto | FK → Clientes |
| `UnidadesKiloLitros` | Decimal | Volumen en kilos/litros |
| `PrecioVentaProducto` | Decimal | Precio catálogo del producto |
| `CodigoClienteLinea` | Texto | Clave compuesta cliente-línea |
| `CodigoPresupuesto` | Texto | Clave compuesta para presupuesto |

---

## Relaciones del Modelo

| Relación | Campo | Cardinalidad |
| :--- | :--- | :--- |
| `RolDePagos` → `Empleados` | `CodigoEmpleado` | N:1 |
| `Ventas` → `Empleados` | `CodigoEmpleado` | N:1 |
| `RolDePagos[FechaGeneracionRol]` → `Calendario` | Fecha | N:1 |
| `Ventas[FechaFactura]` → `Calendario` | Fecha | N:1 |

---

## ⛔ Columnas y Tablas NO Existentes (verificado vía API)

| Elemento | Estado | Nota |
| :--- | :--- | :--- |
| `Ventas[UtilidadBruta]` | ❌ No existe | Calcular como `Ventas[PrecioVenta] - Ventas[Costo]` |
| `TipoEmpleado[TipoEmpleado]` | ❌ Nombre incorrecto | El nombre real es `nombreTipoEmpleado` |
| `historico_empleados3` | ❌ No verificada | Devuelve 400 en API |
| `empleados_corporativos` | ❌ No verificada | Devuelve 400 en API |
| `Solicitudes de permiso` | ❌ No verificada | Devuelve 400 en API |
| `RolDePagos Nuevo` | ❌ No verificada | Devuelve 400 en API |
| `RolDePagos Antiguo` | ❌ No verificada | Devuelve 400 en API |
| `Novedades` | ❌ No existe | Devuelve 400 en API |
| `Contratos` | ❌ No existe | Devuelve 400 en API |
| `Cargos` | ❌ No existe | Devuelve 400 en API |
| `Vacaciones` | ❌ No existe | Devuelve 400 en API |
| `Asistencia` | ❌ No existe | Devuelve 400 en API |

---

## 5. Reglas Estrictas para Generación de DAX (Talento Humano)
Para evitar errores de modelo (hallucinaciones de columnas o métricas de otros tableros), el LLM debe cumplir SIEMPRE:
1. **Límites del Tablero:** ESTE TABLERO ES SOLO PARA TALENTO HUMANO, VENTAS Y ROL DE PAGOS. Si el usuario pregunta por "Cartera", "Cuentas por cobrar", "Saldo Vencido" o "% Cumplimiento de Presupuesto", el LLM **DEBE RECHAZAR** la solicitud indicando que dichos datos *no pertenecen* a la base de Talento Humano y sugerir que cambie al tablero correspondiente.
2. **Nombres de Columnas Exactas:** No inventes columnas como `SueldoTotal` o `IngresoNeto`. Usa estrictamente las descritas en las tablas superiores (Ej. `SueldoNominal`, `ValorHoraExtra`).
3. **Restricción de medidas:** Para extraer sumatorias o agrupaciones, usa `EVALUATE SUMMARIZECOLUMNS()` o `EVALUATE ROW("Nombre", SUM(...))`. No adivines medidas pre-calculadas (con corchetes `[Medida]`) a menos que estés 100% seguro que existan en el modelo.
4. **Filtros de Tiempo:** Evita filtrar por el campo de fecha crudo en la tabla de hechos a menos que sea necesario. Prefiere usar la tabla `'Calendario'` si está vinculada de manera activa.
