#INCLUDE "PROTHEUS.CH"
User Function GFE05010()
Local GWN_PLACAD := PARAMIXB[1]
Local aItDoc := PARAMIXB[2]
Local nPesoMin := 0
Local nPesoRom := 0
Local nValorNotas := 0
Local i
for i:= 1 to len(aItDoc)
nPesoRom += aItDoc[i][9] //GW8_PESOR. definir romaneio
Next i
dbSelectArea("GU8")
GU8->(dbSetOrder(2))
If GU8->( dbSeek(xFilial("GU8") + GWN_PLACAD) )
If GU8->GU8_XPCINI <> 0 .And. GU8->GU8_CARGUT <> 0
nPesoMin := GU8->GU8_XPCINI * GU8->GU8_CARGUT / 100 //definir o peso minimo
EndIf
EndIf
If !Empty(GWN_PLACAD) .And. nPesoMin > 0 .And. nPesoMin > nPesoRom //Calculo por peso minimo
for i:= 1 to len(aItDoc)
aItDoc[i][9] += ROUND(((nPesoMin-nPesoRom)/nPesoRom*aItDoc[i][9]),2) //faz calculo do rateio para todas as notas
nValorNotas += aItDoc[i][9]
Next i
If nValorNotas != nPesoMin //verifica o valor do peso minimo com os valores arredondados adicionados nas notas
aItDoc[1][9] += nPesoMin - nValorNotas //corrige diferença na primeira nota
EndIf
EndIf
GU8->(dbCloseArea())
return aItDoc