cancel
Showing results for 
Search instead for 
Did you mean: 

Bloquear Condiciones de Pago

Former Member
0 Kudos

Hola

Buen Dia a Todos

Quisiera saber como puedo bloquear que un usuario al dar de alta un SN no pueda tener acceso a las Condiciones de pago, es decir que deshabilite esa opción para ese usuario y que guarde el valor propuesto (el default de Parametrizaciones generales Ficha SN).

De antemano agradezco sus comentarios.

Saludos,

JCupa

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola CupaJ1:

Los valores propuestos, pueden en este caso ser modificados (eso los hace ser valores de propuesta). No existe una opción en las Autorizaciones para bloquear este dato, mas bien se puede autorizar el no acceso a la tabla de definicion de condiciones de pago.

Yo te sugeriría trabajarlo como una validacion por Transaction, que compare el valor definido con el valor propuesto en las parametrizaciones generales.

Saludos Cordiales,

Former Member
0 Kudos

Gracias Paul por comentar.

¿Como seria esa validación por Transaction??

Nunca he hecho una :S

Te agradezco...Saludos.

JCupa

Former Member
0 Kudos

CupaJ1:

Aquí esta la validación...este código debes incorporarlo en Transaction Notification. Para ello acudes a Microsoft SQL Server Management Studio...

Una vez que accedas al servidor SQL, podrás ver tus bases de datos, selecciona la base en la cual realizaras la validacion, la marcas y entras a Programacion --> Procedimientos Almacenados --> ....e identifica SBO_SP_TransactionNotification, le das modificar....al ingresar exxiste un parrafo que dice -- ADD YOUR CODE HERE,

y copia este código...

IF (@transaction_type = 'A' or @transaction_type = 'U') and @object_type = '2'
begin
declare @condpag as char(1) 
declare @condefcli as char(1) 
declare @condefpro as char(1)
declare @tipsn as nvarchar(10) 
set @condefcli = (select DfCustTerm from oadm)
set @condefpro = (select DfVendTerm from oadm)
set @tipsn = (select cardtype from ocrd 
where cardcode = @list_of_cols_val_tab_del)
set @condpag = (select groupnum from ocrd 
where cardcode = @list_of_cols_val_tab_del)
if (@tipsn = 'S')
begin
if (@condpag <> @condefpro)
	begin
	set @error = 1
set @error_message = 'No esta respetando la condicion de pago del proveedor por defecto'
	end
end
if (@tipsn = 'C')
begin
if (@condpag <> @condefcli)
	begin
	set @error = 1
	set @error_message = 'No esta respetando la condicion de pago del cliente por defecto'
	end
end
end

La validacion reconoce si es un cliente o un proveedor, y te enviara un mensaje que impide la creacion del SN, si no respeta la condicion de pago definida en las parametrizaciones generales.

Sin duda, esto te abrirá una puerta a eventuales requerimientos que en ocasiones deben ser abordados de esta forma.

Saludos Cordiales,

PD: Si considera que el caso ha sido resuelto, favor cerrar el mismo

Former Member
0 Kudos

Hola a todos, estoy teniendo el mismo inconveniente es decir que cuando se modifique la condicion de pago del la orden de compra o venta, el sistema mande un mensaje de autorizacion, se tomo el query se inserta en SBO_SP_TransactionNotification, cuando lo pruebo en el documento y cambio la condicion de pago, sistema me advierte que cambiare la condicion de pago, le digo que si, pero en ningun momento me pide o sale un mensaje diciendo que no se respetado la condicion de pago. y que ingrese una autorizacion.......

Dejo el query, haber si alguien me puede hechar una mano...

Saludos y gracias.

Oscar V

-- ADD YOUR CODE HERE--

" { IF ( @transaction_type = 'A' or @transaction_type = 'U') and @object_type = '17'

begin

declare @condpag as char(1)

declare @condefcli as char(1)

declare @condefpro as char(1)

declare @tipsn as nvarchar(10)

set @condefcli = (select DfCustTerm from oadm)

set @condefpro = (select DfVendTerm from oadm)

set @tipsn = (select cardtype from ocrd where cardcode = @list_of_cols_val_tab_del)

set @condpag = (select groupnum from ocrd where cardcode = @list_of_cols_val_tab_del)

if (@tipsn = 'S')

begin

if (@condpag != @condefpro)

begin

set @error = 1

set @error_message = 'No esta respetando la condicion de pago del proveedor por defecto'

end

end

if (@tipsn = 'C')

begin

if (@condpag != @condefcli)

begin

set @error = 1

set @error_message = 'No esta respetando la condicion de pago del cliente por defecto'

end

end

end }"

Former Member
0 Kudos

Hola..

No hay problema en revisar el caso, pero siempre es conveniente abrir un nuevo post, de modo de no mezclar algo que ya ha quedado como cerrado con un nuevo requerimiento.

Me parece que el tema es un tema conceptual... lo que hace esta validación Transaction, es impedir la creación del documento si la condición de pago no es la condición requerida. El procedimiento almacenado no es ejecutado hasta que reconoce el evento de crear el documento, por lo que no es posible que al momento de cambiar la condición le de un aviso, y menos solicitar autorización.

No es el objetivo de la validación.

Espero le sea de ayuda,

Saludos Cordiales,

Former Member
0 Kudos

Gracias, Paul por contestar.

Referente al procedimiento, la idea es que al momento de cambiar la condicion avise, ahora si esto no lo hace, entonces al momento de crear el documento, que envie un aviso,.... pero el procedimiento no lo esta realizando, me permite igualmente crear el documento habiendo cambiado la condicion del S/N.

No veo aun donde se esta callendo el procedimiento. y este se ve bien ..

O si hubiera otra forma de bloquera ese campo, tambien me serviria..

Saludos.

Oscar V

Former Member
0 Kudos

Hola Oscar:

Si comparo ambos códigos, veo exactamente lo mismo... con excepción de que tu código lo estás encerrando en un "{ }"

La verdad, es que entiendo que el procedimiento está OK, de hecho lo probé antes de dejarlo en el post, y como confirmación de que el mismo funcione, el caso había sido cerrado por la otra persona que fue quien generó el posteo original.

Te sugiero chequear 3 cosas, la primera es que en caso que efectivamente estés utilizando esos símbolos en el código ({}), los descartes...., la segunda es chequear que efectivamente estas trabajando sobre la base de datos que corresponde...y como última opción, toma el código y compruebalo como una consulta en la cual reemplaces el valor de

@list_of_cols_val_tab_

del por el número del documento, de modo de ver si efectivamente el código tiene aplicación sobre el mismo..

Espero te sea de ayuda,

Saludos Cordiales,

Former Member
0 Kudos

Hola Oscar:

Si comparo ambos códigos, veo exactamente lo mismo... con excepción de que tu código lo estás encerrando en un "{ }"

La verdad, es que entiendo que el procedimiento está OK, de hecho lo probé antes de dejarlo en el post, y como confirmación de que el mismo funcione, el caso había sido cerrado por la otra persona que fue quien generó el posteo original.

Te sugiero chequear 3 cosas, la primera es que en caso que efectivamente estés utilizando esos símbolos en el código ({}), los descartes...., la segunda es chequear que efectivamente estas trabajando sobre la base de datos que corresponde...y como última opción, toma el código y compruebalo como una consulta en la cual reemplaces el valor de

@list_of_cols_val_tab_del

del por el número del documento, de modo de ver si efectivamente el código tiene aplicación sobre el mismo..

Espero te sea de ayuda,

Saludos Cordiales,

Edited by: Paul Ponce on Nov 9, 2009 3:30 PM

Former Member
0 Kudos

Hola, gracias nuevamente por la respuesta, sobre el simbolo "{ }", es solo para el post, para que mantenga la estructura y no ponga % y no cueste entender el query.

Revisare los pasos que dices y te cuento.

saludos

Oscar V

Answers (0)