DANFE e o Código de Barras
Escrito por: Eng. Luciano T.Junior
Danfe e o Código de Barras.......................................................................... 3
A Chave de Acesso....................................................................................... 4
Cálculo do Dígito Verificador da Chave de Acesso da NF-e........................... 5
Transformando a Chave de Acesso em Código de Barras ............................. 6
O que é uma Fonte de Código de Barras ...................................................... 7
Calculando o Dígito Verificador da Simbologia 128 C................................... 8
Mapeando a Fonte de Código de Barras ..................................................... 10
LinhaBase Developing Tools ...................................................................... 11
O Pacote de Fontes LinhaBase ................................................................... 12
Conclusões ................................................................................................ 13
2
Danfe e o Código de Barras
O Danfe e sua representação em código de barras ainda geram muita confusão até mesmo aos
profissionais de TI.
Este problema está relacionado muitas vezes a dificuldade de leitura dos Manuais cedidos
pelas diversas Secretarias Fazendárias e até mesmo pela falta de atenção e vontade de leitura
de alguns.
Bom, para começar o que é o DANFE?
DANFE significa Documento Auxiliar para Nota Fiscal Eletrônica que é um documento impresso
em papel onde nele estão contidos dados sobre os produtos fornecidos e em trânsito do
fornecedor até um determinado destino e que representa a Nota Fiscal Eletrônica, e que deve
acompanhar todas as remessas de mercadoria. No DANFE se encontra a Chave de Acesso
que é um conjunto de 44 dígitos que são convertidos em código de barras para facilitação da
leitura da Chave de Acesso junto aos sistemas relacionados.
Muitos que procuram a LinhaBase querem transformar o DANFE em um documento eletrônico
em formato PDF para serem encaminhados a seus clientes via e-mail. Porém a regra para o
DANFE é clara e simples. O DANFE é um documento auxiliar a Nota Fiscal Eletrônica e é
impresso em papel.
3
A Chave de Acesso
A Chave de Acesso da Nota Fiscal Eletrônica é representada por uma sequência de 44
caracteres numéricos, representados da seguinte forma:
Quantidade
de
caracteres
Código
da UF
AAMM
da
emissão
CNPJ do
Emitente
Modelo
Série
Número
da NF-e
Código
Numérico
DV
02
04
14
02
03
09
09
01
Onde temos:
- Código da UF: Código da UF do emitente do Documento Fiscal.
- AAMM da Emissão: Ano e Mês de emissão da NF-e.
- CNPJ do Emitente: CNPJ do Emitente.
- Modelo: Modelo do Documento Fiscal.
- Série: Série do Documento Fiscal.
- Número da NF-e: Número do Documento Fiscal.
- Código Numérico: Código numérico que compõe a Chave de Acesso.
- DV: Dígito Verificador da Chave de Acesso.
O Dígito Verificador (DV) irá garantir a integridade da chave de acesso, protegendo-a
principalmente contra digitações erradas. Não se deve confundir o dígito verificador da Chave
de Acesso do DANFE com o dígito verificador do Código de Barras que são dois elementos
diferentes.
4
Cálculo do Dígito Verificador da Chave de
Acesso da NF-e
O dígito verificador da chave de acesso da NF-e é baseado em um cálculo do módulo 11 Base
9. O módulo 11 com Base 9 de um número é calculado multiplicando-se cada algarismo pela
sequência de multiplicadores 2,3,4,5,6,7,8,9,2,3, ... posicionados da direita para a esquerda.
A somatória dos resultados das ponderações dos algarismos é dividida por 11 e o DV (dígito
verificador) será a diferença entre o divisor (11) e o resto da divisão:
DV = 11 - (resto da divisão)
Quando o resto da divisão for 0 (zero) ou 1 (um), o DV deverá ser igual a 0 (zero).
Exemplo: consideremos que a chave de acesso tem a seguinte sequência de caracteres:
A 5 2 0 6 0 4 3 3 0 0 9 9 1 1 0 0 2 5 0 6 5 5 0 1 2 0 0 0 0 0 0 7 8 0 0 2 6 7 3 0 1 6 1
B 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2
Onde A é a Chave de Acesso e B são os pesos da multiplicação ou Ponderação em Base 9.
Multiplicando cada valor de A x B e somando seu resultado temos como resposta: 644
Dividindo a somatória das ponderações por 11 teremos, 644 /11 = 58 restando 6.
Como o dígito verificador DV = 11 - (resto da divisão), portando 11 - 6 = 5
Neste caso o DV da Chave de Acesso da NF-e é igual a "5", valor este que deverá compor a
chave de acesso totalizando a uma seqüência de 44 caracteres, ficando a chave de acesso
com a seguinte numeração:
52060433009911002506550120000007800267301615
Onde cada valor da Chave de Acesso representa:
- Código da UF: 52.
- AAMM da Emissão: 0604.
- CNPJ do Emitente: 33009911002506.
- Modelo: 55.
- Série: 012.
- Número da NF-e: 000000780.
- Código Numérico: 026730161.
- DV: 5.
5
Transformando a Chave de Acesso em Código
de Barras
O principal método de criar código de barras em sistemas para emissão de NF-e e DANFE é a
utilização de fontes de Código de Barras. A LinhaBase para este tipo de atendimento fornece o
Pacote de Fontes de Código de Barras 128 (A, B e C), EAN 128 e para Nota Fiscal Eletrônica.
Para Conhecer mais sobre este produto acesse:
http://fontecodigodebarras.linhabase.com
Neste momento esqueça completamente o que os Manuais fornecidos pelas Secretarias
Fazendárias informam sobre a composição do código de barras e se baseie somente no que a
LinhaBase informa. Pois as Secretarias Fazendárias são órgãos responsáveis pela Gestão da
Nota Fiscal Eletrônica e pelo DANFE e a LinhaBase é a empresa especializada na produção de
Código de Barras, logo ao utilizar o Pacote de Fontes de Código de Barras 128 da LinhaBase
todas as regras estipuladas para a criação do Código de Barras estão sendo atendidas de
forma natural e automática.
Foi escolhido como simbologia do Código de Barras para a representação da Chave de Acesso
a simbologia 128 C. A simbologia 128 C é uma simbologia de Código de Barras numérica, onde
os dados a serem codificados devem ter uma quantidade par de dígitos e são acrescentados os
Códigos de Start C, o Dígito Verificador da Simbologia de Código de Barras e o Código de Stop.
Ficando a composição do Código de Barras com o seguinte layout:
Start C + Chave de Acesse com 44 dígitos + Dígito Verificador do Código de Barras + Stop.
6
O que é uma Fonte de Código de Barras
Uma fonte de código de barras é um repositório de símbolos gráficos alocados em
determinadas posições geridas pela tabela ASCII. Com isso uma fonte somente apresenta o
símbolo gráfico correspondente ao caractere chamado, ou seja, em uma fonte do tipo Arial
quando se pressiona no teclado a letra A, isto é traduzido pelo sistema que pede a fonte para
retornar o símbolo gráfico, correspondente ao valor ASCII 65, que neste caso é a própria letra
A.
Com Código de Barras isto também é feito pela fonte, contudo em cada posição é contido um
conjunto de barras que representa um determinado valor, que vai variar conforme a regra de
cada simbologia de código de barras. Porém cabe ao sistema desenvolvido pelo usuário em
sua linguagem de programação preferida indicar a fonte de código de barras que caracteres
devem ser pegos cada símbolo gráfico.
Por exemplo, para a Chave de Acesso:
52060433009911002506550120000007800267301615
Temos a seguinte sequência de caracteres que deve ser encaminhada a fonte de código de
barras:
ÍT&$AÂÇ+Â9&W!4ÂÂ'p"c>0/-Ó
Esta sequência de caracteres é chamada de Mapeamento da Fonte de Código de Barras e que
irá criar um código de barras válido para leitura. Onde nesta sequência de Mapeamento já estão
incluídos o layout da simbologia 128 C (Start C + Chave de Acesso com 44 dígitos + Dígito
Verificador do Código de Barras + Stop).
Isto fará a fonte de Código de Barras apresentar o seguinte código de barras:
7
Calculando o Dígito Verificador da Simbologia
128 C
Cada simbologia de Código de Barras tem suas regras próprias de criação, e para a simbologia
128 existe a inserção do dígito verificador da simbologia, além dos caracteres de Start e Stop.
Para se calcular o dígito verificador da simbologia 128 C e levando-se em conta que está sendo
utilizado o Pacote de Fontes de Código de Barras 128 da LinhaBase faça o que se segue.
A simbologia 128 C também apresenta um dígito verificador diferente do dígito verificador da
Chave de Validação do DANFE. O dígito da simbologia valida a leitura do código de barras
juntos aos leitores compatíveis com a simbologia 128 e é apresentado no Manual do Usuário
que acompanha o produto da LinhaBase.
- Passo 1 (tabela página 9 do Manual do Usuário do Pacote de Fontes de Código de Barras 128
/ coluna Code C)
Analisando a numeração acima de 2 em 2 e acrescentando a posição de Start C. Observando a
coluna Code C temos:
Start C
52
06
04
33
00
99
11
00
25
06
55
01
20
00
00
07
80
02
67
30
16
15
105 x 1 = 105
52 x 1 = 52
6 x 2 = 12
4 x 3 = 12
33 x 4 = 132
0x5=0
99 x 6 = 594
11 x 7 = 77
0x8=0
25 x 9 = 225
6 x 10 = 60
55 x 11 = 605
1 x 12 = 12
20 x 13 = 260
0 x 14 = 0
0 x 15 = 0
7 x 16 = 112
80 x 17= 1360
2 x 18 = 36
67 x 19 = 1273
30 x 20 = 600
16 x 21 = 336
15 x 22 = 330
- Passo 2 (somatório)
Somar os resultados das multiplicações do Passo 1.
105 + 52 + 12 + 12 + 132 + 0 + 594 + 77 + 0 + 225 + 60 + 605 + 12 + 260 + 0 + 0 + 112 + 1360
+ 36 + 1273 + 600 + 336 + 330 = 6193
8
- Passo 3 (calculo do módulo)
Realizar o cálculo em módulo 103 do Passo 2.
6193 MOD 103 = 13
- Passo 4 (Dígito verificador)
Na coluna valor da Tabela de Dígito Verificador procuramos pelo valor que na coluna Code C
representa o valor 13.
13 -> Valor na coluna Code C: 13
Adiantando, o caractere de mapeamento do dígito verificador deverá representar o valor -.
9
Mapeando a Fonte de Código de Barras
Verificar na tabela da página 11 do Manual do Usuário do Pacote de Fontes de Código de
Barras 128 e analisando a coluna Código C, buscar o valor do caractere na coluna Caractere.
Valor
Start C
52
06
04
33
00
99
11
00
25
06
55
01
20
00
00
07
80
02
67
30
16
15
Dígito verificador, valor 13
Stop
Caractere
Í
T
&
$
A
Â
Ç
+
Â
9
&
W
!
4
Â
Â
‘
p
“
c
>
0
/
Ó
Valor ASCII
205
84
38
36
65
194
199
43
194
57
38
87
33
52
194
194
39
112
34
99
62
48
47
45
211
Sequência de caracteres completa:
ÍT&$AÂÇ+Â9&W!4ÂÂ'p"c>0/-Ó
Esta sequência de caracteres é encaminhada a fonte de código de barras e é gerado um código
de barras 128 C correto. Sendo este processo compatível com as principais linguagens de
programação e permitindo ao usuário desenvolver suas próprias rotinas de desenvolvimento.
10
LinhaBase Developing Tools
O LinhaBase Developing Tools é um conjunto de ferramentas compostas por arquivos DLLs
que realizam para o programador toda a análise da Chave de Acesso, e como resposta retorna
a sequência de Mapeamento completa.
Ou seja o programador no ato do desenvolvimento de sua aplicação encaminha a numeração
52060433009911002506550120000007800267301615 e como resposta obtêm o Mapeamento
da Fonte de Código de Barras ÍT&$AÂÇ+Â9&W!4ÂÂ'p"c>0/-Ó de forma totalmente automática,
sem necessidade de verificação de tabelas de Mapeamento, cálculos e outros passos
necessários como mostrado anteriormente.
O LinhaBase Developing Tools é fornecido no Pacote de Fontes de Código de Barras 128 e é
compatível com:
- Visual Basic 6.0.
- .Net (Windows Application).
- Crystal Reports 10 ou superior.
O LinhaBase Developing Tools é uma exclusividade LinhaBase.
11
O Pacote de Fontes LinhaBase
O Pacote de Fontes de Código de Barras 128 da LinhaBase é composto por:
- Fontes de Código de Barras: 5 arquivos da fonte de código de barras no padrão TTF (True
Type). Incluí também fontes de código de barras otimizadas para uso em DANFE (exclusividade
LinhaBase).
- LinhaBase Developing Tools: Facilita a criação da formatação do dado a ser codificado de
forma automática no Visual Basic 6.0, .Net (Windows Application) e Crystal Reports 10 ou
superior. Sem que o usuário se preocupe com criação de rotinas complexas de cálculo de dígito
verificador, verificação de paridades, regras da simbologia e mapeamento da fonte de código de
barras. E é formado por: 1 arquivo DLL para Visual Basic 6.0, 1 arquivo DLL para Crystal
Reports 10 ou superior, 1 arquivo DLL para .Net (Framework 1.1 ou superior, Windows
Application) (exclusividade LinhaBase).
- LinhaBase MSI: Auxilia a instalação das fontes de código de barras e DLL para Visual Basic e
DLL para Crystal Reports em computadores clientes por meio do Windows Installer ou
aplicativos de instalação (Setup) (exclusividade LinhaBase).
Manual do Usuário: Apresenta informações sobre a simbologia, mapeamento da fonte de
código de barras e exemplos de integração com o LinhaBase Developing Tools.
* Para usuários de outras plataformas (ou para aqueles que optarem não usar o LinhaBase
Developing Tools e MSI), estes devem trabalhar com as instruções da simbologia e
mapeamento da fonte TTF como indicado no Manual do Usuário de modo a produzir suas
rotinas de construção do código de barras.
Para conhecer melhor os Pacotes de Fontes de Código de Barras LinhaBase acesse:
http://fontecodigodebarras.linhabase.com
12
Conclusões
Criar um DANFE é fácil quando se realmente sabe o que significa cada elemento que o
compõe. E deve-se verificar principalmente os seguintes pontos:
1 – O DANFE é um documento impresso.
2 – O DANFE é formado pela Chave de Acesso que é composta por 43 dígitos + 1. Sendo o
último dígito o Dígito Verificador.
3 – A simbologia de Código de Barras adotada é a 128 C, e para se criar um aplicativo para
criação de DANFE o melhor é empregar fontes de Código de Barras e utilize exclusivamente as
informações dadas pela LinhaBase para este propósito.
4 – O tamanho do Código de Barras 128 C para a impressão de um DANFE é de
aproximadamente 1,7 x 6,0 cm (A x L) podendo em alguns casos ter 8,6 cm de largura (as
fontes de Código de Barras LinhaBase estão totalmente compatíveis com esta determinação).
5 – O Pacote de Fontes de Código de Barras 128 LinhaBase é o único fornecido com fontes
otimizadas para uso em DANFE e acompanhadas de Manual com Mapeamento Completo, e
LinhaBase Developing Tools e LinhaBase MSI.
6 – Fontes são consideradas recursos de máquina, por isso devem ser instaladas nos
computadores que irão realizar o processo de impressão. Sendo assim, não são indicadas para
uso Web ou similares.
7 – Fontes de Código de Barras tendem a ter seu tamanho reduzido quando são interpoladas
para uso em padrão PDF.
8 – A impressão de um DANFE deve ser realizado em impressoras laser de boa qualidade para
se garantir uma impressão do código de barras em total acordo com as normas ISO/IEC.
9 – O leitor de código de barras deve ser compatível com a simbologia 128 C, e cada leitor têm
sua “sensibilidade”. Com isso, um leitor pode ler perfeitamente um determinado código de
barras e rejeitar outros, mesmo este estando devidamente criado.
13
Dande e o Código de Barras
Escrito por: Eng. Luciano T.Junior
Nov/09 – Versão: 1
LinhaBase Softwares Ltda – A Primeira em Código de Barras.
www.linhabase.com.br
Download

DANFE e o Código de Barras