CREATE INDEX ITBDEFEITO_TRANSACAO_ITEM_21
ON TBDEFEITO_TRANSACAO_ITEM (STATUS)^

CREATE OR ALTER trigger tbdefeito_transacao_status_b01d for tbdefeito_transacao_status
active before delete position 0
AS
declare variable STATUS_USADO INTEGER;
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    STATUS_USADO = COALESCE((SELECT FIRST 1 B.id FROM tbdefeito_transacao_item B WHERE B.status = OLD.ID),0);

    IF(STATUS_USADO > 0)THEN
    BEGIN
       EXCEPTION "..." ' STATUS '||OLD.DESCRICAO||' JA UTILIZADO EM REGISTROS DE PRODUTOS DEFEITUOSOS.<BR>OPERACAO CANCELADA.';
    END

    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO EXCLUIDO';
    END

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