CREATE TRIGGER TTBSETOR_B01I FOR TBSETOR
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.CODIGO is null) then
    new.CODIGO = gen_id(GTBSETOR,1);
end;

CREATE TRIGGER TTBSETOR_B02I FOR TBSETOR
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro incluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',NEW.CODIGO, HISTORICO);
    END
end;

CREATE OR ALTER TRIGGER TTBSETOR_B9U FOR TBSETOR
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
begin

   HISTORICO = '';

   if (OLD.DESCRICAO <> NEW.DESCRICAO) then
       BEGIN
       HISTORICO = HISTORICO||' Desc.'||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
       END

   if (OLD.Esteira_Codigo <> NEW.Esteira_Codigo) then
       BEGIN
       HISTORICO = HISTORICO||' GP.'||OLD.Esteira_Codigo||'->'||NEW.Esteira_Codigo;
       END

   if (OLD.Codigo1 <> NEW.Codigo1) then
       BEGIN
       HISTORICO = HISTORICO||' Cód.Bar.'||OLD.Codigo1||'->'||NEW.Codigo1;
       END

   if (OLD.PLANO_MESTRE <> NEW.PLANO_MESTRE) then
       BEGIN
       HISTORICO = HISTORICO||' Pl.Mestre:'||OLD.PLANO_MESTRE||'->'||NEW.PLANO_MESTRE;
       END

   if (OLD.FAMILIA_CODIGO <> NEW.FAMILIA_CODIGO) then
       BEGIN
       HISTORICO = HISTORICO||' Familia Codigo:'||OLD.FAMILIA_CODIGO||'->'||NEW.FAMILIA_CODIGO;
       END

   if (OLD.CCUSTO <> NEW.CCUSTO) then
       BEGIN
       HISTORICO = HISTORICO||' Centro de Custo:'||OLD.CCUSTO||'->'||NEW.CCUSTO;
       END

   if (OLD.PERFIL <> NEW.PERFIL) then
       BEGIN
       HISTORICO = HISTORICO||' Perfil:'||OLD.PERFIL||'->'||NEW.PERFIL;
       END

   if (OLD.STATUS <> NEW.STATUS) then
       BEGIN
       if (NEW.STATUS = '0') then
           HISTORICO = HISTORICO||' Status Inativado';
       if (NEW.STATUS = '1') then
           HISTORICO = HISTORICO||' Status Ativado';
       END

   if (HISTORICO <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBSETOR', OLD.CODIGO,
      (Select First 1 MON$USER from mon$attachments where mon$attachment_id = current_connection),
      (Select First 1 MON$REMOTE_ADDRESS from mon$attachments where mon$attachment_id = current_connection),
       'UP alterada: '||:Historico);
       End
end;

CREATE TRIGGER TTBSETOR_B01D FOR TBSETOR
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro Excluido: '||old.CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',old.CODIGO, HISTORICO);
    END
end;

CREATE OR ALTER TRIGGER TTBUP_ESTACAO_B01I FOR TBUP_ESTACAO
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.UP_ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Estacao incluida';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',NEW.UP_ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBUP_ESTACAO_B01U FOR TBUP_ESTACAO
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.ID <> NEW.ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', ID: '|| OLD.ID||'->'||NEW.ID;
    END

    IF ( OLD.EM_PRODUCAO <> NEW.EM_PRODUCAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', Em Producao: '|| OLD.EM_PRODUCAO||'->'||NEW.EM_PRODUCAO;
    END

    IF ( OLD.TALAO_ID <> NEW.TALAO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', Talao ID: '|| OLD.TALAO_ID||'->'||NEW.TALAO_ID;
    END

    IF ( OLD.INCREMENTO <> NEW.INCREMENTO) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', Imcremento: '|| OLD.INCREMENTO||'->'||NEW.INCREMENTO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',NEW.UP_ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBUP_ESTACAO_B01D FOR TBUP_ESTACAO
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.UP_ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Estacao Excluida no: '||OLD.UP_ID;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',old.UP_ID, HISTORICO);
    END
end;

CREATE OR ALTER TRIGGER TTBUP_FLUXO_B01U FOR TBUP_FLUXO
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
declare variable FLUXO_ID INTEGER;
BEGIN

    HISTORICO = '';
   FLUXO_ID = (SELECT T.FLUXO_ID FROM TBUP_FLUXO T WHERE T.ID = NEW.ID);

    IF ( OLD.FLUXO_ID <> NEW.FLUXO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', Fluxo ID: '|| OLD.FLUXO_ID||'->'||NEW.FLUXO_ID;
    END

    IF( FLUXO_ID = NEW.FLUXO_ID) THEN
    BEGIN
      EXCEPTION "..." 'FLUXO JÁ EXISTENTE NA UNIDADE PRODUTIVA SELECIONADA: '||OLD.UP_ID;
    END

    IF ( OLD.QUANTIDADE_OPERADOR <> NEW.QUANTIDADE_OPERADOR) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', Quantidade Operador: '|| OLD.QUANTIDADE_OPERADOR||'->'||NEW.QUANTIDADE_OPERADOR;
    END

    IF ( OLD.FLUXO_PADRAO <> NEW.FLUXO_PADRAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'UP ID: '||OLD.UP_ID||', Fluxo Padrão: '|| OLD.FLUXO_PADRAO||'->'||NEW.FLUXO_PADRAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',NEW.UP_ID, HISTORICO);
    END
end;

CREATE TRIGGER TTBUP_FLUXO_B01D FOR TBUP_FLUXO
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.UP_ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Fluxo Excluido no: '||OLD.UP_ID;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',old.UP_ID, HISTORICO);
    END
end;

CREATE OR ALTER TRIGGER TTBUP_FLUXO_B01I FOR TBUP_FLUXO
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.UP_ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Fluxo incluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSETOR',NEW.UP_ID, HISTORICO);
    END
end;






