Skip to Content
0
Former Member
Jul 14, 2011 at 03:54 PM

SP Orden de Venta

305 Views

Hola a Todos,

Tenemos implementado un modelo de autorización para Pedidos de Ventas que verifica cuando se supere el límite de crédito:

SELECT DISTINCT 'TRUE' FROM [DBO].[ORDR] T0 INNER JOIN [DBO].[OCRD] T1 ON T0.CARDCODE = T1.CARDCODE
WHERE T0.CARDCODE = $[$4.1] AND (T1.CreditLine) < (T1.Balance+T1.OrdersBal+T1.DNotesBal+$[ORDR.DocTotal])

Como es sabido, el modelo de autorización solo funciona en la creación de documentos.

Implementamos una notificación (SP) de manera que si se esta actualizando una orden de venta, la misma no sea mayor al limite de credito:

IF @transaction_type = 'U' AND @object_type = '17'
      BEGIN
            IF EXISTS(SELECT * FROM ORDR T0 INNER JOIN OCRD T1 
                    ON T0.CardCode = T1.CardCode 
                    WHERE T0.DocEntry = @list_of_cols_val_tab_del 
                    AND T0.DocTotal >= T1.CreditLine AND T0.UserSign <> 1 
	AND T0.WddStatus<>'A' AND T0.WddStatus<>'P' AND T0.WddStatus<>'Y')
            BEGIN
                  SET @error = -1
                  SET @error_message = 'El Importe total supera el límite de crédito del Socio de Negocio'
            END
      END

Pero aún presentamos un problema, si el usuario crea la orden de venta y no supera el límite de crédito (no se activa el modelo de autorización), y empieza a actualizar dicho pedido, aumentándole cantidades o precios, pero ya posee saldo en Balance (OCRD.Balance), Pedidos Abiertos (OCRD.OrdersBal), y Entregas (OCRD.DNotesBal), estas no se están validando en el procedimiento almacenado.

Actualmente un pedido de venta puede ser actualizado llegando al monto del límite de crédito, sin verificar si ya hay monto en balance, pedidos y entregas abiertas, ¿cómo incluyo esta validación en el SP? El monto de pedidos abiertos (OCRD.OrdersBal) ya incluye el pedido que estoy actualizando (y otros que pedidos abiertos del cliente).

Gracias de antemano...