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:
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.