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

    HISTORICO = '';

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

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

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

    HISTORICO = '';

    IF ( OLD.REPRESENTANTE_ID <> NEW.REPRESENTANTE_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' Representante da Meta ID: '||OLD.ID||', Alterada: '|| OLD.REPRESENTANTE_ID||'->'||NEW.REPRESENTANTE_ID;
    END

    IF ( OLD.ANO <> NEW.ANO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ano da Meta ID: '||OLD.ID||', Alterada: '|| OLD.ANO||'->'||NEW.ANO;
    END

    IF ( OLD.MES <> NEW.MES) THEN
    BEGIN
        HISTORICO = HISTORICO||' Mes da Meta ID: '||OLD.ID||', Alterada: '|| OLD.MES||'->'||NEW.MES;
    END

    IF ( OLD.VALOR <> NEW.VALOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' Valor da Meta ID: '||OLD.ID||', Alterada: '|| OLD.VALOR||'->'||NEW.VALOR;
    END

    IF ( OLD.QUANTIDADE <> NEW.QUANTIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||' Quantidade da Meta ID: '||OLD.ID||', Alterada: '|| OLD.QUANTIDADE||'->'||NEW.QUANTIDADE;
    END

    IF ( OLD.DATAHORA <> NEW.DATAHORA) THEN
    BEGIN
        HISTORICO = HISTORICO||' Data hora da Meta ID: '||OLD.ID||', Alterada: '|| OLD.DATAHORA||'->'||NEW.DATAHORA;
    END

    IF ( OLD.FAMILIA_ID <> NEW.FAMILIA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' Familia da Meta ID: '||OLD.ID||', Alterado: '|| OLD.FAMILIA_ID||'->'||NEW.FAMILIA_ID;
    END

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

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

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Meta Excluida: '||old.ID;
    END

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