FactuGES_ERP/docs/customer-invoices/sql/add-issued-invoice-verifactu-snapshots.sql

112 lines
3.8 KiB
MySQL
Raw Normal View History

-- Estado documental: SUPERSEDED / solo auditoria legacy.
-- Este script responde a una propuesta antigua que reintroducia
-- `verifactu_profile_status`, `uses_verifactu` y `verifactu_effective_at`
-- en `issued_invoices`.
-- No es SSOT vigente y no debe ejecutarse como camino normal en entornos nuevos.
-- Ejecutar solo para auditar drift historico o comparar esquemas legacy.
SET @target_schema = DATABASE();
SET
@ddl = (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE
table_schema = @target_schema
AND table_name = 'issued_invoices'
AND column_name = 'operation_qualification_code'
), 'SELECT ''operation_qualification_code already exists''', 'ALTER TABLE issued_invoices ADD COLUMN operation_qualification_code VARCHAR(64) NULL AFTER tax_regime_description'
)
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET
@ddl = (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE
table_schema = @target_schema
AND table_name = 'issued_invoices'
AND column_name = 'exemption_reason_code'
), 'SELECT ''exemption_reason_code already exists''', 'ALTER TABLE issued_invoices ADD COLUMN exemption_reason_code VARCHAR(64) NULL AFTER operation_qualification_code'
)
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET
@ddl = (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE
table_schema = @target_schema
AND table_name = 'issued_invoices'
AND column_name = 'verifactu_profile_status'
), 'SELECT ''verifactu_profile_status already exists''', 'ALTER TABLE issued_invoices ADD COLUMN verifactu_profile_status VARCHAR(64) NULL AFTER exemption_reason_code'
)
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET
@ddl = (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE
table_schema = @target_schema
AND table_name = 'issued_invoices'
AND column_name = 'uses_verifactu'
), 'SELECT ''uses_verifactu already exists''', 'ALTER TABLE issued_invoices ADD COLUMN uses_verifactu TINYINT(1) NULL AFTER verifactu_profile_status'
)
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET
@ddl = (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE
table_schema = @target_schema
AND table_name = 'issued_invoices'
AND column_name = 'verifactu_effective_at'
), 'SELECT ''verifactu_effective_at already exists''', 'ALTER TABLE issued_invoices ADD COLUMN verifactu_effective_at DATETIME NULL AFTER uses_verifactu'
)
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- Validacion minima posterior a la DDL.
-- SELECT column_name
-- FROM information_schema.columns
-- WHERE table_schema = DATABASE()
-- AND table_name = 'issued_invoices'
-- AND column_name IN (
-- 'operation_qualification_code',
-- 'exemption_reason_code',
-- 'verifactu_profile_status',
-- 'uses_verifactu',
-- 'verifactu_effective_at'
-- );