TN no funciona correctamente

Buen día a todos!

Tengo un detalle con un TN en ordenes de venta, lo que me hace este TN es bloquearme la creación del documento cuando lo que se esta pidiendo rebasa mi campo de stock_real, funciona perfectamente, pero cuando primero se hace una oferta de ventas y de ahi la pasan a una orden de venta, la TN no me bloquea la creación.

Espero me puedan orientar, muchas gracias

Este es mi código

IF @object_type = '17' and @transaction_type IN ('A', 'U')
BEGIN
	IF EXISTS (
			SELECT 
				T1.U_stock_Real			
			FROM ORDR T0 
				INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
			WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.Quantity > T1.U_stock_Real and T0.PickRmrk is NULL
					  )
	BEGIN
		SET @error = 911
		SET @error_message = 'No hay suficiente inventario'
END
END ```

Hola que tal, he realizado un ejercicio con tu TN de Oferta de venta a Orden de venta y me funciona perfecto, no deja crear la orden si rebasa los stocks existentes.
En este caso lo hice con el campo OnHand y utilicé un Inner con OITW para poder hacer el ejercicio:

Este es el TN que utilicé, casi similar:

IF @object_type = '17' and @transaction_type IN ('A', 'U')
BEGIN
	IF EXISTS (
			SELECT 
				'' AS TEST			
			FROM ORDR T0 
				INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITW T2 ON T1.ItemCode = T2.ItemCode
			WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.Quantity > T2.OnHand
					  )
	BEGIN
		SET @error = 911
		SET @error_message = 'No hay suficiente inventario'
END
END

Tal vez es porque estoy tomando campos nativos de SAP, deja creo el campo U_stock tal vez tiene algo que ver.

Muchas gracias por tu respuesta, realicé otro query y este si me funciono, lo dejo por si alguien más lo necesita

IF @object_type = '17' AND @transaction_type IN ('A','U')
BEGIN
          IF EXISTS (
				SELECT 
					T1.LineNum+1 
				FROM ORDR T0 
					INNER JOIN RDR1 T1 ON T1.docEntry = T0.DocEntry					
				WHERE T1.WhsCode = 'FORANEOS'
					AND T0.DocEntry = @list_of_cols_val_tab_del
					AND (T0.Pickrmrk <> 'ESPECIAL' OR T0.PickRmrk IS NULL)
					AND T1.Quantity > T1.U_stock_Real )
          BEGIN
                    SET @fila = (
						SELECT TOP 
							1 T1.LineNum +1 
						FROM RDR1 T1 
                        WHERE T1.Quantity > T1.U_stock_Real
                            AND T1.DocEntry = @list_of_cols_val_tab_del
                        ORDER BY T1.LineNum ASC)
                    SET @Error = '-666'
                    SET @error_message = 'No hay suficiente inventario' 
          END
END
2 Me gusta

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.