on 08-01-2014 5:49 PM
Buenos Días, quien me puede ayudar a elaborar un transaction notification para el objeto de traspaso de mercancias de invetarios. Ya que al hacer traspaso de mercancia de artículos que tengo en mi bodega 05 no puedo hacer un traspaso parcial. Cuando saco esa mercancía a la venta debe ser completo.
Dicho Transaction solo se debe cumplir cuando traspaso mercancia de la bodega 05 a la bodega 01, los demás traspasos no queda involucrados.
Adicional a mandarme el error si la cantidad que transacciono de un artículo es mayor a 0 de lo que quede también me debería decir que línea del traspaso a hacer es la que no está cumpliendo con dicho transaction.
Esperando alguien me pueda ayudar por favor
Saludos y Gracias de Antemano
Yamileth
Hola Yamileth,
he creado este codigo para el Transaction que necesitas segun te entendi, solo cambia el codigo de Bodega para que puedas intentar.
-------------------------------------------------------------------------------------------------------------------
DECLARE @Articulo AS VARCHAR(10)
IF @object_type = '67'
BEGIN
IF EXISTS (SELECT * FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T1.FromWhsCod
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.FromWhsCod = 'Codigo de la Bodega 05' AND T1.WhsCode = 'Codigo de Bodega 01'
AND T2.OnHand > 0)
BEGIN
SET @Articulo = (SELECT TOP 1 T1.LineNum + 1 FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T1.FromWhsCod
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.FromWhsCod = 'Codigo de la Bodega 05' AND T1.WhsCode = 'Codigo de Bodega 01'
AND T2.OnHand > 0)
Set @error = 1
Set @error_message = 'La Linea ' + @Articulo + ' No cumple la condicion'
END
END
------------------------------------------------------------------------------------------------------------------------
Espero te sirva, cree el codigo solo comprobandolo mentalmente
Saludos!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Joseph no me ha funcionado no se si por algun tipo de conversión.
DECLARE @Articulo AS varchar(10)
IF @object_type = '67' and @transaction_type in ('A')
BEGIN
IF EXISTS (SELECT * FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T1.WhsCode
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.WhsCode = '001 Bodega a donde va la mercancía' AND T0.Filler = '005 Bodega de donde sale la mercancia'
AND T2.ItemCode > 0)
BEGIN
SET @Articulo = (SELECT TOP 1 T1.LineNum + 1 FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T1.WhsCode
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.WhsCode = '001 Bodega a donde va la mercancía' AND T0.Filler = '005 Bodega de donde sale la mercancia'
AND T2.ItemCode > 0)
Set @error = 1
Set @error_message = 'La Linea ' + @Articulo + ' No cumple la condicion'
END
END
Cuando hago una prueba con mercancía parcial o la que sea me sale el error ' Convertion Failed when converting nvarchar value 20102AML0MF0VD15-01A to data type int
mi artículo son nvarchar de 20 caracteres no se si esto influya en algo. Lo que si es cierto que cuando lo paso a otra bodega como la 009 si me lo deja pasar asi que esto quiere decir que va por buen camino.
Puedes probar tu codigo en alguna prueba de tu aplicación usando como ejemplo 2 bodegas de las tuyas para ver si funciona?
Saludos y Gracias
Buenas
Creo que estas haciendo mal los filtros
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND
T1.WhsCode = '001 Bodega a donde va la mercancía' AND
T0.Filler = '005 Bodega de donde sale la mercancia'
Lo correcto es
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND
T1.WhsCode = '001' AND
T0.Filler = '005'
Los códigos de almacén no tienen tantos caracteres.
Saludos
DECLARE @Articulo AS integer
IF @object_type = '67' and @transaction_type in ('A')
BEGIN
IF EXISTS (SELECT * FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T1.WhsCode
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.WhsCode = '001' AND T0.Filler = '005'
AND T2.OnHand > 0)
BEGIN
SET @Articulo = (SELECT TOP 1 T1.LineNum + 1 FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T1.WhsCode
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.WhsCode = '001' AND T0.Filler = '005'
AND T2.OnHand > 0)
Set @error = 1
Set @error_message = 'La Linea ' + @Articulo + ' No cumple la condicion'
END
END
De esta forma sigue saliendo el error Convertion Failed when converting nvarchar value 'La Linea' to data type int
Ok haciendo lo que dice Felipe ya me sale que no cumple, ahora el problema es que el artículo tiene 175 en la bodega 005 y si pongo traspasar 5 me sale que la linea no cumple, eso es correcto, pero si pongo los 175 que si debería dejarme también me sale el error que no cumple porque?
Está bien que el es porque el stock es mayor a 0? o debe ser que sea = a 0?
Muchísimas gracias ahora si funciona. Gracias a los 2 porque con ambas respuestas complementadas han hecho el query correcto.
Lo dejo abajo por si hay otros que lo desean.
Saludos y Gracias
DECLARE @Articulo AS integer
IF @object_type = '67' and @transaction_type in ('A')
BEGIN
IF EXISTS (SELECT * FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T0.Filler
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.WhsCode = '001' AND T0.Filler = '005'
AND T2.OnHand >0)
BEGIN
SET @Articulo = (SELECT TOP 1 T1.LineNum + 1 FROM OWTR T0
INNER JOIN WTR1 T1 ON T1.DocEntry = T0.DocEntry
INNER JOIN OITW T2 ON T2.ItemCode = T1.ItemCode AND T2.WhsCode = T0.Filler
WHERE T0.DocEntry = @list_of_cols_val_tab_del AND T1.WhsCode = '001' AND T0.Filler = '005'
AND T2.OnHand >0)
Set @error = 1
Set @error_message = 'La Linea ' + cast(@Articulo as varchar(100)) + ' No cumple la condicion'
END
END
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.