TN - Campos definidos por el usuario Obligatorios

Buenas tardes

Amigos

Me encuentro realizando un TN para que en las Ofertas de compras pida obligatorio un campo al momento de crear lo cual ya funciona con este , pero recapitulando el escenario se requiere una condición donde solo aplique para los socios de negocios donde su Groupnum (condicion de pago ) sea la 16

Alguien que me pueda ayudar

Agradezco

Saludos

if @object_type = ‘23’ and @transaction_type in (‘A’ )
BEGIN
if EXISTS(select ISNULL(U_HORAPAG,‘’)
from OQUT
where DocEntry = @list_of_cols_val_tab_del and Series in (‘16’)

and ISNULL(U_HORAPAG,‘’) = ‘’)
begin

Set @error = 70011
Set @error_message = ‘Tienes que llenar el campo “HORA PAGO”’
end
END

Hola @Un_Tal_Erik_J

A mi se me facilita utilizar un count, entonces se me ocurre que podrías hacer uso de el y al tener que consultar la condición de pago será necesario hacer una unión a la OCRD algo así

Select count (*) 
From OQUT T0
Inner join OCRD T1 on T0.CardCode = T1.CardCode
where T1.Groupnum = 16 
  and T0.U_HORAPAG is null 
  and T0.DocEntry = @list_of_cols_val_tab

Saludos.

Te agradezco @pcarrasco , yo casi no manejo esta parte de los TN los que utilizo son básicos esta adecuación donde la pondria ?

agradezco tu apoyo

Saludos

Que tal,

Tienes que declarar una variable, normalmente se declaran en la parte de arriba del TN, después comparar el resultado del query si es mayor a 0 quiere decir que le falta el valor en tu UDF o que no es del grupo 16, no tengo sql para probarlo, pero quedaría mas o menos así.

Declare tuVariable nvarchar (10) 

If @object_type = ‘23’ and @transaction_type in (‘A’)
begin 
  select count (T0.U_HORAPAG) = @tuVariable 
    from OQUT T0
    inner join OCRD T1 on T0.CardCode = T1.CardCode
       where T1.Groupnum = 16 
         and T0.U_HORAPAG is null 
         and T0.DocEntry = @list_of_cols_val_tab
    if  @tuVariable > 0
    begin
	    Set @error = 70011
        Set @error_message = ‘Tienes que llenar el campo “HORA PAGO”
    end
end	
1 me gusta

aun sin exito agradezco el apoyo

sería bueno que compartieras tu código, el código que te compartí es algo al vuelo, simplemente una idea que puede servir de punto de partida, mismo que tienes que ajustar y corregir si es necesario

Saludos.

este es mi codigo , actualmente funciona aplicado general pero no distingue clientes de contados que de creditos , este requiero solo aplique para contados que es la condicion de pago del SN el GroupNum que en este caso seria el ‘16’ , veo que dentro de la OQUT guarda esta parte de la condicion de pago que jala del dato maestro como quedaria la adaptacion condicionando a que solo aplique el TN para el GroupNum 16

if @object_type = ‘23’ and @transaction_type in (‘A’ )
BEGIN
if EXISTS(select ISNULL(U_HORAPAG,’’)
from OQUT
where DocEntry = @list_of_cols_val_tab_del and Series in (‘16’)

and ISNULL(U_HORAPAG,’’) = ‘’)
begin

Set @error = 70011
Set @error_message = ‘Tienes que llenar el campo “HORA PAGO”’
end
END

listo solo agregue lo siguiente

and GroupNum in (‘16’)

despues de

where DocEntry = @list_of_cols_val_tab_del and Series in (‘16’)

asi quedo el TN que pide obligatorio un UDF cuando un cliente tiene la condicion de pago x

if @object_type = ‘23’ and @transaction_type in (‘A’ )
BEGIN
if EXISTS(select ISNULL(U_HORAPAG,‘’)
from OQUT
where DocEntry = @list_of_cols_val_tab_del and Series in (‘16’) and GroupNum in (‘16’)

and ISNULL(U_HORAPAG,‘’) = ‘’)
begin

Set @error = 70011
Set @error_message = ‘Tienes que llenar el campo “HORA PAGO”’
end
END

1 me gusta

Saludos hermano, ya resolviste tu caso?

Si no, dejame ver, que yo he hecho varios sentencias para obligar al usuario colocar algo en los campos de inventarios, ventas, ect, hice uno para los pedidos el cual no deja pasar el pedido si el cliente debe facturas a más de 7 días de vencidas, bueno es un ejemplo, pero sirve y lo estamos usando Actualmente, a nivel inventario, q el usuario llene los campos del comentario

1 me gusta

ya quedo @ruben_ortiz arriba coloque la solucion

1 me gusta