CREATE OR ALTER trigger tbcontas_variacao_tipo_bi0 for tbcontas_variacao_tipo
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TIPO_ESTOQUE VARCHAR(500);
DECLARE VARIABLE DESCRICAO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.id > 0) THEN
    BEGIN
        select T.tipo_estoque from tbcontas_variacao_estoque T where T.ID = NEW.variacao_estoque_id into TIPO_ESTOQUE;

        IF(TIPO_ESTOQUE = '1') THEN
        BEGIN
            select T.DESCRICAO from TBTIPOPRODUTO T where T.codigo = NEW.valor into DESCRICAO;
            HISTORICO = HISTORICO||'Tip.Prodt. Adicionado: '||DESCRICAO;
        END

        IF(TIPO_ESTOQUE = '2') THEN
        BEGIN
            select T.DESCRICAO from tbfamilia T where T.CODIGO = NEW.valor into DESCRICAO;
            HISTORICO = HISTORICO||'Família Adicionada: '||DESCRICAO;
        END

    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONTAS_VARIACAO_ESTOQUE',new.variacao_estoque_id, HISTORICO);
    END
end;

-- delete


CREATE trigger tbcontas_variacao_tipo_bd0 for tbcontas_variacao_tipo
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TIPO_ESTOQUE VARCHAR(500);
DECLARE VARIABLE DESCRICAO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.id > 0) THEN
    BEGIN
        select T.tipo_estoque from tbcontas_variacao_estoque T where T.ID = OLD.variacao_estoque_id into TIPO_ESTOQUE;

        IF(TIPO_ESTOQUE = '1') THEN
        BEGIN
            select T.DESCRICAO from TBTIPOPRODUTO T where T.codigo = OLD.valor into DESCRICAO;
            HISTORICO = HISTORICO||'Tip.Prodt. Excluido: '||DESCRICAO;
        END

        IF(TIPO_ESTOQUE = '2') THEN
        BEGIN
            select T.DESCRICAO from tbfamilia T where T.CODIGO = OLD.valor into DESCRICAO;
            HISTORICO = HISTORICO||'Família Excluida: '||DESCRICAO;
        END

    END

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