CREATE TABLE TBROTEIRO_PRODUCAO (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(50));

ALTER TABLE TBROTEIRO_PRODUCAO
ADD CONSTRAINT PK_TBROTEIRO_PRODUCAO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBROTEIRO_PRODUCAO;

SET TERM ^ ;

create trigger Ttbroteiro_producao_b01i for tbroteiro_producao
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbroteiro_producao,1);
end
^

SET TERM ; ^

CREATE TABLE TBROTEIRO_PRODUCAO_GP (
    ID INTEGER NOT NULL,
    GP_ID INTEGER,
    ORDEM INTEGER);

ALTER TABLE TBROTEIRO_PRODUCAO_GP
ADD CONSTRAINT PK_TBROTEIRO_PRODUCAO_GP
PRIMARY KEY (ID);

CREATE SEQUENCE GTBROTEIRO_PRODUCAO_GP;

SET TERM ^ ;

create trigger Ttbroteiro_producao_gp_b01i for tbroteiro_producao_gp
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbroteiro_producao_gp,1);
end
^

SET TERM ; ^

CREATE TABLE TBMODELO_ROTEIRO_PRODUCAO (
    ID INTEGER NOT NULL,
    MODELO_ID INTEGER,
    ROTEIRO_PRODUCAO_ID INTEGER,
    TIPO_PROCESSO INTEGER);

ALTER TABLE TBMODELO_ROTEIRO_PRODUCAO
ADD CONSTRAINT PK_TBMODELO_ROTEIRO_PRODUCAO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBMODELO_ROTEIRO_PRODUCAO;

SET TERM ^ ;

create trigger Ttbmodelo_roteiro_producao_b01i for tbmodelo_roteiro_producao
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbmodelo_roteiro_producao,1);
end
^

SET TERM ; ^

CREATE TABLE TBROTEIRO_PRODUCAO_TIPO (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(50),
    FIXO INTEGER DEFAULT 0,
    STATUS INTEGER DEFAULT 0);

ALTER TABLE TBROTEIRO_PRODUCAO_TIPO
ADD CONSTRAINT PK_TBROTEIRO_PRODUCAO_TIPO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBROTEIRO_PRODUCAO_TIPO;

SET TERM ^ ;

create trigger Ttbroteiro_producao_tipo_bi for tbroteiro_producao_tipo
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbroteiro_producao_tipo,1);
end
^

SET TERM ; ^

ALTER SEQUENCE GTBROTEIRO_PRODUCAO_TIPO RESTART WITH 9 INCREMENT BY 1;

UPDATE OR INSERT INTO TBROTEIRO_PRODUCAO_TIPO (ID, DESCRICAO, FIXO, STATUS)
                                       VALUES (1, 'INTERNA', 1, 1)
                                     MATCHING (ID);
UPDATE OR INSERT INTO TBROTEIRO_PRODUCAO_TIPO (ID, DESCRICAO, FIXO, STATUS)
                                       VALUES (2, 'VENDA', 1, 1)
                                     MATCHING (ID);
									 
ALTER TABLE TBROTEIRO_PRODUCAO_GP
    ADD ROTEIRO_PRODUCAO INTEGER;

UPDATE OR INSERT INTO TBMENU (CONTROLE, GRUPO, SUBGRUPO, TIPO, URL, DESCRICAO, DATAHORA, SUB_GRUPO, DESCRICAO_RESUMIDA)
                      VALUES (22583, 'PCP', 'PCP', '1', '', 'CADASTRO DE ROTEIROS DE PRODUÇÃO', '2025-06-18 16:23:27', '4', 'CADASTRO DE ROTEIROS DE PRODUÇÃO')
                    MATCHING (CONTROLE, GRUPO);
					
					
ALTER TABLE TBROTEIRO_PRODUCAO
    ADD STATUS INTEGER DEFAULT 1;

ALTER TABLE TBROTEIRO_PRODUCAO_GP
    ADD STATUS INTEGER DEFAULT 1;

UPDATE OR INSERT INTO TBPARAMETRO (TABELA, CODIGO, OBSERVACAO)
                           VALUES ('SISTEMA', 'CAMPOS_VISIVEIS_MODELO', 'FAMILIA_PRODUCAO,
TIPOPRODUTO_CODIGO ,
MATRIZ_CODIGO ,
MODELO_PAI ,
PERFIL ,
DESCRICAO_NF ,
HORAS_BLOQUEIO ,
DENSIDADE ,
ESPESSURA ,
TIPO_TAG ,
ABA_COTAS ,
ABA_FLUXO_GERAL,
GRUPO_FIO,
CONFIG_ALOCACAO,
NR_PECAS,
DIAS_VALIDADE,
ROTEIROS_PRODUCAO,
SE VAZIO = TODOS;')
                         MATCHING (TABELA, CODIGO);

COMMIT WORK;

CREATE INDEX ITBROTEIRO_PRODUCAO_GP_02
ON TBROTEIRO_PRODUCAO_GP (ROTEIRO_PRODUCAO);

CREATE INDEX ITBROTEIRO_PRODUCAO_GP_01
ON TBROTEIRO_PRODUCAO_GP (GP_ID);

CREATE INDEX ITBMODELO_ROTEIRO_PRODUCAO_02
ON TBMODELO_ROTEIRO_PRODUCAO (ROTEIRO_PRODUCAO_ID);

CREATE INDEX ITBMODELO_ROTEIRO_PRODUCAO_01
ON TBMODELO_ROTEIRO_PRODUCAO (MODELO_ID);

ALTER TABLE TBROTEIRO_PRODUCAO
    ADD TIPO_ID INTEGER;

COMMENT ON COLUMN TBROTEIRO_PRODUCAO.TIPO_ID IS
'TBROTEIRO_PRODUCAO_TIPO';

ALTER TABLE TBMODELO_ROTEIRO_PRODUCAO DROP TIPO_PROCESSO;

ALTER TABLE TBMODELO_ROTEIRO_PRODUCAO
    ADD TIPO_GERA_REMESSA INTEGER;

COMMENT ON COLUMN TBMODELO_ROTEIRO_PRODUCAO.TIPO_GERA_REMESSA IS
'1 - gerar remessas usando o consumo
2 - acumular consumo de niveis > 0';

