SET TERM ^ ;

CREATE trigger ttbmodelo_servico_b02i for tbmodelo_servico
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE PRODUTO_DESC VARCHAR(100);
BEGIN

    HISTORICO    = '';
    PRODUTO_DESC = COALESCE((SELECT FIRST 1 P.DESCRICAO FROM TBPRODUTO P WHERE P.CODIGO = NEW.PRODUTO_ID), '');

    IF ( NEW.MODELO_ID > 0 AND NEW.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||' SERVIÇO INCLUIDO: '||NEW.PRODUTO_ID||' - '||PRODUTO_DESC;
    END

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

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbmodelo_servico_b01d for tbmodelo_servico
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE PRODUTO_DESC VARCHAR(100);
BEGIN

    HISTORICO    = '';
    PRODUTO_DESC = COALESCE((SELECT FIRST 1 P.DESCRICAO FROM TBPRODUTO P WHERE P.CODIGO = OLD.PRODUTO_ID), '');

    IF ( OLD.MODELO_ID > 0 AND OLD.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||' SERVIÇO EXCLUIDO: '||OLD.PRODUTO_ID||' - '||PRODUTO_DESC;
    END

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

SET TERM ; ^

