CREATE OR ALTER trigger ttbmodelo_linha_b06u for tbmodelo_linha
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(7000);
BEGIN
  IF (OLD.FAMILIA_CODIGO <> NEW.FAMILIA_CODIGO) THEN
    BEGIN
        UPDATE TBMODELO P
            SET P.FAMILIA_CODIGO = NEW.FAMILIA_CODIGO
            WHERE P.LINHA_CODIGO = OLD.CODIGO;

            :HISTORICO = :HISTORICO||' FAM.PRD:'||OLD.FAMILIA_CODIGO||'->'||NEW.FAMILIA_CODIGO;

    END

    IF (OLD.FAMILIA_ALTERNATIVA <> NEW.FAMILIA_ALTERNATIVA) THEN
    BEGIN
        UPDATE TBMODELO P
            SET P.FAMILIA_ALTERNATIVA = NEW.FAMILIA_ALTERNATIVA
            WHERE P.LINHA_CODIGO = OLD.CODIGO;

           :HISTORICO = :HISTORICO||' FAM.ALT:'||OLD.FAMILIA_ALTERNATIVA||'->'||NEW.FAMILIA_ALTERNATIVA;
    END

    IF (OLD.TIPOPRODUTO_CODIGO <> NEW.TIPOPRODUTO_CODIGO) THEN
    BEGIN
        UPDATE TBMODELO P
            SET P.TIPOPRODUTO_CODIGO = NEW.TIPOPRODUTO_CODIGO
            WHERE P.LINHA_CODIGO = OLD.CODIGO;

            :HISTORICO = :HISTORICO||' TIPO:'||OLD.TIPOPRODUTO_CODIGO||'->'||NEW.TIPOPRODUTO_CODIGO;
    END

    IF (OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        UPDATE TBMODELO P
            SET P.STATUS = NEW.STATUS
            WHERE P.LINHA_CODIGO = OLD.CODIGO;

            :HISTORICO = :HISTORICO||' STATUS:'||OLD.STATUS||'->'||NEW.STATUS;
    END
END;