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...