Excelente día.
Tengo un query que uso para solicitar la autorización de creación de factura la cual funcionaba bien hasta que un usuario por coincidencia encontró la manera de burlarla.
Tengo ciertos artículos a los que les damos un descuento por una promoción por temporada y los cuales los controlo seleccionando la propiedad 64 de los datos maestro de artículos, en esta ocasión el descuento autorizado es un 10% en determinados artículos, no se hizo una BF para fijar el descuento dentro de las líneas de la factura porque se usa como estrategia de venta a discreción del vendedor.
Si el articulo no tiene la selección de la propiedad 64 y tiene un descuento o si el artículo es de los seleccionados en la propiedad 64 y el descuento es diferente al 10% autorizado debe detonar la solicitud de autorización.
El código del query para condicionar la autorización, el código es el siguiente:
DECLARE
@SIPROMO nvarchar(1)
SET @SIPROMO = (SELECT T2.QryGroup64 FROM OITM T2 WHERE T2.ItemCode = $[$38.1.0])
SELECT distinct 'TRUE', @SIPROMO
FROM INV1
WHERE ($[$38.15.number] <> 0 AND @SIPROMO ='N') OR ($[$38.15.number] BETWEEN 1 AND 9 AND @SIPROMO ='Y') OR ($[$38.15.number] > 10)
Como dije, funciona bien siempre y cuando la primera línea tenga el articulo a revisar pero resulta que por coincidencia el usuario hizo una factura con 2 líneas y en la segunda línea capturó el descuento del 10% en el artículo que no está autorizado, como no está en la primera línea no detonó la solicitud de autorización porque la primera línea cumple con para no detonarla.
Me podrían ayudar a solucionar este detalle en el query, no se como hacer para que recorra las líneas de la factura y detone la autorización en la primera línea que cumpla con la condición para hacerlo.
Por anticipado agradezco su ayuda y quedo al pendiente.
Saludos
José Alberto Medina M.