Bloqueo Socio de negocio

Buen día Estimados

Tengo un código que encontré hace algunos días atrás y lo adapte a mis necesidades, pero no tengo idea de como hacer que funcione para un solo grupo de clientes.

Lo que actualmente hace el código es bloquear la actualización o creación de socio de negocio si la ficha de persona de contacto esta vacía, lo que quiero es que lo aplique a un solo grupo de clientes y no a todos, si me pueden ayudar lo agradeceré.

IF @object_type =2 AND @transaction_type IN ('A', 'U')
BEGIN
IF EXISTS(SELECT T0.Name FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del AND (T0.Name IS NULL OR T0.Name=''))SET @error=101 --ID de Contacto--
IF EXISTS(SELECT T0.FirstName FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del AND (T0.FirstName IS NULL OR T0.FirstName=''))SET @error=102 --Nombre de Contacto--
IF EXISTS(SELECT T0.LastName FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del AND (T0.LastName IS NULL OR T0.LastName=''))SET @error=103 --Apellido de Contacto--
IF EXISTS(SELECT T0.Tel1 FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del AND (T0.Tel1 IS NULL OR T0.Tel1=''))SET @error=104 --Teléfono 1--
IF EXISTS(SELECT T0.Cellolar FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del AND (T0.Cellolar IS NULL OR T0.Cellolar=''))SET @error=105 --Celular--
IF EXISTS(SELECT T0.E_MailL FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del AND (T0.E_MailL IS NULL OR T0.E_MailL=''))SET @error=106 --Ingresar correo electronico--
/*IF (SELECT CHARINDEX('@',T0.E_MailL,1) FROM OCPR T0 WHERE T0.CardCode=@list_of_cols_val_tab_del)<=0 SET @error=107 --Formato de correo inválido--*/
IF (SELECT T0.CardType FROM OCRD T0 WHERE T0.CardCode=@list_of_cols_val_tab_del) IN('C','S')
BEGIN 
IF(SELECT TOP 1 T0.CntctCode FROM OCPR T0 INNER JOIN OCRD T1 ON T1.CardCode=T0.CardCode WHERE T1.CardCode=@list_of_cols_val_tab_del AND T1.CardType<>'S') IS NULL SET @error=108 
END 
SET @error_message = CASE @error WHEN 101 THEN 'Introduzca un ID de Contacto' WHEN 102 THEN 'Introduzca el nombre del contacto' WHEN 103 THEN 'Introduzca el apellido del contacto' WHEN 104 THEN 'Introduzca el Teléfono 1' WHEN 105 THEN 'Introduzca número de celular' WHEN 106 THEN 'Introduzca el correo electrónico' /*WHEN 107 THEN 'Formato de e-mail invalido, el formato debe ser "cuenta@dominio.com"'*/ WHEN 108 THEN 'Falta información de Persona de contacto'
END
END

Hola, prueba con lo siguiente, en T1.[GroupCode] in ('101') agregas los grupos que deseas:

IF @object_type=2 AND @transaction_type IN ('A','U')
BEGIN

IF (SELECT TOP 1 T0.CntctCode FROM OCPR T0 INNER JOIN OCRD T1 ON T1.CardCode=T0.CardCode WHERE T1.CardCode=@list_of_cols_val_tab_del and T1.[GroupCode] in ('101')) IS NULL
BEGIN
SET @error=107
END

SET @error_message=
CASE @error
WHEN 107 THEN '*****NO HAY PERSONA DE CONTACTO*****'

END
END

No me funciona, me sigue enviando el error de la persona de contacto en un grupo que no esta incluido en el query

Gracias por responder

IF @object_type=2 AND @transaction_type IN ('A','U')
BEGIN

IF (SELECT count(*) from OCRD T0 where T0.[CardCode]=@list_of_cols_val_tab_del 
      and T0.[GroupCode] in('101'))>0
BEGIN
IF (SELECT TOP 1 T0.CntctCode FROM OCPR T0 INNER JOIN OCRD T1 ON T1.CardCode=T0.CardCode WHERE T1.CardCode=@list_of_cols_val_tab_del) IS NULL
BEGIN
SET @error=107
END
END

SET @error_message=
CASE @error
WHEN 107 THEN '*****NO HAY PERSONA DE CONTACTO*****'

END
END

Creo que así funcionaria.

Saludos,

1 me gusta

De esta forma si me funciona, gracias

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