PROCEDURE Teste_CNPJ(tCNPJ is string)
x1,x2,x3,x4,x5 is int
x0 is string
x0=Replace(tCNPJ,".","")
x0=Replace(x0,"/","")
x0=Replace(x0,"-","")
x0=Replace(x0," ","")
WHILE x3 < 12
x3 = x3 + 1
x4 = Val(x0[[x3]])
x5 = IIF( x3<5 , 6-x3 , 14-x3 )
x1 = x1 + x4 * x5
x2 = x2 + x4 * ( IIF( x3=5 , 2 , x5+1 ) )
END
x1 = 11 - modulo( x1 , 11 )
x1 = IIF( x1>9 , 0 , x1 )
x2 = 11 - modulo( x2+x1*2 , 11 )
x2 = IIF( x2>9 , 0 , x2 )
RESULT NumToString(x1) + NumToString(x2) = Right( x0 , 2 )