cancel
Showing results for 
Search instead for 
Did you mean: 

Bloquear un campo en orden de venta

Former Member
0 Kudos

1. Hola buen dia

tengo una tarea y es impedir que los asesores puedan modificar el precio despues de crear la orden de venta, se que es con un Transation Notification pero no tengo el codigo,
me pueden ayudar por favor.

Accepted Solutions (1)

Accepted Solutions (1)

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

¿Qué precio quieres que no pueda ser modificado?

¿El precio unitario? ¿El total de la línea? ¿El total del documento?

Un saludo

Agustín

Former Member
0 Kudos

1.Hola Agustin,
el precio por unidad es el que quiero que el asesor no lo modifique despues de creado el documento

Answers (2)

Answers (2)

former_member924880
Discoverer
0 Kudos

Buen día, tengo esta misma necesidad de código para la empresa y esta ocasionando el mismo error de former member. ademas el maxloginstanc no existe en la tabla, creo que es loginstanc.

en esa sentencia si le quito a isnull("max"(loginstanc,1) el max que esta entre comillas me deja crear la orden por el contrario ejecuta el código sin modificar el precio unitario.

yo se que es 1 año tarde pero me urge este código. ya que no conocía la tabla adoc y ado1

les agradezco retomar el tema nuevamente y señalarme cual es el error. cordial saludo

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

te adjunto un código SQL para bloquear el cambio de este campo. Tendrás que adaptarlo para que aplique la validación a los usuarios que te interesan:

if (@object_type = '17' and @transaction_type = 'U')
begin
if (select count(*) from adoc where docentry = @list_of_cols_val_tab_del) > 0
begin declare @instance int select @instance = isnull(maxloginstanc), 1) from adoc where doctype = '17' and docentry = @list_of_cols_val_tab_del
if (select count(*) from rdr1 T1 inner join ADO1 T3 on T1.docentry = T3.docentry and T1.linenum = T3.linenum and T3.loginstanc = @instance and T3.objtype = '17' where T1.price <> T3.price) >0 begin set @error = 1 set @error_message = 'El usuario no puede modificar el precio unitario' end end
end
Former Member
0 Kudos

cuando ejecuto la consulta me sale el siguiente error
The isnull function requires 2 argument(s)
me señala esto en el codigo isnull(maxloginstanc),1)

me dices que lo tengo que adaptar para los usuario a los que me interesa, en que parte del codigo harias esto?


Gracias

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

cambia la sentencia por:

select@instance= isnull(max(maxloginstanc),1) from adoc where doctype ='17' and docentry = @list_of_cols_val_tab_del

Un saludo

Agustín

Former Member
0 Kudos

hola Agustin, ya me funciono el bloqueo pero general, me puedes ayudar en que parte del codigo puedo especificar el bloqueo para ciertos usuarios?
te lo agradezco mucho.

Former Member
0 Kudos

Hola Agustin, active el TN y me bloquea todo no solamente al editar el campo de precio unitario. al modificar cualquier campo y actualizar se ejecuta el codigo.