Costos de componentes en la fecha de recibo PT

Problema: tengo una orden de fabricacion por 12 equipos con el siguiente resumen de costos:
COSTOS DE LA OF Importe
Costo de componentes usados $286,696.39
Costo de recurso usados $3,115.20
Subtotal $289,811.59
Costo de Producto Final $259,161.99
Desviación total OF-6000561 -$30,649.60

Los recibos de produccion se comportaron de la siguiente forma
RECIBOS DE PRODUCCION (INGRESO DEL PT AL INVENTARIO)
Número Fecha Cantidad Costo Final del PT Costo Unitario Importe
32555 06-jul-18 6 $24,035.35 $4,005.89 $144,212.07
32598 10-jul-18 3 $16,475.25 $5,491.75 $49,425.75
32641 11-jul-18 3 $21,841.39 $7,280.46 $65,524.17
TOTAL $259,161.99

me piden encontrar donde estuvo la diferencia en los costos de inventario que hicieron que el costo unitario de cada equipo terminado tuviera un costo unitario diferente en cada fecha,
Es decir quieren saber que articulos de inventario cambiaron su costo promedio, de un recibo a otro.
Por favor hay alguien me puede ayudar con un Query que muestre el costo de cada componente de la lista de materiales del equipo terminado., en fecha en que se hizo el recibo de produccion?
me urge su ayuda, gracias

Una disculpa, tenía una columna errónea en mi tabla de recibos.
El Producto Terminado cambio su costo de la siguiente forma:
el día 6 de julio tenía un costo calculado según su lista de materiales y el costo de los items en el inventario de $24,035.35
El día 10 de julio el costo calculado durante el recibo fue de 16,475.25
Y el ultimo día los últimos 3 equipos ingresaron con un costo 21,841.39

Hola Alvarez
En SAP 9.3 existe un opción que muestra el detalle de las desviaciones de produccion. por lo cual si estas en una versión anterior lo debes hacer manualmente o mediante un reporte creado por ti.
Para encontrar la desviación debes revisar los consumos de todas las materias primas, desde la pestaña de resumen de la orden de produccion e identificar la variación en el costo unitario.

Con la siguiente consulta puedes listar las desviaciones a nivel global de las ordenes de producción, te puede servir de base para obtener el detalle que necesitas.

SELECT T0."DocNum", 
T3."ItemCode", T3."ItemName", T0."PlannedQty", T0."CmpltQty",
T0."RlsDate", T0."CloseDate", T0."OcrCode2" "Planta",
T10."Emision", T12."Servicios" ,T11."Recibo",
-1*SUM(T1."WipVal") + IFNULL(T12."Servicios",0) "Desviacion WIP Inicial", -1*T2."WipVarVal" "Revalorizacion WIP Aplicada", -1*(IFNULL(T2."WipVarVal",0) + SUM(T1."WipVal")-IFNULL(T12."Servicios",0))  "Desviacion sin Aplicar"
FROM OWOR T0 
INNER JOIN OINM T1 ON T1."AppObjAbs" = T0."DocEntry" AND T1."ApplObj"='202'
LEFT JOIN OINM T2 ON T2."CreatedBy" = T0."DocEntry" AND T2."TransType"='202'
INNER JOIN OITM T3 ON T0."ItemCode" = T3."ItemCode" 
LEFT JOIN (SELECT T10."AppObjAbs", SUM(T10."TransValue") "Emision" FROM OINM T10 WHERE T10."ApplObj"='202' AND  T10."AppObjType"='C' GROUP BY T10."AppObjAbs" ) T10 ON T10."AppObjAbs" = T0."DocEntry"
LEFT JOIN (SELECT T10."AppObjAbs", SUM(T10."TransValue") "Recibo" FROM OINM T10 WHERE T10."ApplObj"='202' AND  T10."AppObjType"='P' GROUP BY T10."AppObjAbs") T11 ON T11."AppObjAbs" = T0."DocEntry"
LEFT JOIN (SELECT T10."BaseEntry", SUM(T10."Quantity" * T10."StockPrice")*-1 "Servicios" FROM IGE1 T10 
INNER JOIN OITM T11 ON T11."ItemCode" = T10."ItemCode" AND T11."InvntItem" = 'N' GROUP BY T10."BaseEntry") T12 ON T12."BaseEntry" = T0."DocEntry"
WHERE T0."DocNum" = [%0]
GROUP BY T0."DocEntry", T0."DocNum", T3."ItemCode", T3."ItemName", T0."PlannedQty", T0."CmpltQty", T0."RlsDate", T0."CloseDate", T0."OcrCode2", T2."WipVarVal", T10."Emision", T11."Recibo", T12."Servicios"

Esta consulta tiene en cuenta si utilizas artículos de servicio (servicios externos) en las ordenes, por lo cual si no es tu caso puedes simplificar un poco la consulta.

Saludos,
Andres Ramirez Jaramillo :colombia:

3 Me gusta

Hola Andres Muchas gracias lo acabo de probar y me envia el siguiente error
1). [Microsoft][SQL Server Native Client 11.0][SQL Server]‘IFNULL’ is not a recognized built-in function name.
2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near ‘T10’.
3). [Microsoft][SQL Server Native Client 11.0][SQL Serv

puede que lo copiara mal

Si la desviación no la provocó un cambio en la cantidad base de los componentes de la orden de fabricación, podrías realizar una auditoría de stock de la fecha y artículos más relevantes en costo para esa orden.

1 me gusta

Hola Andres,
Lo que habia hecho es lo siguiente:
– Reporte que permite conocer el costo de cualquier estrutuctura
– Trae la cantidad x unidad, el costo de cada item de inventario y el importe del costo total de los componenetes que son de inventario.
– Elaborado por: Eric Alvarez , Consultores IBIZ, 16 de Agosto del 2018


WITH BOM (Code, Level, TreeType, QTYRequerida, Stock_AG, Costo_Prom, Importe) AS
(
– Anchor member definition
SELECT
T0.Code, 0 as Level, T4.TreeType, T0.Qauntity, T2.OnHand , T2. Avgprice, T0.Qauntity* T2. Avgprice
FROM
dbo.OITT T0
INNER JOIN OITW T2 ON T0.Code= T2.itemCode
INNER JOIN OITM T4 ON T2.ItemCode= T4.ItemCode
WHERE
T0.Code = (SELECT T0.[Code] FROM OITT T0 WHERE T0.[Code] =[%1]) and T2.WhsCode=‘AG’
UNION ALL
– Recursive member definition
SELECT
T1.Code , Level +1 , T4.TreeType, T1.Quantity, T2.OnHand, T2. Avgprice, T1.Quantity*T2.AvgPrice
FROM
dbo.ITT1 AS T1
INNER join OITW T2 ON T1.Code= T2.itemCode and T2.WhsCode=‘AG’
INNER JOIN OITM T4 ON T2.ItemCode= T4.ItemCode
JOIN BOM ON T1.Father = BOM.Code
Where LEVEL <= 5
)
– Statement that executes the CTE
SELECT Code ‘Codigo’, SUM(QTYRequerida) ‘Cantidad Unid’, Stock_AG, Costo_Prom ‘Costo_Artículo’, SUM (Importe) ‘Importe’
FROM BOM
Where TreeType=‘N’
Group By Code, Costo_Prom, Stock_AG
ORDER BY Code
Quisiera un query que mostrara un resultado similar a este pero que el costo promedio que trajera fuera el de la fecha que se le pasara.
de esa forma puedo ver si hubo algun componente que cambiara de costo comparando las fechas en la que se hicieron los recibos de PT

es decir, pasar la fecha y la estructura (producto padre de una BOM) y que el query diera el costo de cada compoente de inventario a esa fecha

Hola yesi, si es mas o menos como una auditoria de stock pero de todos los items de una BOM en una fecha dada

Tenemos que SAP Businees One, durante la fabricación tiene 3 momentos, donde calcula costos de inventario.
1er momento: Durante la Emisión de Componentes (Salida de Inventario – se entregan componentes a producción). En este proceso SAP contabiliza un abono a la cuenta de materia prima y un cargo a la cuenta WIP, por el valor de los materiales descargados de inventario, para la orden de fabricación dada. Aquí esta muy claro el desglose de las materias primas usadas y su costo en el momento de la emision.
2do momento. Durante el Recibo de Producción (Entrada de inventario – se recibe el producto terminado). Aquí SAP contabiliza un cargo a la cuenta de Inventario (almacén PT) y un abono a la cuenta WIP, por el valor calculado del costo del producto terminado a partir de la suma del costo de todos los componentes de su lista de materiales, en nel momento en que se hace el recibo de produccion.
Si se hacen 3 recibos de Produccion, en diferentes fechas puede que algunos items (componentes) hayan cambiado su costo promedio y por eso el producto terminado va tener un valor difrente.
Pero durante le recibo no hsay un documento donde se pueda ver el costo d elos componentes.
El cálculo del costo del PT es independiente del cálculo del costo de componentes usados y ambos valores puede ser diferentes. Solo hay la certeza que sean iguales si hacen uno seguido del otro.

3er momento. Cuando se cierra la orden de fabricación. En este momento SAP si hubo diferencias entre el costo de los materiales usados y costo calculado del producto terminado, entonces se crea una asiento contable donde interviene la cuenta de producto terminado y la cuenta de desviación WIP.

1 me gusta

@anon33106502 buen día, revisaste si hubo cambio en la cantidad base de los componentes mientras se hacia cada recibo de producción? o si cambiaron un item; por que consulto, Por que SAP para tomar el valor del recibo de producción (decirlo en manera simple), toma cada item del componente por su costo y lo multiplica por la cantidad base. Por ello revisa si hubo cambio en los componentes y en los valores de los mismos. Ahí puede estar la diferencias que tendrías que explicar, ya que como comentas la orden fue cerrada. Por lo cual igual tienes que revisar que al cerrar con esa desviación, el valor del producto al cual se le hace el recibo cambia su precio. Ojo con eso.
Para revisar el histórico de la orden, puedes ingresar al log de modificaciones de la orden de fabricación ahí tendrás todo el histórico y los cambios.

Si necesitas mas detalle o ayuda, me lo indicas.

Que tengas buen día.

2 Me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.