CREATE TRIGGER TTBENDERECAMENTO_B02I FOR TBENDERECAMENTO
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

  HISTORICO = '';

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

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

CREATE TRIGGER TTBENDERECAMENTO_B02D FOR TBENDERECAMENTO
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

  HISTORICO = '';

  IF(OLD.ID > 0) THEN
  BEGIN
    HISTORICO = HISTORICO||'Reg.excluído';
  END

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

CREATE TRIGGER TTBENDERECAMENTO_PRODUTO_B02I FOR TBENDERECAMENTO_PRODUTO
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

  HISTORICO = '';

  IF(NEW.ID > 0 AND NEW.ENDERECAMENTO_ID > 0) THEN
  BEGIN
    HISTORICO = HISTORICO||'Produto incluido do endereçamento: '||NEW.PRODUTO_ID;
  END

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

CREATE TRIGGER TTBENDERECAMENTO_PRODUTO_B01D FOR TBENDERECAMENTO_PRODUTO
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

  HISTORICO = '';

  IF(OLD.ID > 0 AND OLD.ENDERECAMENTO_ID > 0) THEN
  BEGIN
    HISTORICO = HISTORICO||'Produto excluido do endereçamento: '||OLD.PRODUTO_ID;
  END

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

CREATE TRIGGER TTBENDERECAMENTO_B03I FOR TBENDERECAMENTO
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable ID INTEGER;
begin
  /* Trigger text */
  ID = COALESCE((SELECT FIRST 1 A.ID FROM TBENDERECAMENTO A left join TBLOCALIZACAO b on b.CODIGO = a.LOCALIZACAO_ID WHERE A.GRUPO = NEW.GRUPO
                    AND A.SUBGRUPO = NEW.SUBGRUPO AND A.LOCALIZACAO_ID = NEW.LOCALIZACAO_ID AND A.FAMILIA_ID = NEW.FAMILIA_ID),0);
  IF(ID > 0)THEN
  BEGIN
     EXCEPTION "..." 'SUBGRUPO :'||NEW.SUBGRUPO||' JÁ EXISTENTE NA LOCALIZAÇÃO: '||NEW.LOCALIZACAO_ID||', GRUPO: '||NEW.GRUPO;
  END
end;

CREATE OR ALTER TRIGGER TTBENDERECAMENTO_B02U FOR TBENDERECAMENTO
ACTIVE BEFORE UPDATE POSITION 0
AS
declare variable ID INTEGER;
begin
  /* Trigger text */
  ID = COALESCE((SELECT FIRST 1 A.ID FROM TBENDERECAMENTO A left join TBLOCALIZACAO b on b.CODIGO = a.LOCALIZACAO_ID WHERE A.GRUPO = NEW.GRUPO
                    AND A.SUBGRUPO = NEW.SUBGRUPO AND A.LOCALIZACAO_ID = NEW.LOCALIZACAO_ID AND A.FAMILIA_ID = NEW.FAMILIA_ID
                    AND A.ID <> NEW.ID),0);
  IF(ID > 0)THEN
  BEGIN
     EXCEPTION "..." 'SUBGRUPO :'||NEW.SUBGRUPO||' JÁ EXISTENTE NA LOCALIZAÇÃO: '||NEW.LOCALIZACAO_ID||', GRUPO: '||NEW.GRUPO;
  END
end;

