Hola, ya resolvi los primero 3 campos, ojalá y a alguien le sirva:
primero hay que crear 3 campos definidos por el usuario a nivel de Orden de Producción : titulo
cto_comp_real - Costo de componente real
cto_adi_real - Costo adicional real
cto_prod_real - Costo de producto real
Los 3 de tipo Importe (para conservar los decimales, en mi caso de 2 decimales)
Luego agregar el siguiente código en el [dbo].[SBO_SP_PostTransactionNotice]
-- | ADD | YOUR | CODE | HERE |
-----------Inicia BY RAFA
--ESTATUS | -- cancelado | c | -- cerrado | L | -- liberado | R | -- planificado | P |
if @object_type = '202' and (select [Status] from OWOR where DocNum = @list_of_cols_val_tab_del) = 'L'
begin
-- Costo de componente real
update OWOR set U_cto_comp_real = (SELECT DISTINCT -sum(T2.TransValue) FROM OWOR T0 LEFT JOIN IGN1 T1 ON T0.DocNum=T1.BaseRef INNER JOIN OINM T2 ON T0.DocEntry=T2.AppObjAbs AND OutQTY>0 WHERE T0.DocNum = @list_of_cols_val_tab_del)
where DocNum = @list_of_cols_val_tab_del
-- Costo adicional real
update OWOR set U_cto_adi_real = (SELECT sum(t1.PlannedQty * t2.AvgPrice) as total FROM OWOR T0 INNER JOIN WOR1 T1 ON T0.[DocEntry] = T1.[DocEntry], OITW T2 WHERE T2.[ItemCode] like 'MO%' and T2.[ItemCode] = T1.[ItemCode] and T0.[DocNum] = @list_of_cols_val_tab_del)
where DocNum = @list_of_cols_val_tab_del
-- Costo de producto real
update OWOR set U_cto_prod_real = (SELECT isnull(T0.[DocTotal],0) FROM OIGN T0 INNER JOIN IGN1 T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE T1.[BaseRef] = @list_of_cols_val_tab_del)
where DocNum = @list_of_cols_val_tab_del
end-- termina el if del object type
-------END BY RAFA
Listo.
Espero les sea de utilidad
Saludos
Rafael Botello