Buenas a todos,
En esta oportunidad le escribo para solicitarles ayuda con el siguiente caso. En el tabla OITB (Grupos de Artículos) he creado un campo de usuario (llamado Familia) al cual le he asigando una busqueda formateada que permite asignar al campo el valor del máximo+1.
Por ejemplo:
Grupo Accesorios, Familia=100; cuando cree un nuevo grupo el valor del campo Familia debe ser 101.
Necesito hacer una validación que, al crear un nuevo grupo, no permita que el valor del campo sea mayor al máximo+1 que es el que le corresponde. Esto debido a que el usuario, por error, podría cambiar el valor que devuelve la busqueda. De igual forma cuando ocurra esa condición que muestre el mensaje indicando que código debe colocar en ese campo.
Esta es la validación que he planteado: Sabiendo que U_NTXC_ItmsGrpCod es un campo de usuario que hace visible el codigo interno del grupo, U_NTXC_ItmsGrpCodI es el campo Familia el cual deseo validar
Con esta validación detiene la creación de grupo, pero no me permite crearlo aún cuando le asigno el valor correcto al campo U_NTXC_ItmsGrpCodI.
IF (@object_type = '52' AND @transaction_type = 'A')
SET @CONS = (SELECT MAX(T0.U_NTXC_ItmsGrpCodI) FROM OITB T0 WHERE T0.U_NTXC_ItmsGrpCod = @list_of_cols_val_tab_del)
SET @CONS1 = (SELECT MAX(T0.U_NTXC_ItmsGrpCodI)+1 FROM OITB T0 WHERE T0.U_NTXC_ItmsGrpCodI = @CONS)
BEGIN
IF NOT EXISTS (SELECT T0.U_NTXC_ItmsGrpCodI FROM OITB T0 WHERE (@CONS > @CONS1 ) AND T0.U_NTXC_ItmsGrpCodI = @list_of_cols_val_tab_del)
BEGIN
SET @error = -52
SET @error_message = 'El codigo de familia debe ser:' + ' ' + CAST((@CONS) AS VARCHAR)
END
END
Esperando por su gran ayuda,
Muy agardecida de antemano
Saludos,