Atualizações e criação das tabelas para o ambiente do Barcelos.
davinTI/app-dono-modulos/pipeline/head This commit looks good

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 16:27:57 -03:00
parent 7072a48eb6
commit 6acc92dfe2
56 changed files with 6045 additions and 0 deletions
@@ -0,0 +1,109 @@
-- +goose Up
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_FATO_PERDA';
IF v_count = 0 THEN
EXECUTE IMMEDIATE '
CREATE TABLE TB_FLASH_FATO_PERDA (
ID_FATO NUMBER NOT NULL,
DATA_REFERENCIA DATE NOT NULL,
ANO_REFERENCIA NUMBER(4) NOT NULL,
MES_REFERENCIA NUMBER(2) NOT NULL,
DIA_REFERENCIA NUMBER(2),
DIA_SEMANA NUMBER(2),
ID_NODO NUMBER NOT NULL,
ID_NODO_EMPRESA NUMBER NOT NULL,
COD_EMPRESA NUMBER NOT NULL,
NOME_EMPRESA VARCHAR2(200),
COD_PRODUTO NUMBER NOT NULL,
DESCRICAO_PRODUTO VARCHAR2(300),
SEQPRODUTOBASE NUMBER,
NRODIVISAO NUMBER,
NROSEGMENTO NUMBER,
VLR_CUSTO_PERDA NUMBER(18,6),
QTDE_PERDA NUMBER(18,6),
VLR_PERDA NUMBER(18,6),
PROPQTDPRODUTOBASE NUMBER(18,6),
DATA_CADASTRO DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT PK_TB_FLASH_FATO_PERDA PRIMARY KEY (ID_FATO),
CONSTRAINT FK_TB_FLASH_FATO_PERDA_NODO FOREIGN KEY (ID_NODO) REFERENCES TB_FLASH_NODO (ID_NODO),
CONSTRAINT FK_TB_FLASH_FATO_PERDA_EMP FOREIGN KEY (ID_NODO_EMPRESA) REFERENCES TB_FLASH_NODO (ID_NODO),
CONSTRAINT CK_TB_FLASH_FATO_PERDA_MES CHECK (MES_REFERENCIA BETWEEN 1 AND 12)
)';
END IF;
END;
-- +goose StatementEnd
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_PERDA_DATA';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_PERDA_DATA ON TB_FLASH_FATO_PERDA (DATA_REFERENCIA)';
END IF;
END;
-- +goose StatementEnd
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_PERDA_ANOMES';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_PERDA_ANOMES ON TB_FLASH_FATO_PERDA (ANO_REFERENCIA, MES_REFERENCIA)';
END IF;
END;
-- +goose StatementEnd
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_PERDA_NODO';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_PERDA_NODO ON TB_FLASH_FATO_PERDA (ID_NODO)';
END IF;
END;
-- +goose StatementEnd
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_PERDA_EMP';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_PERDA_EMP ON TB_FLASH_FATO_PERDA (COD_EMPRESA, ANO_REFERENCIA, MES_REFERENCIA)';
END IF;
END;
-- +goose StatementEnd
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_PERDA_PROD';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_PERDA_PROD ON TB_FLASH_FATO_PERDA (COD_PRODUTO)';
END IF;
END;
-- +goose StatementEnd
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_constraints WHERE constraint_name = 'UK_TB_FLASH_FATO_PERDA';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'ALTER TABLE TB_FLASH_FATO_PERDA ADD CONSTRAINT UK_TB_FLASH_FATO_PERDA UNIQUE (DATA_REFERENCIA, COD_EMPRESA, COD_PRODUTO, NROSEGMENTO)';
END IF;
END;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_FATO_PERDA';
IF v_count > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE TB_FLASH_FATO_PERDA CASCADE CONSTRAINTS PURGE';
END IF;
END;
-- +goose StatementEnd