-- ================================================================
-- GEOSTARK NOMINA - RECONSTRUCCION MANUAL SEGURA PRESTACIONES V7.3.2
-- Compatible MariaDB/MySQL. Usar preferiblemente el botón del sistema.
-- Este SQL respalda y limpia eventos automaticos/intereses para que luego
-- el sistema regenere con historial salarial real.
-- ================================================================

SET @CONFIRMAR_RECONSTRUCCION_PRESTACIONES := 'NO';

SELECT 'ATENCION' AS mensaje,
       'Ejecuta primero en NO. Si los conteos son correctos, cambia a SI. Este script no toca trabajadores, corridas, tasas BCV, parametros, conceptos ni datos maestros.' AS detalle;

SELECT 'Eventos automaticos a limpiar' AS revision, COUNT(*) AS total
FROM nomina_prestaciones_eventos
WHERE estado='REGISTRADO'
  AND tipo IN ('TRIMESTRAL','ADICIONAL_ANUAL');

SELECT 'Intereses a limpiar' AS revision, COUNT(*) AS total
FROM nomina_prestaciones_intereses
WHERE estado='REGISTRADO';

CREATE TABLE IF NOT EXISTS backup_v732_nomina_prestaciones_eventos LIKE nomina_prestaciones_eventos;
CREATE TABLE IF NOT EXISTS backup_v732_nomina_prestaciones_intereses LIKE nomina_prestaciones_intereses;

INSERT IGNORE INTO backup_v732_nomina_prestaciones_eventos
SELECT * FROM nomina_prestaciones_eventos
WHERE @CONFIRMAR_RECONSTRUCCION_PRESTACIONES = 'SI';

INSERT IGNORE INTO backup_v732_nomina_prestaciones_intereses
SELECT * FROM nomina_prestaciones_intereses
WHERE @CONFIRMAR_RECONSTRUCCION_PRESTACIONES = 'SI';

DELETE FROM nomina_prestaciones_intereses
WHERE @CONFIRMAR_RECONSTRUCCION_PRESTACIONES = 'SI'
  AND estado='REGISTRADO';

DELETE FROM nomina_prestaciones_eventos
WHERE @CONFIRMAR_RECONSTRUCCION_PRESTACIONES = 'SI'
  AND estado='REGISTRADO'
  AND tipo IN ('TRIMESTRAL','ADICIONAL_ANUAL');

SELECT IF(@CONFIRMAR_RECONSTRUCCION_PRESTACIONES='SI',
          'Limpieza ejecutada. Ahora entra al sistema y pulsa Reconstruir prestaciones v7.3.2 o genera base/intereses desde la pantalla.',
          'Modo revision. No se limpiaron datos. Cambia @CONFIRMAR_RECONSTRUCCION_PRESTACIONES a SI para ejecutar.') AS resultado;

SELECT 'Eventos automaticos restantes' AS revision, COUNT(*) AS total
FROM nomina_prestaciones_eventos
WHERE estado='REGISTRADO'
  AND tipo IN ('TRIMESTRAL','ADICIONAL_ANUAL');

SELECT 'Intereses restantes' AS revision, COUNT(*) AS total
FROM nomina_prestaciones_intereses
WHERE estado='REGISTRADO';
