on 07-31-2012 3:44 PM
Hola a todos
Estoy realizando un bloqueo para que los vendedores o cualquier otra persona no pueda modificar la descripcion de un articulo en los documentos de marketing. Tengo el codigo, pero cuando hago la prueba haciendo una orden de venta y cambio la descripcion me manda el error; sin embargo, cuando coloco la descripcion correcta igual me manda el error y no deberia. Si me pueden ayudar para ver que me hace falta en el codigo se los agradeceria
If
@Object_Type = '17' and @transaction_type in ('A','U') and
(select top 1 'true' from RDR1 t0, OITM t1 where t0.Dscription <> t1.ItemName) = 'true'
begin
Set @error = -1
Set @error_message = 'Descripcion de la referencia no puede ser modificada'
end
Hola
Prueba este Transaction
IF @object_type=17 AND @transaction_type IN ('A','U')
BEGIN
DECLARE
@Item NVARCHAR(20)
SET @Item = (
SELECT TOP 1 T1.ItemCode
FROM ORDR T0
INNER JOIN RDR1 T1 ON T1.DocEntry=T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND ISNULL(T1.Dscription,'') <> (SELECT Y.ItemName FROM OITM Y WHERE Y.ItemCode=T1.ItemCode) AND T0.DocType='I'
)
IF @Item IS NOT NULL
BEGIN
SELECT @error=777, @error_message='No puede cambiar la descripcion del articulo '+@Item
END
END
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Al final queda asi
IF
@object_type=17 AND @transaction_type IN ('A','U')
BEGIN
DECLARE @Item NVARCHAR(20)
SET @Item = (
SELECT TOP 1 T1.ItemCode
FROM ORDR T0
INNER JOIN RDR1 T1 ON T1.DocEntry=T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND
ISNULL(T1.Dscription,'') <> (SELECT Y.ItemName FROM OITM Y WHERE Y.ItemCode=T1.ItemCode)
AND T0.DocType='I' AND T0.UserSign NOT IN('1')
)
IF @Item IS NOT NULL
BEGIN
SELECT @error=777, @error_message='No puede cambiar la descripcion del articulo '+@Item
END
END
Sara
Intenta con la opción parametrizaciónes de formulario -- Formato de tabla -- Campo
Tienes dos opciones: Visible y activo
Quita el chequesito de activo sobre el campo que deseas no se modifique y listo.
El procedimiento es:
Abrir el formulario en el que deses restringir el campo
Del lado derecho en la parte superior de la pantalla encuentras la opción de parametrizaciones de formulario
El botón es el de fondo amarillo
Seleccionas formato de tabla
y en el campo deseado desactivas.
Espero sea lo que necesitas
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Lo que dice marco te debiera funcionar pero para esto tienes que quitarle los permisos a los usuarios para que entren a las parametrizaciones de formulario, esto tiene lados negativos y positivos , ya que hay que hacerlo por usuario, y el usuario en el futuro no podrá agregar campos, tendría que hacerlo un usuario con permisos
La validacion en el transaction debiera ser algo como lo siguiente:
If
@Object_Type
= '17' and @transaction_type in ('A','U')
begin
declare
@cantidad as int
set
@cantidad =(select *
from
ORDR t0
inner
join RDR1 t1 on t0.DocEntry=t1.DocEntry
and
t0.docentry= @list_of_cols_val_tab_del
inner
join OITM t2 on t1.ItemCode=t2.ItemCode and t1.Dscription <> t2.ItemName
)
if
@cantidad > 0
begin
Set
@error = -1
Set
@error_message = 'Descripcion de la referencia no puede ser modificada'
end
end
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
100 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.