Hola Ana, prueba de esta manera
If @object_type='17' and @transaction_type in ('A','U')
BEGIN
DECLARE @MontoAbonado numeric(19, 6),
@MontoPedido numeric(19, 6)
SET @MontoAbonado = ISNULL((SELECT T0.Balance + t0.OrdersBal
FROM OCRD T0 INNER JOIN OCTG T1 ON T0.GroupNum = T1.GroupNum
WHERE t0.CardCode = (SELECT cardcode FROM ORDR WHERE DocEntry = @list_of_cols_val_tab_del)
AND T1.PymntGroup = 'Contado'), 0)
SET @MontoPedido = ISNULL((SELECT T2.DocTotal
FROM ORDR T2
WHERE T2.DocEntry = @list_of_cols_val_tab_del), 0)
IF (@MontoAbonado * -1) < @MontoPedido
BEGIN
SET @error = @MontoAbonado
SET @error_message = 'EL MONTO DEL PEDIDO SUPERA AL MONTO ABONADO DEL CLIENTE'
END
END
Tienes que tomar en cuenta que el campo Ordersbal toma el valor del total del documento actual, no el que está guardado en la BD.
Así me funcionó.
Saludos,
Wuilmer Venegas