tenho a seguinte rotina para calculo da IE do estado do Mato Grosso:
Código: Selecionar todos
mascara:="9999999999-9"
base :=padr(origem,11,"0")
vmul :={3,2,9,8,7,6,5,4,3,2} // PESO DOS DIGITOS
vsom:=0
for vpos:=1 to 10
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=if(vres<2,0,11-vres)
vbase2:=left(base,10)+str(vdig1,1,0)
ok :=(vbase2==origem)
SGINSCR = VBASE2
if !ok
if empty(vbase2)
alert("Os D¡gitos Identificadores de Cidade e/ou Estado N„o Conferem !")
else
vbase2:=strtran(transform(val(vbase2),mascara)," ","0")
vbase2:=strtran(vbase2,",",".")
alert("Inscri‡„o Inv lida !;O Correto Seria;"+vbase2)
endif
sgresult=1
else
sginscrest:=strtran(transform(val(sginscr),mascara)," ","0")
sginscrest:=strtran(sginscrest,",",".")
endif
Algue teria como corrigir a rotina acima? Compilo em xHarbour.
Agradeço a ajuda.
Laudelino


