¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como validar e evitar duplicatas no campo de Ordem de Compra quando a Ordem de Venda está aberta

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Cargando...

Caros amigos:

Tenho um campo de usuário chamado Ordem de Compra, gostaria de fazer uma validação ou, em todo caso, o que poderia usar para que o número inserido não seja duplicado, desde que a Ordem de Venda esteja em estado aberto.

Espero que possam me ajudar a como fazer essa validação.

Saudações

QASAC

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá...

Na verdade, não há uma regra específica para mensagens. No entanto, em alguns casos, pode ser útil manter um controle dos diferentes mensagens de erro através deste indicador.

Atenciosamente,

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Uma pergunta que talvez possa me tirar da minha ignorância. Vejo que estão usando ou você está usando no (SET @error) = -4. Por quê? Nas minhas validações eu uso 1. Minha pergunta é quais códigos existem e para que cada um é usado?

Espero que possam resolver minha dúvida.

Saudações,

QASAC

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Jesus...

Verifique o seguinte post..., apresenta um caso de validação para dados repetidos

A partir do que entendo seria mais ou menos assim..., onde U_nnn seria o campo de usuário

IF ((@object_type = '17' AND @transaction_type = 'A' )) or ((@object_type = '17' AND @transaction_type = 'U' ))
DECLARE @FAB AS NVARCHAR(30)
DECLARE @CONSULTA INT
SET @FAB = (SELECT T0.U_nnn FROM ORDR T0 WHERE T0.DocNum = @list_of_cols_val_tab_del)
SET @CONSULTA = (SELECT COUNT(T0.U_nnn) FROM ORDR T0 WHERE T0.U_nnn = @FAB)
BEGIN
IF EXISTS 
(SELECT T0.DocNum FROM ORDR T0 WHERE (T0.U_nnn Is Null) and T0.DocNum = @list_of_cols_val_tab_del)
BEGIN
SET @error = -4
SET @error_message = 'Falta o nnn'
END 
IF @CONSULTA > '1'
SET @error = -4
SET @error_message = 'Este Campo de usuário não pode ser duplicado'
END

Espero que seja útil,

Cumprimentos cordiais,

Editado por: Paul Ponce em 12 de janeiro de 2010 às 17:42

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Experimente esta opção com o status aberto


IF ((@object_type = '17' E @transaction_type = 'A' )) o ((@object_type = '17' E @transaction_type = 'U' ))
begin
DECLARE @REF COMO NVARCHAR(10)
DECLARE @existe  INT
SET @REF = (SELECIONAR U_userfield DE ORDR  ONDE DocNum = @list_of_cols_val_tab_del)
SET @existe = (SELECIONAR CONTAGEM(U_userfield) DE ORDR  ONDE DocStatus='O' e U_userfield = @REF)
end
IF @existe >1
begin
SET @error = -1
SET @error_message = 'Esta referência existe em outra ordem aberta'
END

Saudações

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?