on 04-09-2010 10:01 PM
Cordial Saludo
quisiera saber si existe un informe que me permita generar que productos del inventario tinen stock y costo pero no se han vendido en un rango de fecha establecido
Hola.
Intenta con el informe de inventario "Artículos inactivos". Se debe colocar una fecha de referencia desde la cual se comienza a contar si no tuvo movimiento.
Saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola.
Después de generar el informe, cuando aparece el listado de artículos, arriba deben estar los checks.
También se puede utilizar el informe de operaciones de lotes y filtrar por los que tienen existencias > 0 y fecha de ingreso/producción inferior a alguna fehca de referencia.
Otra manera es crear un query que muestre esto de manera similar a como se generó el informe de lotes:
- Traer los campos requeridos de la tabla OIBT cuando la cantidad en stock sea mayor que cero y la fecha de ingreso (o fabricación también) del lote sea de uno o más años atras.
Por ejmplo, la siguiente consulta trae los lotes de cualquier artículo con existencias en inventario y cuya fecha de admisión se de hace un año o más:
SELECT *
FROM OIBT T0
WHERE DateDiff(day,T0.[InDate],GetDate()) >=360 AND T0.[Quantity] > 0
Saludos.
Cordial Saludo
Muchas gracias por tu ayuda ya pude ver lo que me explicas pero no logro generar el informe que me piden porque en unos tengo una prate y en otro otra parte
como veo que eres un experto me tomo el atravimiento de pedirte el favor si me puedes ayudar
con el siguiente informe que lo requiere el area comercial
informe donde aparesca los items que tienen stock , que no sean vendido durante un rango de dias donde este:
su stock actual su costo promedio el total en valores (costo*stock) el almacen al que pertenece y la fecha de su ultima venta
Hola.
Como necesita sólo los no vendidos sin lotes, sería tomar el movimiento de las facturas y luego traer los artículos cuya última fecha de factura no esté dentro del rango de fechas determinado, así:
SELECT T1.ItemCode, T1.Dscription, T2.OnHand, T2.AvgPrice as 'Precio Promedio',
T2.AvgPrice*T2.OnHand AS 'Valor Total', MAX(T1.DocDate) AS 'Ult.Fec.Vta'
FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
WHERE T0.DocType LIKE 'I'
GROUP BY T1.ItemCode, T1.Dscription, T2.OnHand, T2.AvgPrice
HAVING MAX(T0.DocDate) NOT BETWEEN '[%0]' AND '[%1]' AND T2.OnHand > 0
Pruebe el query y nos cuenta cómo le va.
Saludos.
Edited by: Hector Daniel Hernandez Bacca on Apr 13, 2010 9:09 AM
Hola.
Intente con este:
SELECT T1.ItemCode, T1.Dscription, T2.AvgPrice, T3.WhsCode, T3.OnHand,
T3.AvgPrice as 'Precio Promedio',
T3.AvgPrice*T3.OnHand AS 'Valor Total',
MAX(T1.DocDate) AS 'Ult.Fec.Vta'
FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
INNER JOIN OITW T3 ON T2.ItemCode = T3.ItemCode
WHERE T0.DocType LIKE 'I'
GROUP BY T1.ItemCode, T1.Dscription, T2.AvgPrice, T3.WhsCode, T3.OnHand,
T3.AvgPrice
HAVING MAX(T0.DocDate) NOT BETWEEN '[%0]' AND '[%1]' AND T3.OnHand > 0
¿Aparece el valor de ambos campos AvgPrice?
Saludos..
HOLA
La lectura que le doy al 1 er query es genereme los items con el almacen su costo, su stock, y la fecha de su ultima factura de ventas siempre y cuando la fecha de la ultima factura no este dentro del rango que defino en el momento de generar ell reporte fecha inferior y fecha superior
en este caso genera el reporte con todos los datos del item pero la fecha de la ultima factura no se de donde la toma porque aprecen fecha como 10/05/2010 fecha que ninguna factura la tiene y al filtrar por almacen me da valores superiores al valor del inventario total,
y en la 2 query genera similar informacion,
Sera que estoy haciendo algun proceso mal? o en la consulta la fecha del docuemnto debe tomarse de otra tabla?
Hola.
Si, la lógica en la consulta para traer la fecha no estaba del todo correcta.
Intenta con este otro query, lo he verificado y este si trae la última fecha de facturación:
SELECT T0.ItemCode, T0.Dscription, T0.OnHand, T0.AvgPrice, T1.AvgPrice,
T1.WhsCode, T0.[Ult.Fecha]
FROM (
SELECT T10.ItemCode, T10.Dscription, T11.OnHand, T11.AvgPrice,
'Ult.Fecha'=(SELECT TOP 1 DocDate FROM OINM WHERE TransType = 13
AND ItemCode = T10.ItemCode ORDER BY DocDate DESC)
FROM INV1 T10 INNER JOIN OITM T11 ON T10.ItemCode = T11.ItemCode
WHERE T11.Onhand > 0
GROUP BY T10.ItemCode, T10.Dscription, T11.OnHand, T11.AvgPrice
) T0 INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode AND T1.OnHand > 0
WHERE T0.[Ult.Fecha] NOT BETWEEN '20100101' AND '20100419'
ORDER BY T0.ItemCode
Es un poco más demorada que la otra, pero funciona correctamente.
Saludos.
Hola.
La última consulta muestra sólo los almacenes donde el stock es mayor que cero. Si desea ver todos los almacenes así no tengan stock, no es sino quitar el último filtro "AND T1.OnHand > 0". La consulta quedaría así.
SELECT T0.ItemCode, T0.Dscription, T0.OnHand, T0.AvgPrice, T1.AvgPrice,
T1.WhsCode, T0.[Ult.Fecha]
FROM (
SELECT T10.ItemCode, T10.Dscription, T11.OnHand, T11.AvgPrice,
'Ult.Fecha'=(SELECT TOP 1 DocDate FROM OINM WHERE TransType = 13
AND ItemCode = T10.ItemCode ORDER BY DocDate DESC)
FROM INV1 T10 INNER JOIN OITM T11 ON T10.ItemCode = T11.ItemCode
WHERE T11.Onhand > 0
GROUP BY T10.ItemCode, T10.Dscription, T11.OnHand, T11.AvgPrice
) T0 INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode
WHERE T0.[Ult.Fecha] NOT BETWEEN '[%0]' AND '[%1]'
ORDER BY T0.ItemCode
Nos cuenta cómo le va.
Saludos.
Hola.
Ya comprendo. Para eso se agrega el campo T1.OnHand correspondiente al stock de cada almacén (en la tabla OITW con alias T1), quedando el query así:
SELECT T0.ItemCode, T0.Dscription, T0.OnHand AS 'Stock Total', T0.AvgPrice AS 'ValPromGen',
T1.WhsCode, T1.AvgPrice as 'ValPromAlm', T1.OnHand, T0.[Ult.Fecha]
FROM (
SELECT T10.ItemCode, T10.Dscription, T11.OnHand, T11.AvgPrice,
'Ult.Fecha'=(SELECT TOP 1 DocDate FROM OINM WHERE TransType = 13
AND ItemCode = T10.ItemCode ORDER BY DocDate DESC)
FROM INV1 T10 INNER JOIN OITM T11 ON T10.ItemCode = T11.ItemCode
WHERE T11.Onhand > 0
GROUP BY T10.ItemCode, T10.Dscription, T11.OnHand, T11.AvgPrice
) T0 INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode AND T1.OnHand > 0
WHERE T0.[Ult.Fecha] NOT BETWEEN '20100101' AND '20100419'
ORDER BY T0.ItemCode
¿Al correr la consulta aparecen valores en las columnas ValPromGen y ValPromAlm?. Esto es para saber por cuál columna tiene que multiplicar el stock para obtener el valor monetario de dicho stock.
Saludos.
User | Count |
---|---|
85 | |
7 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.