Skip to Content
0
Jul 11, 2014 at 04:36 PM

Ayuda transaction Ordenes de Fabricacion

37 Views

Buena tarde Expertos de la comunidad , estoy trabajando con este transaction que me detecta los productos que no tienen existencia, y asi no dejar crear la orden de fabricacion , este codigo bloquea si alguno de los articulos no hay disponibilidad,"hasta alli todo bien", el problema que tengo es el siguiente.

Ejemplo: creacion de 50 pares de zapatos

codigo Articulo cantidad requerida cantidad Disponible 102 suelas ( oitw.onhand-oitw.iscommited)

101066 Suelas 100

haciendo mis pruebas incremento el numero de pares de zapatos que quiero y pongo '60' logicamente me va a marcar que no tengo disponible para esta cantidad, luego pongo 49 pares logicamente me tendria que dejar pasar porque si tengo disponible en mis almacenes, esta es mi interrogante que tengo mal en el Query para que no me funcione, lo raro de todo esto es que si me deja pasar si solo me gasto el 60 % exactamente del material, es decir si pongo la cantidad de pares donde se consumen 62 suelas si me funciona este transaction. Agradeceria si alguien me pudiera brindar su mano a resolver este caso.

saludos cordiales

Declare @Num int

IF @object_type in ('202') and @transaction_type in ('A')

begin

SET @Num=(select Top 1 COUNT(c.ItemCode)

from OITW a

inner join OITM b on a.ItemCode=b.ItemCode

inner join WOR1 c on a.ItemCode=c.ItemCode

left join OWOR d on c.DocEntry=d.DocEntry

left join ITT1 e on c.ItemCode=e.Code

where d.DocNum =@list_of_cols_val_tab_del

and c.ItemCode not IN('GIF','MO')and

c.ItemCode like '1%'

group by b.ItemCode,b.ItemName,c.PlannedQty,c.ItemCode

having ((Sum(a.OnHand)-SUM(a.IsCommited)) <=(c.PlannedQty))

)

--Parte 2

declare @ItemWor1 varchar(100)

SET @ItemWOR1 =(SELECT CONVERT(VARCHAR(100), c.ItemCode) + ', '

from OITW a

inner join OITM b on a.ItemCode=b.ItemCode

inner join WOR1 c on a.ItemCode=c.ItemCode

left join OWOR d on c.DocEntry=d.DocEntry

left join ITT1 e on c.ItemCode=e.Code --Poner en Revision

where d.DocNum =@list_of_cols_val_tab_del

and c.ItemCode not IN('GIF','MO')and

c.ItemCode like '1%'

group by b.ItemCode,b.ItemName,c.PlannedQty,c.ItemCode

having ((Sum(a.OnHand)-SUM(a.IsCommited)) <=(c.PlannedQty))

ORDER BY 1 FOR XML PATH(''))

IF (@Num>0 or @Num='' )

BEGIN

SELECT @error = 101

SELECT @error_message = N'Existen componentes en Status de no Disponibles: ' + @ItemWOR1

end

end