Olá Ana, tente desta forma
Se @object_type='17' e @transaction_type em ('A','U')
Começar
DECLARE @MontoAbonado numeric(19, 6),
@MontoPedido numeric(19, 6)
SET @MontoAbonado = ISNULL((SELECT T0.Balance + t0.OrdersBal
DE OCRD T0 INNER JOIN OCTG T1 ON T0.GroupNum = T1.GroupNum
ONDE t0.CardCode = (SELECT cardcode DE ORDR ONDE DocEntry = @list_of_cols_val_tab_del)
E T1.PymntGroup = 'Contado'), 0)
SET @MontoPedido = ISNULL((SELECT T2.DocTotal
DE ORDR T2
ONDE T2.DocEntry = @list_of_cols_val_tab_del), 0)
SE (@MontoAbonado * -1) < @MontoPedido
Começar
SET @error = @MontoAbonado
SET @error_message = 'O VALOR DO PEDIDO EXCEDE O VALOR PAGO PELO CLIENTE'
Final
Final
Tenha em mente que o campo OrdersBal recebe o valor total do documento atual, não o que está armazenado no BD.
Isso funcionou para mim.
Cumprimentos,
Wuilmer Venegas