Olá galera este é meu primeiro post espero que gostem a dica é sobre Nfe ufa!! para conseguir terminar este projeto em abril foi dose de leão mas, graças a Deus deu tudo certo ainda assim eu fiz apenas uma integraçao entre sistemas ai vai a rotina do digito verificador em firebird, há mod é uma udf. Abraços a todos e que deus abençoe a todos!!



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^