Warning: fopen(logs/log_ouvindo_opinioes.txt) [function.fopen]: failed to open stream: No such file or directory in /home/storage/6/a1/fc/edudelphipage/public_html/includes/edp_log.php on line 6

Warning: fwrite(): supplied argument is not a valid stream resource in /home/storage/6/a1/fc/edudelphipage/public_html/includes/edp_log.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /home/storage/6/a1/fc/edudelphipage/public_html/includes/edp_log.php on line 9
 EduDelphiPage - Ouvindo Opiniões | Nota Fiscal Eletrônica - Por onde começar?

Ouvindo Opiniões

Nota Fiscal Eletrônica - Por onde começar?

Opinião escrita por Eduardo Rocha

Sobre o autor: Bacharel em Sistemas de Informação e desenvolvedor Delphi desde 1999. É Coordenador editorial da Revista ActiveDelphi, criador e mantenedor do site EduDelphiPage e membro do grupo DUG-BR. Já ministrou cursos e palestras de ClientDataSet/DBExpress, Firebird e Reconhecimento de Impressão Digital com Delphi para mais de 1000 pessoas (FDD e DDD).

Contato: eduardo@edudelphipage.com.br

Desta vez terei uma opinião um pouco mais "tímida", pois estou começando a me aventurar agora com a Nota Eletrônica.

Aqui na empresa a necessidade principal é implantar a NFe em alguns clientes antigos que possuem sistemas em Clipper, portanto, surgiu a grande dúvida:

- Em qual linguagem desenvolver?

No início pensei fazer em PHP, já que assim poderia instalar num servidor independente de plataforma e o usuário gerenciaria as notas remotamente tudo via browser. Além disso, seria um "plus" para eu mostrar nos cursos de PHP que venho ministrando.

Portanto, pesquisei na internet e achei uma biblioteca chamada NFePHP, que como o próprio nome já diz, é uma biblioteca feita em PHP para emissão de NFe com opção para gerar o XML, enviar para SEFAZ, gerar o DANFE, etc.

Confesso que me esforcei ao máximo para usá-la, mas infelizmente cada hora era um problema. Um dos maiores problemas foi a necessidade da versão 5.3 do PHP que ao tentar instalar não "casava" com o Apache, simplesmente não iniciava. Tive de instalar uma versão "beta" do PHP para o Apache conseguir startar. Quando achava que estava resolvido, cai num outro problema que era um bug na biblioteca "libxml2" que para corrigir teria que recompilar o PHP com a nova versão desta biblioteca. E para isso teria de ter o compilador C, C++, etc, etc, etc. Foi ai que resolvi desistir e tomar outro rumo.

Advinha por qual linguagem escolhi?

O nosso velho e excelente amigo DELPHI!

Comecei a pesquisar bibliotecas pagas e gratuitas. A princípio iríamos desenvolver com uma biblioteca paga, porém ao conversar com alguns amigos muitos disseram que existe uma biblioteca gratuita da ACBr para NFe muito boa e que vale a pena. Logo entrei no site http://acbr.sourceforge.net, baixei a biblioteca e instalei.

Comecei a "fuçar" na biblioteca faz umas 2 semanas. Analisei o exemplo que acompanha e realmente parece ser "simples" usá-la. É possível gerar o XML facilmente apenas alimentando os dados das notas a partir das classes disponíveis, enviar a NFe para SEFAZ através dos WebServices, enviar por email para seu cliente, gerar o DANFE, e muito mais. Para quem for fazer em Delphi, recomendo!

Agora uma dica que já posso adiantar é: Se prepare que na NFe você tem que informar MUITOS, mas MUITOS campos. O detalhamento da informação é tanto, que só para se ter uma idéia, para empresas que comercializam veículos, nos detalhes dos "produtos" existem campos até para informar a distância entre os eixos das rodas. Coisa absurda, só nosso país mesmo para burocratizar tanto!

Outra dica que gostaria de passar é em relação ao formato dos dados para você gerar quando for extrair as notas do sistema. Em nossos casos (e acredito que em muitos outros) não poderemos ter acesso direto as bases de dados dos clientes, portanto, os sistemas dos clientes deverão gerar as notas em TXTs e nosso sistema buscará estes TXTs de tempos em tempos e fazer todo processo. Portanto, a dica é: devido ao grande número de campos que precisam ser informados, talvez um TXT no formato CSV pode se tornar quase impossível a leitura humana deste arquivo. Claro que ninguém ficará lendo os TXTs das notas, mas num eventual problema, você poderia pedir ao seu cliente para entrar no TXT e ajustar um determinado campo que pode estar incorreto por alguma razão. Neste caso um TXT no formato CSV será complicado, pois terá de contar os ";" (ponto-e-vírugla) até achar o campo. Portanto recomendo um outro formato chamado JSON no qual é facilmente compreendido, veja um exemplo:

{
  "numero": 123,
  "endereco": "rua teste",
  "valor": 1500,
  "itens": [
     {"codigo": 1,
       "descricao": "Produto 1"
     },
     {"codigo": 2,
       "descricao": "Produto 2"
     }
  ]
}

Mesmo para quem nunca viu este formato, conseguirá "ler" facilmente o que representam estes dados. Ou seja, é um formato de simples leitura para ajudá-lo (ou seu cliente) no momento que precisar editar o arquivo. Este formato JSON é muito mais simples de ler e econômico (em bytes) comparado ao formato XML. Seria muito bom se a SEFAZ tivesse implantando tudo em JSON.

Não vou entrar em detalhes técnicos para não fugir do assunto, veja mais detalhes sobre o JSON em http://json.org. A biblioteca para Delphi que estou usando para ler o formato JSON é http://sourceforge.net/projects/lkjson. Existem bibliotecas para outras linguagens também, que poderão ser vistas no site oficial do JSON que citei anteriormente.

Para concluir, gostaria apenas de opinar, ou melhor, desabafar em relação ao que acho da NFe.

Em minha opinião isso é bom só para o governo, pois não vejo nenhuma vantagem para as empresas. Algumas acham que vão economizar com Nota Fiscal impressa. Na prática penso que não é bem assim, pois ponha na ponta do lápis: a empresa deixará de gastar com a gráfica, mas agora será OBRIGADA a ter INTERNET, portanto, já terá como despesas uma mensalidade com o provedor de internet. Depois será OBRIGADA a ter uma impressora pelo menos a JATO de TINTA para emissão do DANFE, portanto, mais custos com manutenção de impressora, tinta e papel. Claro que antes a empresa também tinha de ter uma impressora para imprimir a nota, sim, mas uma matricial já era suficiente e impressoras matriciais quase não se faz manutenção e o custo com a FITA é baixíssimo. Outro custo, se a empresa não quiser ou não puder enviar por email a NFe para seu cliente, terá de contratar empresas que já estão atuando como "hospedeiras" de Nfe, portanto, mais um custo mensal. Fora tudo isso, tem o custo de implantação da NFe que não é nada barato e ficará mais caro ainda se ela der o "azar" de escolher uma empresa que cobra por nota emitida.

Portanto, como todos sabem, mais uma vez o governo olhando só para si. Tudo isso gerará mais custos para as empresas e pior, quebrará todas as gráficas especializadas em Notas Fiscais.

E para concluir, tome bastante cuidado ao escolher o tipo de certificado que usará para assinar as notas ficais. Para quem não sabe existe o A1 e o A3, sendo o A1 menos seguro, já que a chave fica instalada no micro tornando-a vulnerável já que qualquer um que tenha acesso ao micro poderá copiá-la. O problema não é o fato de alguém copiar, mas sim o que podem fazer de posse do certificado da empresa. Em alguns artigos que li diziam que se pode "acabar" com uma empresa, já que com o certificado digital pode-se emitir notas em nome de uma empresa, alterar dados importantes sobre a empresa diretamente na SEFAZ, etc. Ou seja, o governo só enxerga de um lado (o dele), mas esquece que esta medida de NFe está colocando em risco as empresas. Por isso pesquise bem no momento de propor ou adquirir uma solução, pois o formato A3 é mais seguro que o A1, já que é usado a partir de um hardware (smart card ou token usb) evitando que o certificado fique instalado diretamente no micro.

Espero ter contribuído de alguma forma!

2 Comentários

  • André Ferreira de Moraes - 10/02/10 10:56

    Para programas em Clipper, vc pode usar o ACBrNFeMonitor, que faz a comunicação via TXT ou Sockets.

    Para mais informações sobre o ACBrNFeMonitor veja http://acbr.sourceforge.net/drupal/?q=node/40

  • Wellington Ribeiro - 23/07/11 12:05

    Parabéns pelo Comentário, mereceu um Ctrl + D.

    Muito obrigado pela dica do JSON, é excelente.

 

"Ouvindo" Opiniões (as mais lidas)

Em breve, aguarde!!!

Pharetra Sed Tempus

Morbi sit amet mauris Nam vitae nibh eu sapien dictum pharetra. Vestibulum elementum neque vel lacus. Lorem ipsum dolor sit dolore phasellus pede lorem proin auctor dolor loremmassa phasellus sit. More…

Outras edições da Revista Active Delphi