-- ============================================
-- SQL PARA CORREGIR ASOCIACIÓN SERIES-TIPOS
-- Solo ejecuta los UPDATE, no modifica tablas
-- ============================================

-- Primero verificamos qué tenemos
SELECT 'TIPOS DE COMPROBANTE:' as info;
SELECT id_tipo_comprobante, codigo, nombre FROM tipos_comprobante ORDER BY id_tipo_comprobante;

SELECT 'SERIES ACTUALES (ANTES):' as info;
SELECT sc.id_serie, sc.serie, sc.id_tipo_comprobante, tc.codigo, tc.nombre 
FROM series_comprobantes sc
JOIN tipos_comprobante tc ON sc.id_tipo_comprobante = tc.id_tipo_comprobante
ORDER BY sc.serie;

-- ============================================
-- CORREGIR: Actualizar series al tipo correcto
-- Usando subqueries en lugar de variables
-- ============================================

-- Actualizar series F*** a Factura (código 01)
UPDATE series_comprobantes 
SET id_tipo_comprobante = (SELECT id_tipo_comprobante FROM tipos_comprobante WHERE codigo = '01' LIMIT 1)
WHERE serie LIKE 'F0%' AND serie NOT LIKE 'FC%' AND serie NOT LIKE 'FD%';

-- Actualizar series B*** a Boleta (código 03)
UPDATE series_comprobantes 
SET id_tipo_comprobante = (SELECT id_tipo_comprobante FROM tipos_comprobante WHERE codigo = '03' LIMIT 1)
WHERE serie LIKE 'B0%' AND serie NOT LIKE 'BC%' AND serie NOT LIKE 'BD%';

-- Actualizar series FC** a Nota de Crédito (código 07)
UPDATE series_comprobantes 
SET id_tipo_comprobante = (SELECT id_tipo_comprobante FROM tipos_comprobante WHERE codigo = '07' LIMIT 1)
WHERE serie LIKE 'FC%';

-- Actualizar series BC** a Nota de Crédito (código 07)
UPDATE series_comprobantes 
SET id_tipo_comprobante = (SELECT id_tipo_comprobante FROM tipos_comprobante WHERE codigo = '07' LIMIT 1)
WHERE serie LIKE 'BC%';

-- Actualizar series FD** a Nota de Débito (código 08)
UPDATE series_comprobantes 
SET id_tipo_comprobante = (SELECT id_tipo_comprobante FROM tipos_comprobante WHERE codigo = '08' LIMIT 1)
WHERE serie LIKE 'FD%';

-- Actualizar series BD** a Nota de Débito (código 08)
UPDATE series_comprobantes 
SET id_tipo_comprobante = (SELECT id_tipo_comprobante FROM tipos_comprobante WHERE codigo = '08' LIMIT 1)
WHERE serie LIKE 'BD%';

-- ============================================
-- VERIFICACIÓN FINAL
-- ============================================
SELECT 'SERIES CORREGIDAS (DESPUÉS):' as info;
SELECT sc.id_serie, sc.serie, sc.id_tipo_comprobante, tc.codigo as tipo_codigo, tc.nombre as tipo_nombre
FROM series_comprobantes sc
JOIN tipos_comprobante tc ON sc.id_tipo_comprobante = tc.id_tipo_comprobante
ORDER BY tc.codigo, sc.serie;

-- Resultado esperado:
-- F001 → Factura (01)
-- B001 → Boleta (03)
-- FC01 → Nota de Crédito (07)
-- BC01 → Nota de Crédito (07)
-- FD01 → Nota de Débito (08)
-- BD01 → Nota de Débito (08)
