Gerar NF-e em HB: qual melhor opção para iniciante?

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

Gerar NF-e para iniciante!
Há algum tempo, com a ajuda deste fórum, converti um antigo sistema em clipper para Harbour. Naquela ocasião meu cliente ainda não era obrigado a gerar NF-e, mas agora recebeu uma notificação alertando-o que o prazo limite é 31/12/2016. De imediato, como contingência, pensei no programa gratuito disponibilizado pelo sefaz-sp, mas já percebi que ele será descontinuado a partir da janeiro/2017, logo não posso investir tempo em desenvolver uma integração com ele. Por este motivo, gostaria de uma ajuda dos colegas para saber qual a opção menos trabalhosa. Alguém poderia me auxiliar neste ponto?
Grato,
Araújo
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por fladimir »

Vc terá q fazer usando ou a classe q tem aki no fórum ou via ACBr, outras soluções... segue tópico em q outros colegas tiveram o mesmo dilema e foi discutido um pouco a respeito.

Fora isto como estamos em novembro se vc achar q não daria tempo (eu particularmente acredito q dê) mas continuando, vc poderia tentar contratar um serviço de terceiros pra fazer a parte entre teu app e a SEFAZ e vc troca arquivos com ele (isso pode ser com alguém q trabalhe desta forma ou via ferramentas q tb propiciem isto, nesse caso vc teria custos).

Faz assim, da uma lida no link q passei e se resolver adotar alguma das alternativas lá citadas tem bastante ajuda aki no fórum, se mesmo assim não se sentir apto devido o prazo abra uma chamada no classificados (acho q lá é permitido) e veja se alguém poderia fazer algum tipo de consultoria nesse sentido.

Mas repito, mesmo com o pouco tempo, acredito q vc consegue, não é nenhum bixo de 7 cabeças.

[]'s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

Fladimir, obrigado pelas dicas!... darei uma olhada nos links e qualquer dúvida volto a postar aqui!...
Valeu!...
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por JoséQuintas »

logo não posso investir tempo em desenvolver uma integração com ele. Por este motivo, gostaria de uma ajuda dos colegas para saber qual a opção menos trabalhosa.
Repetir o de sempre:
Se gerar XML, vale pra emissor do governo e pra qualquer aplicativo.
Pode até gerar com assinatura "fake" só pra poder importar no emissor.

Talvez até seja fácil pra você entender uma coisa:
Um componente de NFe vai enviar seu arquivo e pegar a resposta.
Tem detalhes pra isso, cada um pode utilizar um jeito diferente, mas basicamente é enviar um arquivo e pegar resposta.
O próprio emissor da Fazenda é assim também.

Então o ponto principal é que você consiga gerar o arquivo (ou os arquivos), a partir de informações do seu aplicativo.
Comece a gerar, sem pressa, pra confirmar se tem todas as informações disponíveis.
Pode precisar fazer mudanças no aplicativo pra acrescentar mais campos que não existem.

Sugestão, pode ser demorado, mas eficiente:
Lembrando que a geração vai acabar tendo umas 1.000 linhas ou até mais, então se preocupe em fazer certo, e não em fazer rápido ou com fonte pequeno.

Pegue um XML válido como exemplo, tenha certeza de que ele é válido.
Coloque no fonte:

Código: Selecionar todos

cXml := [colar o xml aqui]
hb_MemoWrit( "arquivo.xml", cXml )
pronto, está gerando xml.

A partir daí, comece a desmembrar as partes, talvez até separando em módulos.
Módulos do tipo BlocoEmitente(), BlocoDestinatario(), BlocoProduto(), BlocoImposto(), BlocoIcms(), BlocoIpi(), BlocoPis(), BlocoCofins(), BlocoTransporte(), BlocoDuplicatas(), etc.

E por último (ou durante), comece a trocar o conteúdo pelo conteúdo de seu banco de dados.

Basta lembrar que todo campo tem começo e fim: <campo>valor</campo>
E tem uma formação padrão, o que pode facilitar usar StringXml(), NumberXml(), etc.
E para o próprio campo, como é sempre <campo>valor</campo> dá pra usar uma função pra facilitar:
XmlTag( "campo", NumberXml( xValor, 15, 2 ) ) que vai retornar <campo>xValor</campo>

Pegando um Xml como base, vai conhecer todos os campos necessários, e confirmar se tem no aplicativo.

Toda parte que mencionei sobre XML é pra dividir o "problemão" em "probleminhas", e vai resolvendo um probleminha de cada vez.

Seja txt ou xml ou ini ou outro, vai ter os mesmos campos, as mesmas conversões, então o trabalho vai ser o mesmo.
Se XML vale pra todos, não vai precisar jogar nada que tenha feito, vale pra todos.

é pegar pesado nessa geração pra adequar o aplicativo.
Sim, o XML tem muito mais informações que a nota em papel, vai ter que se dedicar bastante nisto, porque depende do aplicativo fornecer tudo.

Cuidado pra não ficar preocupado com qual componente de NFE usar, e ficar brigando com algum componente.
O componente vai ser apenas o correio que manda e recebe correspondência de/para o governo.
Não adianta ter o correio, se não tiver a mensagem que vai ser entregue.
E não dá pra criar a mensagem, se não tiver todas as informações.

Apenas tente organizar como vai fazer isso, porque o tempo é curto.
Só vai autorizar uma nota quando tiver uma nota pronta, então não adianta se preocupar agora em como vai autorizar uma nota, e sim em ter a nota.

Um chute proporcional: 1 semana pra nota e 1 dia pra comunicação, ou duas semanas pra nota e 2 dias pra comunicação.
Se inverter a ordem, vai ficar 3 semanas pra comunicação sem poder fazer nada e nem mesmo ter a nota, e nem entendendo porque não funciona.

Então comece por isso: precisa da nota, é gerar com os dados da nota, esse é o ponto de partida.
Todo restante depende disso.
É nisso que vai dedicar quase todo o tempo que tem.

Só lembrando:
O emissor não vai acabar em janeiro, ele apenas não será mais atualizado.
Vai depender de sair lei nova ou não, que o torne inviável.
Ainda é uma boa opção de aprendizado, estudo e até complemento/utilização.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

Muito obrigado pela dica JoséQuintas!.. Vou seguir suas orientações!...
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Fernando queiroz »

Araújo escreveu:Muito obrigado pela dica JoséQuintas!.. Vou seguir suas orientações!...
Você tem algum arquivo xml antes da validação e assinatura para que possa ver como fica algumas partes dela
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por JoséQuintas »

Deixei passar este detalhe:
Naquela ocasião meu cliente ainda não era obrigado a gerar NF-e
Nunca emitiu NFE? Não tem nenhuma de modelo?
Seu cliente recebe NFE? Se ele recebe, pode usar qualquer uma de qualquer fornecedor como base.

É que XML acaba contendo informações de cliente, às vezes sigilosa, e também pode variar conforme o ramo da empresa.
Uma nota de fornecedor deverá estar mais próxima do ramo do seu cliente, inclusive já com produto que seu cliente revende.
Ao consultar a nota no site da Sefaz, já vai poder fazer o download.

A nota é a parte que vai de <NFe até </NFe>
A assinatura é a parte que vai de <Signature até </Signature>

Também deixei de avisar uma coisa:
Vai precisar que seu cliente tenha certificado. De preferência o A1, assim pode usar uma cópia pra fazer seus testes, e terá menos problemas do que com A3, que depende de equipamento especial e programas especiais.
O certificado é obrigatório pra poder emitir NFe.
Também é obrigatório pra poder fazer download de NFe, o que comentei acima.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

JoséQuintas, obrigado pelas informações adicionais!...
Só agora consegui promover os ajustes de tabelas (DBF) e alimentação de muitos campos necessários à geração da NF-e!... Já estou conseguindo gerar o registro fiscal com todos os campos necessários (muitos novos campos)... Neste momento iniciei a parte de geração do arquivo xml, porém já encontrei alguns pontos de dúvidas:
No início do xml já entendi que esta tag é fixa <?xml version="1.0" encoding="UTF-8"?>, mas nesta <nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"> o "nfeProc" também é fixo quando estou gerando o arquivo a ser enviado?

Grato pela atenção.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por JoséQuintas »

nfeProc não faz parte da nota normal, só da nota autorizada.
Seria algo como "processo da nfe".

dentro desse processo tem a nota, e o protocolo de autorização.

E depois na nota, uma das partes é a assinatura.

Coloquei no post anterior:
<NFe até </NFe>
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

Fernando queiroz escreveu:
Araújo escreveu:Muito obrigado pela dica JoséQuintas!.. Vou seguir suas orientações!...
Você tem algum arquivo xml antes da validação e assinatura para que possa ver como fica algumas partes dela
Ainda não Fernando, mas seria interessante ter um exemplo!...
José Quintas, você teria algum para nos apresentar?!..

Grato,

Araújo
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por JoséQuintas »

José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

JoséQuintas, estou finalizando a geração do arquivo xml!.. ainda há alguns ajustes a serem realizados, mas o arquivo está completo, porém sem assinatura!...
Durante a construção do xml, para validar se está ficando ok, tenho submetido-o a este link http://validadornfe.tecnospeed.com.br/, e consegui evoluir bastante!.. Porém, fui tentar importar o xml no emissor gratuito e não estou conseguindo!... apresenta uma mensagem de rejeição com se estivesse faltando assinar!... Você saberia se o emissor gratuito importa o xml para sem assinar na sequencia ele mesmo assina e transmite?...
Grato pela atenção.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por JoséQuintas »

No emissor só importa com assinatura.
Encontre um XML assinado e copie a parte da assinatura.
O emissor vai reclamar de assinatura inválida mas vai deixar importar mesmo assim.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Araújo
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 02 Abr 2013 22:22
Localização: Recife-PE

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por Araújo »

Neste caso estou com um problema maior... entenda meu drama:
Dado o pouco tempo que tinha quando iniciei este desenvolvimento (final de novembro), pensei inicialmente em gerar o arquivo texto da NFe no padrão do emissor gratuito e deixar todo o resto do controle por conta dele, já que através dele faria validação, assinatura e transmissão!... Isso resolveria o problema maior para emissão da NF-e pelo cliente em produção. Mas ponderei e considerei as recomendações de gerar diretamente o xml, uma vez que o esforço seria praticamente o mesmo e o emissor gratuito também importa o xml, sem contar que seria um passo a mais para lá na frente, com calma, migrar para o ACbr, visto que o emissor gratuito será descontinuado a partir de janeiro. Entretanto, não sabia deste detalhe, que o xml precisava ser assinado.
Desta forma, estou com o sistema pronto, gerando o xml, estou com o certificado válido (já enviado pelo cliente) e instalado na versão de teste do emissor, e não sei com assinar para colocar o procedimento em produção.
Tem alguma função no harbour que grave a assinatura no xmll?... Lembrando que estou fazendo tudo 100% clipper compilando em harbour.
O que você sugere?!
Grato pela atenção.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar NF-e em HB: qual melhor opção para iniciante?

Mensagem por JoséQuintas »

Neste caso estou com um problema maior... entenda meu drama:
não, não está.
pensei inicialmente em gerar o arquivo texto da NFe no padrão do emissor gratuito e deixar todo o resto do controle por conta dele
Pra importar no emissor, em XML, obriga que exista assinatura, mas pode ser qualquer assinatura, não precisa ser válida.
Basta colocar um bloco de outro xml assinado <signature.>...</signature>
Vai acusar assinatura inválida, mas vai importar normalmente, como se fosse o txt.
O próprio emissor vai poder assinar corretamente e fazer todo resto do processo.

Neste ponto, seu aplicativo está pronto pra qualquer componente NFE.
Lembrando: a assinatura neste caso é só pra importar no emissor do governo, não vai ser usada pra nada depois, nem mesmo pra algum componente NFE.
Tem alguma função no harbour que grave a assinatura no xmll?...
Os componentes de NFE também assinam, isso não é problema.
Só vai precisar saber assinar se for fazer todo processo por conta própria.

A classe Sefaz tem assinatura e todo restante.
Faz uso de capicom e msxml5, dois componentes da Microsoft pra assinatura e transmissão.

Mas não se preocupe com isso agora.
Coloque uma assinatura qualquer (tem que ser num formato de assinatura, por isso copiar de um xml existente)
Com o processo concluído, aí pensa no restante.

Aqui cheguei a criar uma funçãozinha, só pra facilitar incluir a assinatura fake em pontos diferentes do aplicativo.

Código: Selecionar todos

FUNCTION AssinaturaFake()
   RETURN [texto de assinatura de um xml qualquer]
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder