Seleccionar Artículos del cliente modulo entradas

Hola compañeros buen día, estoy realizando unas validaciones cuando realizan un ingreso al sistema, llevo esto en el query para el SP_TransactionNotification, pero no me funciona cuando son mas de 5 artículos, ya realice varios cambios, pido de su ayuda para encontrar la solucion.

Lo que se requiere, es que al momento de ingresar un articulo de un cliente X, no deje ingresar artículos de los clientes Y, Z, W, y que solo sean validos los del cliente X. Alguna sugerencia como podría utilizar un ciclo cuando sean mas artículos?

IF @object_type IN ('59') and @transaction_type IN ('A','U')  
	begin
	Declare @Itemcodeentradas1 varchar(15)
	Declare @Itemcodeentradas2 varchar(15)
	Declare @Itemcodeentradas3 varchar(15)
	Declare @Itemcodeentradas4 varchar(15)
	Declare @itemcodename1 varchar(max)
	Declare @itemcodename2 varchar(max)
	Declare @itemcodename3 varchar(max)
	Declare @itemcodename4 varchar(max)
	Declare @cardcodeentradas varchar(15)
	Declare @Linenumentradas int
	Declare @result1 int=0, @result2 int=0, @result3 int=0, @result4 int=0
	Declare @tablatempo1 Table(cardcode varchar(max) ,item varchar(max),itemnam varchar(max))
	
Set @cardcodeentradas=(SELECT T0.U_Cliente FROM OIGN T0 where T0.DocEntry=@list_of_cols_val_tab_del)
Set @Itemcodeentradas1=(SELECT T1.Itemcode FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=0)
Set @Itemcodeentradas2=(SELECT T1.Itemcode FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=1)
Set @Itemcodeentradas3=(SELECT T1.Itemcode FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=2)
Set @Itemcodeentradas4=(SELECT T1.Itemcode FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=3)
Set @itemcodename1=(SELECT T1.Dscription FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=0)
Set @itemcodename2=(SELECT T1.Dscription FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=1)
Set @itemcodename3=(SELECT T1.Dscription FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=2)
Set @itemcodename4=(SELECT T1.Dscription FROM IGN1 T1 WHERE T1.DocEntry=@list_of_cols_val_tab_del and T1.LineNum=3)

Insert into @tablatempo1 (cardcode,item,itemnam )
SELECT T0.CardCode, T0.ItemCode,T1.ItemName FROM OSCN T0 INNER JOIN OITM T1 ON T1.ItemCode=T0.ItemCode
WHERE T0.CardCode =@cardcodeentradas

Set @result1=(SELECT COUNT(itemnam)  FROM @tablatempo1 WHERE itemnam=@itemcodename1)
Set @result2=(SELECT COUNT(itemnam)  FROM @tablatempo1 WHERE itemnam=@itemcodename2)
Set @result3=(SELECT COUNT(itemnam)  FROM @tablatempo1 WHERE itemnam=@itemcodename3)
Set @result4=(SELECT COUNT(itemnam)  FROM @tablatempo1 WHERE itemnam=@itemcodename4)
--Set @Itemcodeentradas=(SELECT COUNT(*)  FROM OIGN T0 INNER JOIN IGN1 T1 ON T0.DocEntry= T1.DocEntry
--WHERE T1.ItemCode NOT LIKE T0.U_Cliente + '%%' and T0.DocEntry=@list_of_cols_val_tab_del)
select @result1, @result2, @result3, @result4
	IF @result1 = 0 and @result2 = 0 and @result3 = 0 and @result4 = 0 
		Begin  
         set @error=1
         set @error_message= 'Error 01: '+'UNO O MÁS ARTÍCULOS NO PERTENECEN AL CLIENTE SELECCIONADO'
       END 
	End

Hola @kriptonniano cómo identificas que el artículo pertenece a X cliente?

1 me gusta

Tienes razón tengo otra consulta que me saca los clientes y los artículos que pertenecen a el, deja las combino.

SELECT T0.ItemCode,T1.ItemName,T0.CardCode FROM OSCN T0 INNER JOIN OITM T1 ON T1.ItemCode=T0.ItemCode 
WHERE T0.CardCode='X'

Podría hacer la comparación con esta consulta.

1 me gusta

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.