A coisa ficou tão simples, que o pessoal ainda não acostumou.
Agora está um pouco mais simples que no ano passado.
É XML. Não adianta vir com TXT que não aceita, é XML, manual do governo.
olhando na classe
METHOD NFeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente, cIndSinc )
Qual o manual para isso?
Em cXml colocar o XML
em cLote colocar o número do lote
em cUF colocar a UF
em cCertificado colocar o certificado
em cAmbiente colocar o ambiente
cIndSinc deixa pra lá, não é toda UF que aceita, mais fácil tratar tudo igual e não usar
Como usar: ué é colocar isso ai.
E o que mais?
Novamente olhando a classe:
VAR cXmlDados INIT "" /* usado pra criar/complementar XML do documento */
VAR cXmlRetorno INIT "Erro Desconhecido" /* Retorno do webservice e/ou rotina */
VAR cXmlRecibo INIT "" /* XML recibo (obtido no envio do lote) */
VAR cXmlProtocolo INIT "" /* XML protocolo (obtido no consulta recibo e/ou envio de outros docs) */
VAR cXmlAutorizado INIT "" /* XML autorizado, caso tudo ocorra sem problemas */
VAR cStatus INIT "" /* Status obtido da resposta final da Fazenda */
VAR cRecibo INIT "" /* Número do recibo */
VAR cMotivo INIT "" /* Motivo constante no Recibo */
Então como fica:
Considerando tudo certo logo de primeira
AssinaXml( @cXml, "nomecertificado" )
oSefaz := SefazClass():New()
oSefaz:NfeLoteEnvia( cXml, "1", "SP", "nomecertificado", "1" )
hb_MemoWrit( "xmlautorizado.xml", oSefaz:cXmlAutorizado )
Se precisar acompanhar, quiser ver arquivos intermediários, ou tirar mais proveito:
IF oSefaz:cStatus != "100"
? "Nota não foi autorizada, verifique XMLs intermediários"
hb_MemoWrit( "XmlDados.xml", oSefaz:cXmlDados )
hb_MemoWrit( "xmlRecibo.xml", oSefaz:cXmlRecibo )
hb_MemoWrit( "xmlprotocolo.xml", oSefaz:cXmlProtocolo )
ENDIF
No ano passado, isso não era tão automático, mas era parecido.
Por falar nisso, já que está tudo automático, está na hora de assinar automático também.
Para as demais operações é exatamente a mesma coisa.
É olhar o nome e os parâmetros, e usar.
O que confundiu muito foi: NÃO EXISTE ARQUIVO, NÃO PRECISA DE ARQUIVO, Cada um grava o que quiser/precisar.
O que é transmitido: é um texto que vai em formato XML - TEXTO, não arquivo
O que é recebido: é um texto que volta em formato XML - TEXTO, não arquivo
O que precisa configurar: Se não tem arquivo, não tem diretório, é tudo passado por parâmetro... vai configurar o que?
O que precisa instalar pra usar a classe:
O mesmo que o ACBR usa: CAPICOM, MSXML5 e Certificado
CAPICOM é da Microsoft, só baixar da Microsoft
MSXML5 é da Microsoft, mas... justo essa versão que é a única que trata assinatura, não vém no Windows.
Certificado - além de ser usado pra assinar, também é usado na comunicação. Não adianta tentar sem certificado que não dá.
Porque fora da hbnfe.
A primeira coisa na hbnfe é configurar muita coisa
Apagar hbnfe e substituir, apagaria coisas úteis a serem aproveitadas
Deixar junto, muitos fontes não utilizados que complicariam entender tudo
Se apagar complica, deixar junto complica, só restou a opção de fazer separado.
A classe segue o governo.
O governo quer um XML, você vai gerar o XML do jeito que o governo quer, do jeito que o governo colocou no manual.
Fez pra trabalhar com a classe, fez pra trabalhar com o governo, e fez pra trabalhar com qualquer componente pra nota fiscal eletrônica.
Qualquer coisa diferente disso, é ficar preso a algum componente, com o risco de ficar na mão.
A classe é apenas um serviço de correio, entrega na Fazenda e pega a resposta.
TXT era coisa do emissor do governo, que não existe mais, apenas um formato pra não ter que aprender XML.
Já são OITO ANOS de xml. Ele veio pra ficar, se não aprendeu, está na hora de aprender, é mais fácil do que parece.