# Notas RRHH - Nomina por Asistencia y Guardias

## Resumen funcional

- El sueldo base del periodo se calcula por horas usando asistencia solo cuando existen marcas en ese periodo.
- Si no hay marcas en el periodo (periodos historicos), se mantiene el sueldo nominal del empleado.
- Horas extra de sabado/domingo y horas de extension aprobada se pagan al mismo valor hora que horas normales.
- Las guardias no cumplidas generan penalizacion y se descuentan del sueldo base calculado.

## Reglas de calculo

- Valor hora = sueldo nominal / horas planificadas del mes.
- Horas pagables = horas L-V + horas sabado/domingo + horas de extension aprobada.
- Penalizacion guardia = guardias no cumplidas x horas jornada x valor hora.
- Sueldo base calculado = (valor hora x horas pagables) - penalizacion guardia.

## Origen de datos

- Asistencia: `registros_asistencia`.
- Horario aplicable: `horarios_asistencia` (scope employee/department/default).
- Extensiones aprobadas: `overtime_extension_requests` con `status = 'approved'`.
- Guardias: `soporte_tecnico.guardias_asignadas` (estados `no_cumplida/incumplida`).

## Vistas y trazabilidad

- `index/rrhh/nominas/sueldos/detalle.php` muestra el sueldo base calculado.
- Modal de desglose: muestra horas, valor hora, guardias y penalizacion.
- Modal de dias pagados (boton en "Horas trabajadas Lunes a Viernes"): muestra detalle diario y montos.

## Notas de consistencia

- Montos en UI con 2 decimales.
- El total neto del modal diario se alinea con el sueldo base calculado del periodo.
