Autorización Orden de Venta por precio menor item


#1

Estimados colegas, necesito de su ayuda.

Estoy creando un proceso de autorización para que el sistema le envíe la respectiva solicitud de autorización a otro usuario cuando se intente crear una orden de venta donde el precio del articulo sea menor a una orden de venta anterior, solo si es menor. Ya que si el precio es igual o inclusive mayor a la anterior orden de venta del mismo articulo si deje crear sin solicitar autorización.

Tengo claro que para este proceso de autorización debo crear una consulta a nivel transact pero no logro hacer que me funcione.

El código que tengo es el siguiente:

SELECT TOP 1 'TRUE'
FROM RDR1
WHERE ItemCode = $[RDR1.ItemCode] And Price < $[RDR1.Price]
ORDER BY DocDate DESC

Quedo atento a sus comentarios, gracias.


#2

Buenos días

Creo que es un tema algo complicado, en mi caso, hace un tiempo requerí un proceso de autorización para descuentos mayores a x%, mi partner nos hizo un desarrollo


#3

Logré crear el siguiente código, por el momento me ha estado funcionando bien.
Me vi en la necesidad de crear un campo de usuario a nivel encabezado para poder activar el proceso de autorización y desde el TN estoy verificando si el usuario esta colocando un precio menor a la de un pedido anterior.

IF (@object_type = ‘17’ and @transaction_type in (‘A’,‘U’))
BEGIN

Select
@Precio = Price,
@Codigo = ItemCode
From RDR1
Where DocEntry =convert(Int,@list_of_cols_val_tab_del)

Select Top 1
@CambioPrecio = Price
From RDR1
Where ItemCode = @Codigo And DocEntry != (convert(Int,@list_of_cols_val_tab_del))
Order By DocEntry Desc

If (@Precio < @CambioPrecio) And (select U_Autorizacion from ORDR Where DocEntry =convert(Int,@list_of_cols_val_tab_del)) = 'N’
Begin
set @error = 1
set @error_message = 'Necesita Autorizacion Por Cambio De Precio’
goto fin
End

END


#4

Estuve realizando mas pruebas y me encontré un problema.
Cuando la orden de venta tiene mas de un articulo, la validación solo considera la ultima linea y si algún articulo arriba de este no cumple con la validación lo deja pasar lo cual sería incorrecto…

Continuo investigando que me hace falta, si alguno ve que me hace falta me cuenta.
Gracias


#5

Buenos días

Te comento como lo tenemos aquí, se tiene dos tablas, una donde están los usuarios y el porcentaje de descuento (en tu caso puede ser el importe), la segunda tabla es una temporal donde lleva el control de los artículos por linea, se que hay código donde va revisando por ID de linea y usuario para hacer un conteo y una suma de los descuentos por documento. Después se crearon modelos de autorización y búsquedas formateadas para validar esos valores.


#6

Les comento que después de varios días rompiéndome la cabeza por esta validación, la solución mas practica que logre implementar fueron las LISTAS DE PRECIOS ya que ir a realizar la consulta a todas las ordenes de venta anteriores era mi mayor problema.
En cambio estableciendo un precio ya definido y si el usuario cambia este precio la validación consulta directamente el precio en la LISTA DE PRECIOS y si este es menor pues no le permite crear o actualizar la orden de venta.
Les comparto a continuación el código que desarrolle y el requisito es tener listas de precios establecidas.

IF (@object_type = ‘17’ and @transaction_type in (‘A’,‘U’))
BEGIN

IF EXISTS(
SELECT 'TRUE’
FROM RDR1 T0
INNER JOIN ITM1 T1 ON T0.ItemCode = T1.ItemCode
WHERE T1.PriceList = 1 AND T0.DocEntry = convert(Int,@list_of_cols_val_tab_del) AND T0.Price<T1.Price
) And (select U_Autorizacion from ORDR Where DocEntry =convert(Int,@list_of_cols_val_tab_del)) = ‘N’

Begin
set @error = 1
set @error_message = 'Necesita Autorizacion Por Cambio De Precio De Uno o mas articulos’
goto fin
End

END


#7

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.