cancel
Showing results for 
Search instead for 
Did you mean: 

TN para bloquer una orden de venta

Former Member
0 Kudos

Buenas tardes, estre TN tiene como finalidad bloquear que a un cliente no se le pueda crear un pedido si el saldo que tiene a favor es menor que el monto del pedido que se va a crear, también estoy tomando en cuenta el saldo que el cliente tenga con pedidos creados pues la resta con lo abonado o anticipo, el nuevo pedido debe ser menor a ese monto,  pero no me esta funcionando, me esta trayeno los valores null, @MontoAbonado,  @MontoPedido .... y no se que estoy haciendo mal... agradezco sus comentarios.... aqui les dejo el TN.

If @object_type='17' and @transaction_type in ('A','U')

BEGIN

DECLARE @MontoAbonado numeric(19, 6),

               @MontoPedido numeric(19, 6)

SET @MontoAbonado =(SELECT T0.Balance + t0.OrdersBal

FROM OCRD T0 INNER JOIN OCTG T1 ON T0.GroupNum = T1.GroupNum and t1.PymntGroup = 'Contado'

             INNER JOIN ORDR T2 ON T0.CardCode = T2.CardCode

WHERE  T2.DocEntry =  @list_of_cols_val_tab_del)

SET @MontoPedido=(SELECT T2.DocTotal

FROM ORDR T2

WHERE T2.DocEntry =  @list_of_cols_val_tab_del)

IF (isnull(@MontoAbonado,0) *(-1) < @MontoPedido)

BEGIN

SET @error=102

SET @error_message= 'EL MONTO DEL PEDIDO SUPERA AL MONTO ABONADO DEL CLIENTE'

END

END

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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 esta guardado en la BD.

Asi me funciono.

Saludos,

Wuilmer Venegas

Answers (0)