-- GEOSTARK NOMINA - VALIDACION V8 VACACIONES COMPLETAS
-- No modifica datos.

SELECT 'Trabajadores activos sin fecha de ingreso valida' AS revision, COUNT(*) AS total
FROM personas
WHERE IFNULL(estatus_laboral,'ACTIVO')='ACTIVO'
  AND (fecha_ingreso IS NULL OR CAST(fecha_ingreso AS CHAR)='0000-00-00' OR fecha_ingreso > CURDATE());

SELECT 'Eventos vacaciones registrados' AS revision, COUNT(*) AS total,
       ROUND(SUM(monto_disfrute_bs + monto_bono_bs),2) AS monto_total_bs
FROM nomina_vacaciones_eventos
WHERE estado='REGISTRADO';

SELECT 'Eventos vacaciones sin fuente salarial' AS revision, COUNT(*) AS total
FROM nomina_vacaciones_eventos
WHERE estado='REGISTRADO' AND (fuente_salario IS NULL OR fuente_salario='');

SELECT 'Eventos vacaciones sin snapshot' AS revision, COUNT(*) AS total
FROM nomina_vacaciones_eventos
WHERE estado='REGISTRADO' AND (snapshot_json IS NULL OR CAST(snapshot_json AS CHAR)='');

SELECT 'Eventos vacaciones fuente historial' AS revision, COUNT(*) AS total
FROM nomina_vacaciones_eventos
WHERE estado='REGISTRADO' AND fuente_salario='HISTORIAL_CORRIDA';

SELECT 'Eventos vacaciones con periodo cerrado asociado' AS revision, COUNT(*) AS total
FROM nomina_vacaciones_eventos e
INNER JOIN periodos_nomina p ON p.id=e.periodo_id
WHERE e.estado='REGISTRADO' AND p.estado='CERRADO';

SELECT e.id, e.fecha_documento, e.tipo, e.ciclo_anual, e.persona_id, pe.cedula,
       CONCAT(pe.apellido, ' ', pe.nombre) AS trabajador,
       e.dias_disfrute, e.dias_bono, e.monto_disfrute_bs, e.monto_bono_bs,
       e.fuente_salario, e.tasa_bcv_usada, e.origen_registro
FROM nomina_vacaciones_eventos e
LEFT JOIN personas pe ON pe.id=e.persona_id
ORDER BY e.id DESC
LIMIT 30;
