cancel
Showing results for 
Search instead for 
Did you mean: 

Transaction Notification para evitar Valores repetidos

Former Member
0 Kudos

Hola buen dia, por Proceso de la empresa actualmente se pretende utilizar el Modulo de Oportunidades de Venta para una función especifica la cual contempla el que solo se pueda Introducir el cliente 1 sola vez. quise hacer esto a traves del SP TN, pero no lo he logrado alguno de ustedes me podria echar una mano, el query que estoy utilizando actualmente es este:

if @object_type = '97' and @transaction_type IN ('A')

BEGIN

declare @socio int

--declare @cuentasocio char (10)

SELECT @socio = count(t0.cardcode) FROM Oopr T0 inner join OCRD T1 on t0.cardcode = T1.Cardcode WHERE T0.opprid = @list_of_cols_val_tab_del

--SELECT @cuentasocio = count(t0.cardcode) FROM Oopr T0 WHERE @socio = t0.cardcode

IF @socio >= 1

BEGIN

select @error = '1'

select @error_message = 'Ya existe Oportunidad registada con cliente Actual'

END

END

Si lo pongo asi no me permite generar ninguno si le quito el "=" me deja crear todas la oportunidades con el mismo codigo del cliente, segun yo tendria que hacer una comparación con lo que esta actualmente en la tabla OOPR con lo que estoy tratando de dar de alta pero no se como hacerlo por codigo.

Si alguien tiene alguan idea se los agradecería muchisimo..

Saludos

Accepted Solutions (1)

Accepted Solutions (1)

former_member188440
Active Contributor

Intenta con



if @object_type = '97' and @transaction_type IN ('A')
BEGIN
declare @cuenta as int
declare @socio  as navarchar(8)
set @socio =(select cardcode from  oopr where docentry=@list_of_cols_val_tab_del)
set @cuenta=(select count(*) from oopr where cardcode=@socio)
if @cuenta !=0

begin
set @error=1
set @error_message='Error'
end




END

Former Member
0 Kudos

Mauricio he echo la prueba con el codigo que me anexaste pero me sigue dejando crear oportunidades aunque ya exista una con cliente registrado, es decir no detiene el proceso.

si cambio el docentry por el opprid en el where me marca error con cualquier cliente que agregue aunque no este aun registrado en la tabla de OOPR.

En el query que pongo de ejemplo le asigne valores a la variable @lists_of_col_val y si me hace la cuenta pero pues no se si solo este tomando los valores de la pantalla y no desde la tabla de Oportunidades.

No se si se les ocurra alguna otra forma de hacer esta validación..

De antemano Gracias

former_member188440
Active Contributor
0 Kudos

A ver asi


if @object_type = '97' and @transaction_type IN ('A')
BEGIN
declare @cuenta as int
declare @socio  as nvarchar(5)
 select @socio =cardcode from  oopr where OpprId=@list_of_cols_val_tab_del
select @cuenta=count(CardCode) from oopr where cardcode=@socio
if @cuenta >1
 
 
begin
set @error=1
set @error_message='Error '

end
END

Former Member
0 Kudos

Hola mauricio fijate que me sigue dejando pasar..intentare guardar la variable antes de que haga la validación. haber que resulta..

Saludos

felipe_loyolarodriguez
Active Contributor
0 Kudos

HOLA

Prueba este codigo


if @transaction_type in ('A') and @object_type = 97 
begin
 
declare @SN as Nvarchar(8)
 
set @SN = (select CardCode from OOPR where OpprId = @list_of_cols_val_tab_del)
IF Exists (SELECT COUNT(CardCode) FROM OOPR WHERE Cardcode = @SN HAVING COUNT(cardcode) > '1')
 
begin
set @error =-1000
set @error_message ='Ya existe Oportunidad registada con cliente Actual'
 
end
end

Saludos

Edited by: Floyola on Aug 19, 2011 5:03 PM

Former Member
0 Kudos

Excelente mi hermano, lo he probado y funciona muy bien..Gracias

felipe_loyolarodriguez
Active Contributor
0 Kudos

Que bueno que resulto.

Si no es mucha la molestia podrias calificar el aporte

Gracias

Answers (0)