CREATE TABLE TBREPOSICAO_EPI_FUNCAO (
    ID INTEGER NOT NULL,
    CARGO_ID INTEGER,
    PRODUTO_ID INTEGER,
    PRAZO_REPOSICAO INTEGER);

ALTER TABLE TBREPOSICAO_EPI_FUNCAO
ADD CONSTRAINT PK_TBREPOSICAO_EPI_FUNCAO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBREPOSICAO_EPI_FUNCAO;


CREATE trigger ttbreposicao_epi_funcao_b01i for tbreposicao_epi_funcao
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBREPOSICAO_EPI_FUNCAO,1);
END;


CREATE trigger ttbreposicao_epi_funcao_b02i for tbreposicao_epi_funcao
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO INCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREPOSICAO_EPI_FUNCAO',NEW.ID, HISTORICO);
    END
END;

CREATE trigger ttbreposicao_epi_funcao_b01d for tbreposicao_epi_funcao
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO EXCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREPOSICAO_EPI_FUNCAO',OLD.ID, HISTORICO);
    END
END;

CREATE trigger ttbreposicao_epi_funcao_b01u for tbreposicao_epi_funcao
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( NEW.CARGO_ID <> OLD.CARGO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' CARGO:'||OLD.CARGO_ID||'->'||NEW.CARGO_ID;
    END

    IF ( NEW.produto_id <> OLD.produto_id) THEN
    BEGIN
        HISTORICO = HISTORICO||' PROD:'||OLD.produto_id||'->'||NEW.produto_id;
    END

    IF ( NEW.prazo_reposicao <> OLD.prazo_reposicao) THEN
    BEGIN
        HISTORICO = HISTORICO||' PRAZO:'||OLD.prazo_reposicao||'->'||NEW.prazo_reposicao;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' REGISTRO ALTERADO: '||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBREPOSICAO_EPI_FUNCAO',NEW.ID, HISTORICO);
    END
END;

UPDATE OR INSERT INTO TBMENU (ID, CONTROLE, GRUPO, SUBGRUPO, TIPO, URL, DESCRICAO)
                      VALUES (475, 36000, 'SMT', 'SMT', '1   ', '', 'CADASTRO DE REPOSIÇÃO DE EPI POR FUNÇÃO')
                    MATCHING (ID);

COMMIT WORK;





