CREATE OR ALTER trigger ttboc_b04u for tboc
active before update position 4
AS
DECLARE VARIABLE CHECK_SALDO INTEGER;

BEGIN
    IF(COALESCE(OLD.AUTORIZACAO, '0') <> COALESCE(NEW.AUTORIZACAO, '0')) THEN
    BEGIN
        /* VERIFICAR MUDANCA DE AUTORIZADO PARA DESAUTORIZADA */
        IF(COALESCE(OLD.AUTORIZACAO, '0') = '2' AND COALESCE(NEW.AUTORIZACAO, '0') = '1') THEN
        BEGIN

            SELECT
                COUNT(T.CONTROLE)
            FROM TBOC_ITEM T, TBOC_ITEM_SALDO S
            WHERE T.CONTROLE = S.OC_ITEM_CONTROLE
            AND T.OC = NEW.OC
            AND T.QUANTIDADE <> S.QUANTIDADE
            INTO :CHECK_SALDO;
        
            IF(COALESCE(:CHECK_SALDO, 0) > 0) THEN
            BEGIN
                EXCEPTION "..."'ORDEM DE COMPRA COM ITENS BAIXADOS. OPERACAO CANCELADA.';
            END

        END
    END
END;