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