cancel
Showing results for 
Search instead for 
Did you mean: 

Transaction Factura

former_member263548
Participant
0 Kudos

Hola buenas tardes, estoy tratando de hacer una TN en la cual solo me permita digitar dos opciones en el campo Número de Referencia en la factura de venta, el código que tengo es el siguiente:

IF (@object_type = '13')

  BEGIN

  IF EXISTS

  (select NumAtCard  from OINV where   DocEntry = CAST(@list_of_cols_val_tab_del AS NVARCHAR(15))

  and ((NumAtCard in ('Servicios','Eventos','') and DocType= 'S' )))

  BEGIN

  SET @error_message = 'Número de referencia deber ser Servicios o Eventos'

  SET @error = 2122

  END

  END

Les agradezco su ayuda.

Saludos,

Accepted Solutions (0)

Answers (2)

Answers (2)

juancarlos_huerta
Contributor
0 Kudos

Si quieres que te bloquee el documento cuando la factura sea de tipo Servicio y no tenga el texto Servicios o Eventos, intenta con este código:


IF (@object_type = '13')

BEGIN

  IF EXISTS

  (select NumAtCard

  from OINV

  where DocEntry = CAST(@list_of_cols_val_tab_del AS NVARCHAR(15))

  and ((NumAtCard not in ('Servicios','Eventos','') and DocType= 'S' )))

  BEGIN

  SET @error_message = 'Número de referencia deber ser Servicios o Eventos'

  SET @error = 2122

  END

END

Lo que hice fue agregar un "not" en la línea 7 de tu código.

Saludos,

JC.

former_member263548
Participant
0 Kudos

Hola Juan Carlos muchas gracias, hice una prueba pero si me permite crear la factura sin referencia.

juancarlos_huerta
Contributor
0 Kudos

El problema es con el campo vacío. Intenta así:


IF (@object_type = '13')

BEGIN

  IF EXISTS

  (select NumAtCard  from OINV where   DocEntry = @list_of_cols_val_tab_del

  and (isnull(NumAtCard,'') not in ('Servicios','Eventos','') or len(isnull(NumAtCard,''))=0) and DocType= 'S')

  BEGIN

    SET @error_message = 'Número de referencia deber ser Servicios o Eventos'

    SET @error = 2122

  END

END

Saludos,

JC.

former_member263548
Participant
0 Kudos

Buenísimo Juan Carlos ya me funcionó muchas gracias, se que este post no es de eso pero tengo un problemita con un procedimiento de autorización será que le puedas dar un ojo y me comentas?

former_member188440
Active Contributor
0 Kudos

te falta indicar que

IF @object_type in ( 13)  AND @Transaction_Type in ('A')

former_member263548
Participant
0 Kudos

Gracias Mauricio, indiqué la línea que me pasaste pero no funciona.

Slds!

former_member188440
Active Contributor
0 Kudos

Intenta con

IF (@object_type  in (13) and @transaction_type in ('A')

  BEGIN

declare @opcion as nvarchar(10)

declare @tipodocto as nvarchar (1)

set @opcion= (select NumAtCard  from OINV where   DocEntry = @list_of_cols_val_tab_del)

set @tipodocto=(select doctype from oinve where docentry=@listo_of_cols_val_tab_del)

if @opcion not in ('Servicios','Eventos') and @tipodocto !='S'

  BEGIN

  SET @error = 2122

  SET @error_message = 'Número de referencia deber ser Servicios o Eventos'

  END

  END

former_member263548
Participant
0 Kudos

Hola Mauricio gracias por tu ayuda,

Mira que me muestra un error e indica cerca de Begin, que podrá ser?

bfierro
Active Participant
0 Kudos

Hola.

Te falta cerrar paracentesis en el primer IF

IF (@object_type  in (13) and @transaction_type in ('A') debe ser: IF (@object_type  in (13) and @transaction_type in ('A'))

ademas la variable esta mal expresada en el set @tipodocto tienes:

@listo_of_cols_val_tab_del es:

@list_of_cols_val_tab_del

Prueba y nos comentas

Saludos