¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo validar y evitar duplicados en el campo de Orden de Compra cuando la Orden de Venta está abierta

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

Estimados amigos:

Tengo un campo de usuario llamado Orden de Compra, quisiera hacer una validación o en todo caso qué podría emplear para que el número que ingresen no se duplique siempre y cuando la Orden de Venta esté en estado abierto.

Espero me puedan ayudar en cómo hacer esta validación.

Saludos

QASAC

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

4 Respuestas

0
Cargando...

Hola...

En realidad, no hay una regla específica para los mensajes. Sin embargo, en algunos casos, es útil llevar un control de los diferentes mensajes de error a través de este indicador.

Saludos cordiales,

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

Una consulta que quizás pueda sacarme de mi ignorancia. Veo que utilizan o utilizas en el (SET @error) = -4. ¿Por qué? En mis validaciones yo uso 1. Mi pregunta es ¿qué códigos hay y para qué se usa cada uno?

Espero puedan resolver mi inquietud.

Saludos,

QASAC

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

Hola Jesús...

Revisa el siguiente post..., plantea un caso de validación para datos repetidos

A partir de lo que entiendo sería más o menos así..., donde U_nnn sería el campo de usuario

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 el nnn'
END 
IF @CONSULTA > '1'
SET @error = -4
SET @error_message = 'Este Campo de usuario no puede ser duplicado'
END

Espero te sea de ayuda,

Saludos Cordiales,

Editado por: Paul Ponce el 12 de enero de 2010 a las 5:42 PM

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

Prueba esta opción con el estado abierto


IF ((@object_type = '17' AND @transaction_type = 'A' )) o ((@object_type = '17' AND @transaction_type = 'U' ))
begin
DECLARE @REF AS NVARCHAR(10)
DECLARE @existe  INT
SET @REF = (SELECT U_userfield FROM ORDR  WHERE DocNum = @list_of_cols_val_tab_del)
SET @existe = (SELECT COUNT(U_userfield) FROM ORDR  WHERE DocStatus='O' y U_userfield = @REF)
end
IF @existe >1
begin
SET @error = -1
SET @error_message = 'Esta referencia existe en otra orden abierta'
END

saludos

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?