SET TERM ^ ;

CREATE OR ALTER trigger ttbcidade_meta_b01u for tbcidade_meta
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.DATA_INICIAL <> NEW.DATA_INICIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.INICIAL:'||OLD.DATA_INICIAL||'->'||NEW.DATA_INICIAL;
    END

    IF (OLD.DATA_FINAL <> NEW.DATA_FINAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.FINAL:'||OLD.DATA_FINAL||'->'||NEW.DATA_FINAL;
    END

    IF(OLD.VALOR <> NEW.VALOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' VALOR:'||'R$'||OLD.VALOR||'->'||'R$'||NEW.VALOR;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        IF (OLD.DATA_INICIAL <> NEW.DATA_INICIAL) THEN
        BEGIN
            HISTORICO = ' META: VALOR: R$'||CAST(NEW.valor AS NUMERIC (15,2))||' ALTERADA: '||HISTORICO;
        END
        IF (OLD.DATA_INICIAL = NEW.DATA_INICIAL) THEN
        BEGIN
            HISTORICO = ' META: PERÍODO:'||FORMATDATE(NEW.DATA_INICIAL)||' A '||FORMATDATE(NEW.DATA_FINAL)||' ALTERADA: '||HISTORICO;
        END

        EXECUTE PROCEDURE SPI_HISTORICO('TBREGIAO', NEW.REGIAO_ID, HISTORICO);
    END

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbcidade_meta_b02u for tbcidade_meta
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.REGIAO_ID > 0 AND NEW.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||' META INCLUIDA: PERÍODO:'||FORMATDATE(NEW.DATA_INICIAL)||' A '||FORMATDATE(NEW.DATA_FINAL)||', VALOR: R$ '||CAST(NEW.VALOR AS NUMERIC(15,2));
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREGIAO',NEW.REGIAO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbcidade_meta_b01d for tbcidade_meta
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.REGIAO_ID > 0 AND OLD.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||' META EXCLUIDA: PERÍODO:'||FORMATDATE(OLD.DATA_INICIAL)||' A '||FORMATDATE(OLD.DATA_FINAL)||', VALOR: R$ '||CAST(OLD.VALOR AS NUMERIC(15,2));
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREGIAO',OLD.REGIAO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

-- trigger de exclusão dos itens ao incluir o principal
SET TERM ^ ;

CREATE trigger ttbregiao_b02d for tbregiao
active before delete position 1
AS
BEGIN
   IF(OLD.ID > 0) THEN
   BEGIN
      DELETE FROM TBREGIAO_CIDADE WHERE REGIAO_ID = OLD.ID;
      DELETE FROM TBCIDADE_META   WHERE REGIAO_ID = OLD.ID;
   END
END
^

SET TERM ; ^



