Confira esta solução proposta.
[
]
Se você tiver uma versão superior a 2007, a coluna usersign2 não existe na tabela OCRD ou ACRD.
A solução que proponho é bloquear mudanças no nome da empresa, mas pode ser útil para você.
Avalados por :
Olá a todos, gostaria de bloquear se um usuário específico alterar a condição de pagamento na Ordem de Venda, fiz esta transação mas quando coloco a validação do usersign não funciona, e se eu removê-la também consigo alterar a condição, não vejo o erro.
Declare @cond_cli varchar
Declare @cond_doc varchar
Declare @CodCli int
Declare @UserId int
If (@Object_Type = '17' and @transaction_type in ('A','U'))
Begin
Set @CodCli = (Select CardCode From ORDR Where DocEntry=@list_of_cols_val_tab_del)
Set @cond_cli = (Select GroupNum From OCRD Where CardCode=@CodCli)
Set @cond_doc = (Select GroupNum From ORDR Where DocEntry= @list_of_cols_val_tab_del)
Set @UserId = (select UserSign2 from ORDR where DocEntry = @list_of_cols_val_tab_del)
IF ((@cond_cli != @cond_doc) and @UserId in (50))
begin
select @error = 1234
select @error_message='Não é permitida a alteração da condição de pagamento'
End
End
Alguém pode me ajudar?
Saudações
Alessandro.
Confira esta solução proposta.
[
]
Se você tiver uma versão superior a 2007, a coluna usersign2 não existe na tabela OCRD ou ACRD.
A solução que proponho é bloquear mudanças no nome da empresa, mas pode ser útil para você.
Olá Alessandro
O UserSing é o usuário que cria o documento
O UserSing2 é quem modifica... Altera o SET do UserId para UserSing2
Saudações
Obrigado Floyola, mas obtive o mesmo resultado, ainda não consigo alterar as condições.
No entanto, se eu remover a validação do usersign, funciona. O_o
Cumprimentos
Alessandro
Olá Alessandro
Experimente o SP_TN desta forma
-- VALIDA CONDIÇÃO DE PAGAMENTO
If @Object_Type = '17' AND @transaction_type IN ('A','U')
BEGIN
DECLARE
@CardCode varchar(12),
@Pago_OV SMALLINT,
@Pago_SN SMALLINT,
@UserId SMALLINT
SET @CardCode = (Select CardCode From ORDR Where DocEntry=@list_of_cols_val_tab_del)
SET @Pago_OV = (Select GroupNum From ORDR Where DocEntry= @list_of_cols_val_tab_del)
SET @Pago_SN = (Select GroupNum From OCRD Where CardCode=@CardCode)
SET @UserId = (select UserSign from ORDR where DocEntry = @list_of_cols_val_tab_del)
IF ((@Pago_OV != @Pago_SN)AND @UserId = 50)
BEGIN
SELECT @error = -600, @error_message= 'Não é permitido alterar a condição de pagamento'
END
END
Atenciosamente.
Felipe Loyola
Editado por: Floyola em 19 de junho de 2011 às 16:37
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute