SET TERM ^ ;

CREATE trigger ttboperacao_vinculo_cfop_b05iu for tboperacao_vinculo_cfop
active before insert or update position 5
AS
DECLARE VARIABLE CHECK_VINCULO INTEGER;
BEGIN
    :CHECK_VINCULO = COALESCE((SELECT FIRST 1
            T.ID
        FROM TBOPERACAO_VINCULO_CFOP T
        WHERE T.OPERACAO_CODIGO = NEW.OPERACAO_CODIGO
        AND T.ESTABELECIMENTO_CODIGO = NEW.ESTABELECIMENTO_CODIGO
        AND T.CFOP_CODIGO = NEW.CFOP_CODIGO
        AND T.UF = NEW.UF
        AND T.ID <> NEW.ID
        ), 0);

    IF(COALESCE(:CHECK_VINCULO, 0) > 0) THEN
    BEGIN
        EXCEPTION "..."'VINCULO DE ESTAB: '||NEW.ESTABELECIMENTO_CODIGO||', CFOP: '||NEW.CFOP_CODIGO||', UF: '||NEW.UF||'  JA EXISTENTE PARA A OPERACAO '||NEW.OPERACAO_CODIGO||'.';
    END
END
^

SET TERM ; ^

