-- ═══════════════════════════════════════════════════════════════════════
-- 2026-10-22_06 · Notas de crédito de proveedores (DTE 05) en Compras por DTE
-- ═══════════════════════════════════════════════════════════════════════
-- La nota de crédito que manda el proveedor se carga igual que sus otros
-- DTE y queda ligada a la compra original (documentoRelacionado). No mueve
-- inventario (las devoluciones físicas se registran en Devoluciones). Al
-- cargarla se elige su efecto:
--   · rebaja_pago   descuento o bonificación: se rebaja del pago pendiente
--                   de la recepción de la compra original;
--   · solo_registro respaldo fiscal de una devolución ya registrada (que ya
--                   rebajó el pago) o de una compra ya pagada.
--
-- Respaldo previo: backups/tinsa_db_pre-nc-proveedor_2026-10-22.sql
-- Reversa: database/rollback/2026-10-22_06_nota_credito_proveedor.sql
-- ═══════════════════════════════════════════════════════════════════════

USE tinsa_db;

ALTER TABLE compra_dte
  MODIFY modo ENUM('orden','directa','nota_credito') NOT NULL,
  MODIFY id_bodega INT(10) UNSIGNED DEFAULT NULL,
  ADD COLUMN id_compra_relacionada INT(10) UNSIGNED DEFAULT NULL COMMENT 'nota de crédito: la compra que modifica' AFTER id_recepcion,
  ADD COLUMN efecto_nota ENUM('rebaja_pago','solo_registro') DEFAULT NULL AFTER id_compra_relacionada,
  ADD COLUMN monto_rebajado DECIMAL(14,2) NOT NULL DEFAULT 0.00 COMMENT 'lo que la nota rebajó del pago pendiente' AFTER efecto_nota,
  ADD CONSTRAINT fk_compra_dte_relacionada FOREIGN KEY (id_compra_relacionada) REFERENCES compra_dte (id) ON DELETE SET NULL ON UPDATE CASCADE;
