CREATE OR ALTER TRIGGER TTBBLOQUEIO_PRODUCAO_B01I FOR TBBLOQUEIO_PRODUCAO
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbbloqueio_producao,1);
end;

CREATE TRIGGER TTBBLOQUEIO_PRODUCAO_B02I FOR TBBLOQUEIO_PRODUCAO
ACTIVE BEFORE INSERT POSITION 0
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('TBBLOQUEIO_PRODUCAO',NEW.ID, HISTORICO);
    END
end;

CREATE OR ALTER TRIGGER TTBBLOQUEIO_PRODUCAO_B01U FOR TBBLOQUEIO_PRODUCAO
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.GP_ID <> NEW.GP_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'Grupo de Producao:'|| OLD.GP_ID||'->'||NEW.GP_ID;
    END

    IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||',Status:'|| OLD.STATUS||'->'||NEW.STATUS;
    END

    IF ( OLD.UP <> NEW.UP) THEN
    BEGIN
        HISTORICO = HISTORICO||'Unidade Produtiva:'|| OLD.UP||'->'||NEW.UP;
    END

    IF ( OLD.EMAIL_NOTIFICAR <> NEW.EMAIL_NOTIFICAR) THEN
    BEGIN
        HISTORICO = HISTORICO||'Email Notificacao:'|| OLD.EMAIL_NOTIFICAR||'->'||NEW.EMAIL_NOTIFICAR;
    END

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

CREATE TRIGGER TTBBLOQUEIO_PRODUCAO_B01D FOR TBBLOQUEIO_PRODUCAO
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('TBBLOQUEIO_PRODUCAO',old.ID, HISTORICO);
    END
end;