Estimados, favor de su valiosa ayuda, tengo el siguiente problema, al obtener mediante query el valor acumulado del inventario (columna Balance en la OINM) no cuadra con la columna “Valor Acumulado” en reporte “Auditoria Stock”, la diferencia se produce porque se ingreso un ajuste de inventario con fecha contable anterior a la fecha del día, ¿la columna Balance de la tabla OINM se puede recalcular?
Estimado Aldo, cuando ejecuta el reporte auditoria stock hay 2 fechas posibles para ordenar las transacciones
Fecha contable y fecha de sistema; la fecha de sistema es la fecha de creación real de la transacción
En la tabla OINM esa fecha es la columna CreateDate.
Revise que los filtros del reporte y de la tabla consideren la misma fecha (contable o sistema)
Estimado @felipe.loyola gracias por su pronta respuesta, tanto el reporte de auditoria de Stock estándar SAP como la query están utilizando la fecha contable (DocDate) , según lo que pude revisar es que la valorización del ítems que estoy revisando esta calculado en la tabla OINM campo balance con la fecha de creación.
El campo balance es la multiplicación de la cantidad por el costo al momento ocurrida la transacción.
El reporte de auditoria de stock también usa esa formula.
Aquí te dejo la query que uso para cuadrar el auditoria de stock.
/*SELECT * FROM "OINV" T0*/
declare FECHAFIN timestamp;
FECHAFIN := /* T0."DocDate" */ [%0];
select distinct
T2."ItemCode",
T2."ItemName",
T1."WhsCode",
T1."WhsName",
T3."ItmsGrpNam",
T3."BalInvntAc",
T4."AcctName"
,ifnull(sum(T6."Saldo"),0) as "Stock"
,ifnull(nullif(sum(T7."TransValue"),0),1)/ifnull(nullif(sum(T7."Saldo"),0),1) as "PMP"
,ifnull(nullif(sum(T6."Saldo"),0),1)*(ifnull(nullif(sum(T7."TransValue"),0),1)/ifnull(nullif(sum(T7."Saldo"),0),1)) as "Valorizado"
from OITM T2
inner JOIN OITW T0 ON T0."ItemCode"=T2."ItemCode"
inner JOIN OWHS T1 ON T1."WhsCode"=T0."WhsCode"
INNER JOIN OITB T3 ON T2."ItmsGrpCod" = T3."ItmsGrpCod"
INNER JOIN OACT T4 ON T4."AcctCode"=T3."BalInvntAc"
left join (
select A0."ItemCode", A0."Warehouse", cast((ifnull(A0."InQty",0)-ifnull(A0."OutQty",0)) as int) as "Saldo", A0."TransValue"
from OINM A0
where A0."DocDate"<=FECHAFIN
) T6 on T6."ItemCode"=T0."ItemCode" and T6."Warehouse"=T0."WhsCode"
left join (
select A1."ItemCode", sum(ifnull(A1."InQty",0)-ifnull(A1."OutQty",0)) as "Saldo", sum(A1."TransValue") as "TransValue"
from OINM A1
where A1."DocDate"<=FECHAFIN
group by A1."ItemCode"
) T7 on T7."ItemCode"=T0."ItemCode" and T7."ItemCode"=T6."ItemCode"
group by T2."ItemCode", T2."ItemName", T1."WhsCode", T1."WhsName", T3."ItmsGrpNam",T3."BalInvntAc",T4."AcctName"
having sum(T6."Saldo")<>0
order by 1,3;
Estimado @felipe.loyola, gracias por su respuesta, la query que envía funciona bien según las validaciones que pude hacer, sólo una observación para poder ajustar la query, esta query esta ajustada para cuando la gestión de costo del articulo es por almacén, nosotros no tenemos activo esa funcionalidad, para adaptarla a esto ultimo debemos quitar a la query las agrupaciones por Almacén?