Olá, resolvi os primeiros 3 campos, espero que seja útil para alguém:
primeiro é preciso criar 3 campos definidos pelo usuário ao nível da Ordem de Produção: título
cto_comp_real - Custo do componente real
cto_adi_real - Custo adicional real
cto_prod_real - Custo do produto real
Os 3 são do tipo Importe (para manter os decimais, no meu caso, 2 decimais)
Em seguida, adicione o seguinte código no [dbo].[SBO_SP_PostTransactionNotice]
-- | ADICIONE | SEU | CÓDIGO | AQUI |
-----------Inicia POR RAFA
--STATUS | -- cancelado | c | -- cerrado | L | -- liberado | R | -- planificado | P |
if @object_type = '202' e (select [Status] from OWOR where DocNum = @list_of_cols_val_tab_del) = 'L'
begin
-- Custo do 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
-- Custo 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
-- Custo do produto 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 o if do tipo de objeto
-------FIM POR RAFA
Pronto.
Espero que seja útil para vocês
Saudações
Rafael Botello