CREATE PROCEDURE P_S_NFE_DIGITOVERIFICADOR (
codigo varchar(100))
returns (
result integer)
as
declare variable soma integer;
declare variable k integer;
declare variable contador integer;
declare variable digito integer;
declare variable inicial integer;
declare variable valor integer;
begin
k = 2;
soma = 0;
contador = char_length(:codigo);
result = 0;
inicial = char_length(:codigo);
while (contador <> 0 )do
begin
if (k > 9) then
begin
k = 2;
end
valor = substring(:codigo from inicial for 1);
soma = soma + (valor * k);
contador = contador - 1 ;
k = k + 1 ;
inicial = inicial -1 ;
end
soma = mod(soma,11);
soma =(11 - soma);
if (soma >= 10) then
begin
soma = 0;
end
result = soma ;
suspend;
end^