UPDATE MOVIMENTO SET VAL_ACRESCIMO = 0 WHERE COD_TDF IN(-1,-2)
UPDATE MOVIMENTO SET
VAL_DESCONTO_ITENS = ISNULL((SELECT SUM(I.VAL_DESCONTO) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO),0),
VAL_PRODUTOS = ISNULL((SELECT SUM(I.QUANTIDADE * I.VAL_UNITARIO) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO),0)

UPDATE MOVIMENTO SET VAL_DESC_SUB_TOTAL = 0 WHERE VAL_DESC_SUB_TOTAL < 0
UPDATE MOVIMENTO SET VAL_DESC_SUB_TOTAL = 0 WHERE VAL_DESC_SUB_TOTAL > 0 AND COD_MOVIMENTO IN(SELECT COD_MOVIMENTO FROM VENDA WHERE COD_OS IS NOT NULL)
UPDATE MOVIMENTO SET VAL_DESCONTO = VAL_DESCONTO_ITENS WHERE VAL_DESC_SUB_TOTAL = 0

UPDATE MOVIMENTO_ITEM SET VAL_ACRESCIMO_REAL = I.VAL_ACRESCIMO + ((I.QUANTIDADE * I.VAL_UNITARIO) * (M.VAL_ACRESCIMO / M.VAL_PRODUTOS))
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE (M.VAL_PRODUTOS > 0)

UPDATE MOVIMENTO_ITEM SET VAL_DESCONTO_REAL = I.VAL_DESCONTO + ((I.QUANTIDADE * I.VAL_UNITARIO) * (M.VAL_DESC_SUB_TOTAL / M.VAL_PRODUTOS))
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE M.VAL_PRODUTOS > 0

UPDATE MOVIMENTO_ITEM SET
 TOTAL_OPERACAO = (I.VAL_UNITARIO * I.QUANTIDADE) - ISNULL(I.VAL_DESCONTO_REAL,0) + ISNULL(I.VAL_ACRESCIMO_REAL,0) + I.VL_ICMS_ST + I.VL_IPI + ISNULL(I.VL_FRETE,0) +
 ISNULL(I.VL_SEGURO,0) + ISNULL(I.VL_DESPESA,0)
FROM MOVIMENTO_ITEM I