on 04-30-2008 5:20 PM
Hola,
Un cliente nos solicito un reporte de stock por rango de fecha que incluya el costo... ya logramos reconstuir el stock pero no hemos podido dar con el costo... ellos usan Average Price,
La idea es que se ingrese fecha desde hasta y que el reporte entregue el stock por producto y bodega con el costo promedio en ese periodo.
Agradeceremos cualquier sugerencia al respecto,
muchas gracias
Angela,
Intentaste usar la herramienta SQL Analyzer para capturar la query que Business One usa para armar el reporte Audit Inventory.
Tal vez mirando esa query, puedas dar con el dato puntual que necesitas para mirar el costo.
La tabla base para este tipo de reporte debiese ser la OINM.
saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola,
cuando instalas el SQL Server 2005 con sus herramientas de administración, debe quedar en tus iconos del grupo de Programas:
Microsoft SQL Server 2005 --> SQL Server Profiler (rastreo de SQL a la BD)
Una vez que entras alli, y te conectas al server y BD verás pasar una serie de SQLs que son los que están llegando a la BD. Lo que te recomiendo es ver los botones de control de la TOOLBAR:
-. PLAY
-. STOP
-. para que des STOP, asi todo se detiene y el monitor del SQL no sigue mostrando lo que pasa en tiempo real.
-. Luego, buscas la opción de CLEAR para que toda la traza que quedo se limpie.
-. luego vas a B1 y entras al reporte de Auditoria de Stock ingresas los filtros que quieres y justo antes de dar el OK al reporte vas al SQL Profiler y le das PLAY.
-. luego das el OK en B1, y verás pasar un set de querys que lanzó B1 contra la BD para satisfacer ese reporte.
-. luego das STOP para que asi no siga llenandote de SQL.
y con las querys que capturas tendrás que buscar la query CENTRAL que es la que definitivamente recupera los datos, pues existen muchas otras usadas solo por B1 para cargar objetos propios.
IMPORTANTE:
-. Esto hazlo en tu equipo, pues cuando estas en un ambiente con CONCURRENCIA y haces esto, también podrás ver y capturar las querys que otros users lanzan sobre la Base de Datos.
saludos
Edited by: Rui Pereira on May 26, 2008 3:02 PM
Estimados,
El tema es mas simple de lo que intentan hacer.
Les adjunto la solucion
Att,
Manuel Lazcano
Exxis
Chile
Query informe de stock por fecha
SELECT T0.DocDate AS 'Fecha de contabilización',
T0.ItemCode AS 'Número de artículo',
t1.itemname AS 'Descripcion',T2.ItmsGrpnam as 'Grupo',
'Bod' AS 'Código de almacén',
case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end AS 'Cantidad TRX',
T0.CalcPrice AS 'Costo',
case when ((case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end) * T0.CalcPrice) <> 0 then ((case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end) * T0.CalcPrice) else T0.transvalue END AS 'Monto', T3.segment_0 AS 'Cuenta Stock', T3.AcctName AS 'Nombre Cuenta' INTO #TEMP
FROM dbo.OINM T0 INNER JOIN dbo.OITM T1 ON T0.ItemCode = T1.ItemCode INNER JOIN dbo.OITB T2 ON T1.ItmsGrpCod = T2.ItmsGrpCod INNER JOIN dbo.OACT T3 ON T2.BalInvntAc = T3.AcctCode
WHERE T0.DocDate<='[%0]'
SELECT , Descripcion, Grupo,[código de almacén], SUM() AS Cantidad, SUM(Monto) AS Valor,CAST ( CASE WHEN SUM(Monto)=0 OR SUM()=0 tHEN 0 else SUM(Monto)/SUM() END AS NVARCHAR)AS 'Costo Prom', ,
FROM #TEMP
que tal Manuel tengo un problema con la consulta que sugieres ya la repase y repase pero no funciona me marca este error:
1). [Microsoft][SQL Native Client][SQL Server]The SUM function requires 1 argument 'Valores definidos por usuario' (CSHS) (s). 2). [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared.
me podrias apoyar
Hola:
Yo uso este query para obtener los datos por los cuales consultas:
SELECT
...
,CASE T0.TransType
WHEN 69 THEN 0
ELSE T0.CalcPrice
END /* Precio de Costo al momento de la trransacción */
,CASE T0.TransType
WHEN 69 THEN T0.Price
ELSE T0.TransValue
...
FROM OINM T0
Espero que te pueda servir.
Saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Estimados,
si ya pudiste reconstruir el saldo, tambien puedes recontruir el valor acumulado, estos datos los insertas en una tabla temporal como por ejemplo.
SELECT 10 AS 'Q', 100 AS 'P'
INTO #TEMP
FROM dbo.OINM
WHERE T0.DocDate<='[%0]'
SELECT Q, P,P/Q AS 'P PROM'
FROM #TEMP
Att.
Manuel Lazcano
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Como indican en el mensaje anterior debes utilizar la tabla OINM, pero debes buscar la columna calcprice. es bastante complicado esta parte pues debes hacer varia validaciones como si no existe ninguna transaccion para un codigo el costo es el que tenga en el momento. si existe debes seleccionar la ultima el costo de la ultima salida del dia que quieres ver. creo que estas dos no hay tanta complicacion. lo mas complicado sera cuando hay un dia que no tiene transaccion pero dias hacia atras si tiene transaccion, por ejemplo ayer y hoy tiene el mismo inventario el costo de hoy es el mismo de ayer. creo que se puede hacer pero el query te llevara tiempo, saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
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.