-- =====================================================
-- 05c_cleanup_y_fix_distribucion.sql
-- Ejecutar en la BD NUEVA (10.1.1.12 / Sis2000)
-- 1) Elimina el duplicado cmenu_principal=17
-- 2) Revierte semenu para apuntar a cmenu_principal=16
-- 3) Agrega distribución para TODOS los usuarios activos
-- =====================================================

USE [Sis2000];
GO

-- =====================================================
-- PASO 1: Revertir semenu a cmenu_principal=16
-- =====================================================
UPDATE semenu SET cmenu_principal = 16
WHERE cmenu = 61 AND LTRIM(RTRIM(xruta)) = 'cards';
PRINT 'semenu revertido a cmenu_principal=16';
GO

-- =====================================================
-- PASO 2: Eliminar el duplicado semenuprincipal=17
-- =====================================================
DELETE FROM semenuprincipal WHERE cmenu_principal = 17;
PRINT 'semenuprincipal duplicado (17) eliminado';
GO

-- =====================================================
-- PASO 3: Agregar distribución del módulo de tarjetas
--         para TODOS los usuarios activos del sistema
-- =====================================================
INSERT INTO sedistribucionmenu (u_version, cusuario, cdepartamento, crol, cmenuprincipal, cmenu, csubmenu, cusuario1, istatus, fingreso)
SELECT DISTINCT
    d.u_version,
    u.cusuario,
    u.cdepartamento,
    u.crol,
    16 AS cmenuprincipal,
    61 AS cmenu,
    NULL AS csubmenu,
    u.cusuario AS cusuario1,
    'V' AS istatus,
    GETDATE() AS fingreso
FROM seusuariosweb u
CROSS JOIN (
    SELECT TOP 1 u_version, cdepartamento, crol 
    FROM sedistribucionmenu 
    WHERE cmenuprincipal = 16 AND cmenu = 61 AND cusuario > 0
) d
WHERE u.istatus = 'V'
  AND NOT EXISTS (
    SELECT 1 FROM sedistribucionmenu 
    WHERE cusuario = u.cusuario 
      AND cmenuprincipal = 16 
      AND cmenu = 61
  );

PRINT CAST(@@ROWCOUNT AS VARCHAR) + ' usuarios agregados a sedistribucionmenu para tarjetas';
GO

-- =====================================================
-- Verificación final
-- =====================================================
SELECT cmenu_principal, xmenu, xicono, xruta, istatus
FROM semenuprincipal WHERE cmenu_principal = 16;

SELECT cmenu, cmenu_principal, xmenu, xruta, istatus
FROM semenu WHERE cmenu = 61;

SELECT COUNT(*) AS usuarios_con_acceso_tarjetas
FROM sedistribucionmenu
WHERE cmenuprincipal = 16 AND cmenu = 61 AND istatus = 'V';
GO
