Bloquear Orden Venta de un Articulo en Sucursal

Buenas tardes, necesito bloquear la orden de venta de un articulo en una sucursal especifica, esto tengo que hacerlo en el Transaction Notification, estuve trabajando en ello pero no me funciona y lo peor es que creo que se complica un poco mas porque puedo poner varios items en la orden y entre ellos puede estar el que no tengo que permitirle vender.
Muchas Gracias por su ayuda, adjunto lo que estaba haciendo yo para ver si me pueden dar una mano.

IF @object_type = '17'
            AND @transaction_type = 'A'
             BEGIN
                 DECLARE @ALMP NVARCHAR(20);
					DECLARE @Superlinea integer;
                 (
                     select @ALMP=Convert(nvarchar(20),(select SeriesName from NNM1 (nolock) where Series=t0.Series)),
					 @superlinea=cast(t2.U_SUPER_LINEA as int) 
					 FROM [dbo].[ORDR] (nolock) T0 INNER JOIN RDR1 (nolock) T1 ON T0.[DocEntry] = T1.[DocEntry] 
					 INNER JOIN OITM (nolock) T2 ON T1.[ItemCode] = T2.[ItemCode]  
					 WHERE
					 t0.DocEntry = @list_of_cols_val_tab_del
                 );
                 IF @ALMP = cast('PCCE18' as nvarchar(20)) and @superlinea=cast(1 as int)
                   BEGIN
                         SET @error = 130005;
                         SET @error_message = 'No puede realizar esta venta, item no autorizado'
                     END;
             END;

Espero que me puedan dar una mano.

A ver si te ayudo un poco con la idea…

Como una misma ORDR puede tener más de 1 item esa consulta no te va a ayudar… Lo que necesitas es condicionar el Where solamente a cuando sea un True o False… sin ponerme mucho con él código te comento.

IF @object_type = '17'
            AND @transaction_type = 'A'
             BEGIN
                 DECLARE @ALMP NVARCHAR(2);
		Set @ALMP = '0'			
                 (
                     select @ALMP= '1' 
			 FROM [dbo].[ORDR] (nolock) T0 INNER JOIN RDR1 (nolock) T1 ON T0.[DocEntry] = T1.[DocEntry] 
			 INNER JOIN OITM (nolock) T2 ON T1.[ItemCode] = T2.[ItemCode]  
			 WHERE
			 t0.DocEntry = @list_of_cols_val_tab_del
			 AND T2.U_Super_Linea = 1
			 AND T0.series = (REVISA EL CÓIGO DE LA SERIE PCCE18 PARA ELIMINARTE EL SUBSELECT DE LA CONSULTA)
                 );
                 IF @ALMP =  '1'
                   BEGIN
                         SET @error = 130005;
                         SET @error_message = 'No puede realizar esta venta, item no autorizado'
                     END;
             END;

2 Me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.