Estou arredondado os valores de um movimento que existe vários item e quando arrendondo da diferença de debito e credito, onde credito uso a formula NU003 e debito uso a formula NU036, o problema e ao gravar o movimento a consulta SQL não traz a diferença que deveria gravar no primeiro item do movimento, segue as formulas:
Credito
************************************************NU003*********************************
ARREDVALOR (MOU - MDT + MDZ + MSG + MFR + VLT ('IPI') + MVT('ICMSST'),2)
Debito
************************************************NU036*********************************
decl f051; setvar(f051, FOR('NU051'));
SE TABITM ('NSEQITMMOV' , 'V') = 1 E f051 >= - 0.35 E f051 <= 0.35 E f051 <> 0
ENTAO
ARREDVALOR((KQT * KPU) - TABITM ('RATEIODESC' , 'V') + TABITM ('RATEIODESP' , 'V')+ TABITM ('RATEIOFRETE' , 'V')+ TABITM ('RATEIOSEGURO' , 'V')+ LVL ('IPI') ,2)+ARREDVALOR(FOR('NU037'),2) + f051
SENAO
ARREDVALOR((KQT * KPU) - TABITM ('RATEIODESC' , 'V') + TABITM ('RATEIODESP' , 'V')+ TABITM ('RATEIOFRETE' , 'V')+ TABITM ('RATEIOSEGURO' , 'V')+ LVL ('IPI') ,2)+ARREDVALOR(FOR('NU037'),2)
FIMSE
************************************************NU037*********************************
ARREDVALOR((( MVT ('ICMSST') * 1000) / MVB) * (KQT*KPU)/1000,2)
************************************************NU051*********************************
SE EXECSQL ('CONT_CALC') = VERDADE
ENTAO FOR('NU003') - RESULTSQL ('CONT_CALC' , 'TOTALCALC')
SENAO 0
FIMSE
*******************************************CONT_CALC*****************************
SELECT SUM(X.VALOR) TOTALCALC
FROM (
select nseqitmmov, ROUND((TITMMOV.quantidade*precounitario) - (((TITMMOV.quantidade*precounitario)/TMOV.VALORBRUTO)*TMOV.VALORDESC),2) AS VALOR
from TITMMOV inner join TMOV on TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA and TITMMOV.IDMOV = TMOV.IDMOV where TITMMOV.IDMOV = :IDMOV
and TITMMOV.CODCOLIGADA = :CODCOLIGADA) X