-- =====================================================
-- 05b_fix_semenu_tarjetas.sql
-- Ejecutar en la BD NUEVA (10.1.1.12 / Sis2000)
-- Corrige el semenu del módulo de tarjetas
-- =====================================================

USE [Sis2000];
GO

-- Diagnóstico: ver qué hay actualmente
SELECT 'semenuprincipal' AS tabla, cmenu_principal, xmenu, xicono, xruta, istatus
FROM semenuprincipal
WHERE LTRIM(RTRIM(xicono)) = 'ci:credit-card' OR LTRIM(RTRIM(xmenu)) LIKE '%tarjeta%';

SELECT 'semenu - cards' AS tabla, cmenu, cmenu_principal, xmenu, xruta, istatus
FROM semenu
WHERE LTRIM(RTRIM(xruta)) = 'cards' OR LTRIM(RTRIM(xmenu)) LIKE '%tarjeta%';
GO

-- =====================================================
-- Fix: Insert o actualizar semenu apuntando a cmenu_principal=17
-- =====================================================
IF NOT EXISTS (SELECT 1 FROM semenu WHERE LTRIM(RTRIM(xruta)) = 'cards')
BEGIN
    INSERT INTO semenu (cmenu_principal, u_version, xmenu, xruta, istatus, fingreso)
    VALUES (17, NULL, 'Gestion de Tarjetas', 'cards', 'V', GETDATE());
    PRINT 'semenu insertado correctamente.';
END
ELSE
BEGIN
    UPDATE semenu
    SET cmenu_principal = 17, istatus = 'V'
    WHERE LTRIM(RTRIM(xruta)) = 'cards';
    PRINT 'semenu actualizado para apuntar a cmenu_principal=17.';
END
GO

-- =====================================================
-- PASO 3: sedistribucionmenu
-- Copia la distribución de otro módulo existente para
-- los mismos usuarios/roles, apuntando al nuevo cmenu
-- =====================================================
DECLARE @nuevo_cmenu INT;
SELECT @nuevo_cmenu = cmenu FROM semenu WHERE LTRIM(RTRIM(xruta)) = 'cards';

PRINT 'cmenu de tarjetas = ' + ISNULL(CAST(@nuevo_cmenu AS VARCHAR), 'NULL - semenu no insertado aun');

-- Ver distribuciones existentes para referencia
SELECT TOP 10 cusuario, cdepartamento, crol, cmenuprincipal, cmenu, istatus
FROM sedistribucionmenu
WHERE istatus = 'V'
ORDER BY fingreso DESC;
GO

-- =====================================================
-- PASO 4: Verificación final completa
-- =====================================================
SELECT 'semenuprincipal' AS tabla, cmenu_principal, xmenu, xicono, xruta, istatus
FROM semenuprincipal WHERE cmenu_principal = 17;

SELECT 'semenu' AS tabla, cmenu, cmenu_principal, xmenu, xruta, istatus
FROM semenu WHERE cmenu_principal = 17;

SELECT 'sedistribucionmenu (tarjetas)' AS tabla, cusuario, cdepartamento, crol, cmenuprincipal, cmenu, istatus
FROM sedistribucionmenu WHERE cmenuprincipal = 17;
GO
