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